• Graylog 是一个开源的日志聚合、分析、审计、展现和预警工具。在功能上来说,和 ELK 类似,但又比 ELK 要简单很多。依靠着更加简洁,高效,部署使用简单的优势很快受到许多人的青睐。当然,在扩展性上面确实没有ELK好,但是其有商业版本可以选择。

  • 部署 graylog 最简单的架构就是单机部署,复杂的也是部署集群模式,架构图如下所示。我们可以看到其中包含了三个组件,分别是 Elasticsearch、MongoDb 和 Graylog。其中,Elasticsearch 用来持久化存储和检索日志文件数据(IO 密集),MongoDb 用来存储关于 Graylog 的相关配置。 而Graylog 来提供 Web 界面和对外接口的(CPU 密集)。

image

Graylog官网安装文档:https://go2docs.graylog.org/5-2/downloading_and_installing_graylog/red_hat_installation.htm

1. 安装环境

CentOS版本:7.9 64位
OpenJDK ( > 17 )
pwgen:密码生成
MongoDB (5.x or 6.x):用来存储关于 Graylog 的相关配置
Elasticsearch (6.x or 7.x):Elasticsearch 用来持久化存储和检索日志文件数据
Graylog 5.2+

2. 安装及配置

2.1. 关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2.2. 关闭Selinux

vi  /etc/selinux/config 
将SELINUX=enforcing 修改为SELINUX=disable

2.3.安装依赖epel-release、 jdk、pwgen

yum -y install epel-release java pwgen

2.4.安装MongoDB

  • 配置MongoDB Yum源
vi /etc/yum.repos.d/mongodb-org.repo  

添加以下内容:

[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
  • 安装MongoDB
yum -y install mongodb-org     
  • 配置开机启动,并启动和查看MongoBD状态
 systemctl daemon-reload
 systemctl enable mongod.service
 systemctl start mongod.service
 systemctl status mongod.service

2.5.安装Elasticsearch

  • 首先,安装 Elasticsearch GPG 密钥:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
  • 配置Elasticsearch Yum源
 vi /etc/yum.repos.d/elasticsearch.repo

添加以下内容:

[elasticsearch-7.10.2]
name=Elasticsearch repository for 7.10.2 packages
baseurl=https://artifacts.elastic.co/packages/oss-7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
  • 安装elasticsearch
yum -y install elasticsearch-oss
  • 安装之后,编辑vi /etc/elasticsearch/elasticsearch.yml,修改以下内容:
cluster.name: graylog   #去掉前面#,并修改cluster.name改为graylog
action.auto_create_index: false   #添加到最后一行
  • 配置开机启动,并启动elasticsearch
systemctl daemon-reload
systemctl enable elasticsearch.service
systemctl start elasticsearch.service

2.6.安装Graylog

  • 配置与安装Graylog
rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.rpm

yum -y 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

如下图所示:
image-1712975629838

然后编辑 /etc/graylog/server/server.conf,将上面生成password_secret和root_password_sha2写入配置文件,并将以下内容添加到最后一行

root_timezone = Asia/Shanghai
http_bind_address = 0.0.0.0:9000
web_listen_uri = http://0.0.0.0:9000/
rest_listen_uri = http://0.0.0.0:12900/
rest_transport_uri = http://192.168.1.35:12900/
elasticsearch_cluster_name = graylog
elasticsearch_shards = 1
elasticsearch_replicas = 0
mongodb_useauth = false
  • 配置开机启动,并启动graylog
systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service
  • 查看graylog日志文件,获取初始化密码,如下图所示:
[root@localhost ~]# cd /var/log/graylog-server/
[root@localhost graylog-server]# tail -f server.log 

image-1712976335721

  • 在浏览器输入http://192.168.1.35:9000/,默认登录用户名:admin,密码(日志中获取):GUmxkAJvlQ,进行初始化配置工作,如下图:
    image-1712976692426
    image-1712976934707
    image-1712977075385
    image-1712977126702
    image-1712977157737

  • 初始化完成之后,进入系统登录界面,默认登录用户名:admin,密码为生成root_password_sha2设置的密码
    image-1712977180468
    登录成功首页显示如下:
    image-1712977336415

3.导入日志任务(以收集网络设备日志为例)

  • 在System中选择Inputs,因网络设备的使用syslog协议传输日志,使用udp514,在Inputs中选择“Syslog UDP"
    image-1712977942502
    image-1712978210071
  • 完成之后点击Launch new input进行下一步编辑
    image-1712978409891
  • 勾选global,代表全局,单服务器部署
  • bind address保持0.0.0.0默认,代表收集任何ip地址的日志
  • 一般网络设备的 syslog默认配置端口为514
  • 时区改为Asia/Shanghai
    image-1712978852847
    image-1712978668435
    配置完成如下图所示:
    image-1712978912439
下一篇