共计 3748 个字符,预计需要花费 10 分钟才能阅读完成。
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 的功能很强大,还有告警和仪表盘等功能,要学会使用,需要一段时间
: