CentOS 7安装配置Graylog

这篇文件记录了在CentOS 7上安装Graylog v1.3.x(也被叫做Graylog2)的步骤,并配置它收集其他服务器上的系统日志。

Graylog是强大的日志管理、分析工具。它基于 Elasticsearch, Java和MongoDB。

Graylog可以收集监控多种不同应用的日志。但是为了示范说明,我只收集syslog。并且,我将会把用到的组件全部安装到一个单独的服务器上。对于大型、生产系统你可以把组件分开安装在不同的服务器上,这样可以提高效率。

Graylog的组件

Graylog有4个基本组件:

  • Graylog Server:这个服务负责接收和处理日志/消息,并且和其他组件沟通。
  • Elasticsearch:存储所有的日志,它的性能依赖内存和硬盘IO。
  • MongoDB:存储元数据,负载不高。
  • Web接口:用户接口。

下面是Graylog组件之间的关系图:

Screen Shot 2016-03-28 at 10.02.31

系统要求:

  • CentOS 7
  • 内存至少2GB
  • 有root权限

下面开始安装。

安装MongoDB

MongoDB的安装非常简单,执行如下命令导入MongoDB GPG密钥到rpm:

创建MongoDB源:

写入如下内容

安装MongoDB:

启动MongoDB:

现在,MongoDB应该运行起来了。下一步我们来安装Java。

安装Java

Elasticsearch和Logstash需要需要Java运行环境。Elasticsearch建议安装最新版本的Oracle Java 8,但是使用OpenJDK也可以正常工作。

我这里安装Oracle Java 8 jdk,去http://www.oracle.com/下载最新的java jdk。我安装时的最新版本为jdk-8u77-linux-x64.rpm。

使用如下命令下载本版本(需要接受协议才能下载):

安装下载的rpm包:

查看java版本:

Screen Shot 2016-03-28 at 10.46.10

安装Elasticsearch

Graylog目前为止只能使用Elasticsearch 2.0以前的版本,所以,在这一步中,我将安装Elasticsearch 1.7.x。

添加Elasticsearch GPG密钥:

创建Elasticsearch源:

写入如下内容:

安装Elasticsearch:

Screen Shot 2016-03-28 at 10.54.50

Elasticsearch安装完成之后,编辑配置文件:

找到cluster.name一行,取消这一行的注释,并把值改为graylog-development:

Screen Shot 2016-03-28 at 10.59.14

你也许想要限制外部访问Elasticsearch(端口9200),这样可以提高系统的安全性。找到network.host一行,取消注释,并把值改为localhost:

保存退出文件。

重启Elasticsearch:

设置开机启动:

执行如下命令测试Elasticsearch是否正常运行:

输出的信息如下表示Elasticsearch安装成功:

Screen Shot 2016-03-28 at 11.09.13

安装Graylag

现在Graylog的所有依赖软件安装完成,这一步我们来安装graylog-server。

首先,下载Graylog RPM软件包:

安装graylog-server:

安装pwgen,我们使用它生成随机密码:

现在我们来设置Graylog管理员的密钥。配置文件位于/etc/graylog/server/server.conf目录,需要修改password_secret参数:

执行完上面命令之后,password_secret参数的样子:

Screen Shot 2016-03-28 at 11.46.18

这一步,设置管理员密码。由于密码使用sha哈希算法,我们需要把明文密码转换为hash,然后赋值给root_password_sha2参数。例如,我要设置的管理员密码是 test1234,它对应的hash为:

Screen Shot 2016-03-28 at 11.54.30

编辑/etc/graylog/server/server.conf,设置root_password_sha2参数:

Screen Shot 2016-03-28 at 11.58.43

现在Graylog管理员密码为test1234。

配置rest_transport_uri参数,设置Graylog web接口和服务器的沟通方式。由于我们把所有组件都安装到了单独的一个服务器上,需要把值设置为127.0.0.1 或 localhost。找到rest_transport_uri一行,取消注释,并把值设置为:

Screen Shot 2016-03-28 at 12.05.28

由于我们只有一个Elasticsearch shard,需要把elasticsearch_shards参数设置为1:

更改elasticsearch_cluster_name参数,应该和前面Elasticsearch的cluster.name参数相对应:

Screen Shot 2016-03-28 at 12.10.10

取消下面两行的注释,检测Elasticsearch:

启动graylog-server:

下一步安装Graylog web接口。

安装Graylog Web

安装Graylog Web:

安装完成之后配置Graylog Web的密钥,配置文件位于/etc/graylog/web/web.conf,更改application.secret参数:

配置graylog2-server.uris参数,它的值应该和Graylog的rest_listen_uri参数相对应:

重启graylog-web:

配置Graylog服务器接收其他服务器的syslog日志

登录Graylog Web

使用浏览器访问Graylog服务器的域名或IP:http://graylog_public_IP_domain:9000/。

你应该能看到一个登录界面,使用admin做为用户名和前面设置的密码登录。

登录之后:

Screen Shot 2016-03-28 at 13.16.35

上面的红数字1是通知(you have a node without any running inputs),下面设置通过UDP接收syslog。

创建syslog UDP输入

添加要接收的其他服务器syslog日志:System->Inputs->Syslog UDP->Launch new input。

在弹出的窗口上输入如下信息:

  • Title: syslog
  • Port: 8514
  • Bind address: 要收集的其他服务器ip地址

点击Launch

Screen Shot 2016-03-28 at 13.27.37

如果你需要收集多个服务器的日志,重复上面步骤。

现在,我们的Graylog服务器已经做好了接收其他服务器发来日志的准备。下面我们还需要配置其他服务器,让这些服务器给Graylog服务器发送日志。

配置其他服务器给Graylog服务器发送syslog

SSH登录“其他服务器”,创建rsyslog配置文件90-graylog.conf:

添加如下代码,把 graylog_server_IP 替换为Graylog服务器ip地址:

重启rsyslog服务使生效:

配置完成之后,回到Graylog Web,点击Sources,查看是否有新添加rsyslog。

搜素Graylog

假如你要搜索ssh活动:

Screen Shot 2016-03-28 at 13.44.34


上面安装配置了基本的Graylog服务器。

参考:http://docs.graylog.org/en/1.3/

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注