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规则和关闭防火墙
代码语言:javascript复制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先决条件
以最小的服务器设置为基础将需要这些额外的包:
代码语言:javascript复制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使用以下内容添加存储库文件
代码语言:javascript复制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
代码语言:javascript复制yum install mongodb-org
然后配置MongoDB作为服务开机启动
代码语言:javascript复制chkconfig --add mongod
systemctl daemon-reload
sudo systemctl enable mongod.service
systemctl start mongod.service
1.3安装Elasticsearch
首先安装Elastic GPG密钥,然后添加包含以下内容的存储库文件中,graylog3.0采用的是elasticsearch6.x版本
代码语言:javascript复制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
随后安装最新版本。
代码语言:javascript复制yum install elasticsearch-oss
修改elasticsearch的配置文件,/etc/elasticsearch/elasticsearch.yml,将cluster.name修改为graylog,然后在配置文件中最后一样添加action.auto_create_index: false
代码语言:javascript复制vim /etc/elasticsearch/elasticsearch.yml
在16后行修改cluster.name
最后一行添加action.auto_create_index: false
修改配置后,可以启动Elasticsearch:
代码语言:javascript复制chkconfig --add elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl restart elasticsearch.service
1.4安装graylog
现在使用以下命令安装Graylog存储库配置和Graylog本身:
代码语言:javascript复制rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-3.0-repository_latest.rpm
yum install graylog-server
安装完成后,首先生成生成password_secret密码
代码语言:javascript复制pwgen -N 1 -s 96
生成root_password_sha2密码 (Web登录密码)
代码语言:javascript复制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
代码语言:javascript复制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规则重定向流量
代码语言:javascript复制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时间戳问题会有问题
代码语言:javascript复制vim /etc/graylog/server/server.conf
#在74行下添加
root_timezone = Asia/Shanghai
思考:
graylog的功能很强大,还有告警和仪表盘等功能,要学会使用,需要一段时间