CentOS 7下安装部署Graylog3.0收集分析网络设备日志

Graylog是一款优秀的日志收集分析软件,区别于ELK,它更加简洁,高效,部署使用更加简单。官方网址https://www.graylog.org/,安装手册参考http://docs.graylog.org/en/3.0/pages/installation.html

一、安装部署

    graylog采用单机部署,,采用最小化部署,架构如下

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

组件介绍 

  • Graylog 提供 graylog 对外接口 ,Web界面, CPU 

  • Elasticsearch 日志文件的持久化存储和检索, IO 

  • MongoDB 只是存储一些 Graylog 的配置

安装前准备,采用虚拟机,操作系统CentOS7 ,内存4G,硬盘100G,安装之前需要关闭selinux,清空iptables规则和关闭防火墙

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
iptables -F
service iptables save
systemctl disabled firewalld
systemctl stop firewalld

1.1先决条件

以最小的服务器设置为基础将需要这些额外的包:

yum install java-1.8.0-openjdk-headless.x86_64            #安装java软件包
yum install epel-release                                  #安装epel软件仓库
yum install pwgen                                         #安装pwgen生成密

1.2 安装mongodb

首先创建软件仓库文件/etc/yum.repos.d/mongodb-org.repo使用以下内容添加存储库文件

touch /etc/yum.repos.d/mongodb-org.repo
cat << EOF >/etc/yum.repos.d/mongodb-org.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/RedHat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

配置完成后,可以通过yum安装最新版本的MongoDB   

yum install mongodb-org

然后配置MongoDB作为服务开机启动

chkconfig --add mongod 
systemctl daemon-reload 
sudo systemctl enable mongod.service 
systemctl start mongod.service

1.3安装Elasticsearch

    首先安装Elastic GPG密钥,然后添加包含以下内容的存储库文件中,graylog3.0采用的是elasticsearch6.x版本

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
touch /etc/yum.repos.d/elasticsearch.repo
cat << EOF >/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/oss-6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

随后安装最新版本

yum install elasticsearch-oss

修改elasticsearch的配置文件,/etc/elasticsearch/elasticsearch.yml,将cluster.name修改为graylog,然后在配置文件中最后一样添加action.auto_create_index: false

vim /etc/elasticsearch/elasticsearch.yml

在16后行修改cluster.name

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

最后一行添加action.auto_create_index: false

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

修改配置后,可以启动Elasticsearch:

chkconfig --add elasticsearch 
systemctl daemon-reload 
systemctl enable elasticsearch.service 
systemctl restart elasticsearch.service

1.4安装graylog

现在使用以下命令安装Graylog存储库配置和Graylog本身:

rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpm 
yum install graylog-server

安装完成后,首先生成生成password_secret密码

pwgen -N 1 -s 96

生成root_password_sha2密码 (Web登录密码)

echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1

然后将生成的password_secret密码和root_password_sha2密码字符串,添加到配置文件/etc/graylog/server/server.conf中,分别在55行和66行

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

然后修改web登陆接口,在104行,按照如下配置,默认端口9000,可以修改

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

完成修改后保存,然后启动graylog

chkconfig --add graylog-server
systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service

 然后可以使用浏览器登陆 http://ip:9000

 

默认管理员用户名admin,密码为root_password_sha2配置设定的密码

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

目前graylog没有中文版

 

二、初始配置以及收集网络设备日志

完成配置登陆后,依照初始向导可以了解初始配置工作

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

2.1 添加udp协议为收集网络设备日志

 网络设备使用syslog协议的udp514端口进行发送日志,但是在 graylog中和大部分linux操作系统中,1024以下的端口都是属于特权端口,不允许直接使用,所以要配置iptables规则iptables规则重定向流量

iptables -t nat -A PREROUTING -p tcp --dport 514 -j REDIRECT --to 1514
iptables -t nat -A PREROUTING -p udp --dport 514 -j REDIRECT --to 1514
service iptables save

这样配置后,需要将1514端口定向到greylog的514端口上,方可以正常收集syslog协议

首先在“system"中勾选input

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

因为网络设备的使用syslog协议传输日志,使用udp514,在Inputs中选择“Syslog UDP"

 

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

完成后��点击launch new input进行下一步编辑

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

说明:

1、勾选global,代表全局,单服务器部署

2、bind address保持0.0.0.0默认,代表收集任何ip地址的日志

3、port 为1514,一般网络设备的 syslog默认配置为514,完成iptables重定向到1514定向到514,linux特权端口问题

完成配置后,启动input

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

在完成网络设备日志服务器配置后,例如防火墙

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

可以在graylog中看到收到的日志信息,点击”show  received message "

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

可以看到收集到的日志信息

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

 

2.2添加steam

 

日志收集到后,需要配置steam进行分析和筛选,在steam中创建steam

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

创建完成后,进行配置,点击manage rules进行配置

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

按照如下进行配置

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

说明:

1、type 选择contain代表包含字段信息

2、vlaue代表字段,这里选择error

3、这个stream rule 的意思时收集日志时,筛选过滤出来包含error字段的信息

然后点击保存,保存steam这条rule,当然,一个steam有多个rule,rule规则可以使用强大的正则表方式,这些rule的表达式都是用java写的

注意:时区问题

在graylog配置文件中,需要修改时区,不然graylog时间戳问题会有问题

vim /etc/graylog/server/server.conf
#在74行下添加

root_timezone = Asia/Shanghai

CentOS 7下安装部署Graylog3.0收集分析网络设备日志

思考:

graylog的功能很强大,还有告警和仪表盘等功能,要学会使用,需要一段时间