Graylog是一款优秀的日志收集分析软件,区别于ELK,它更加简洁,高效,部署使用更加简单。官方网址https://www.graylog.org/,安装手册参考http://docs.graylog.org/en/3.0/pages/installation.html
一、安装部署
graylog采用单机部署,,采用最小化部署,架构如下
组件介绍 :
-
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
最后一行添加action.auto_create_index: false
修改配置后,可以启动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行
然后修改web登陆接口,在104行,按照如下配置,默认端口9000,可以修改
完成修改后保存,然后启动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配置设定的密码
目前graylog没有中文版
二、初始配置以及收集网络设备日志
完成配置登陆后,依照初始向导可以了解初始配置工作
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
因为网络设备的使用syslog协议传输日志,使用udp514,在Inputs中选择“Syslog UDP”
完成后��点击launch new input进行下一步编辑
说明:
1、勾选global,代表全局,单服务器部署
2、bind address保持0.0.0.0默认,代表收集任何ip地址的日志
3、port 为1514,一般网络设备的 syslog默认配置为514,完成iptables重定向到1514定向到514,linux特权端口问题
完成配置后,启动input
在完成网络设备日志服务器配置后,例如防火墙
可以在graylog中看到收到的日志信息,点击”show received message “
可以看到收集到的日志信息
2.2添加steam
日志收集到后,需要配置steam进行分析和筛选,在steam中创建steam
创建完成后,进行配置,点击manage rules进行配置
按照如下进行配置
说明:
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
思考:
graylog的功能很强大,还有告警和仪表盘等功能,要学会使用,需要一段时间