本页内容

  • 环境要求
  • 配置软件仓库
  • 安装依赖项
  • 配置 Opensearch
  • 安装并配置 Graylog 服务器
  • 配置 Firewalld 和 SELinux
  • 访问 Graylog 服务器
  • 创建第一个 Graylog 输入
  • 通过 Rsyslog 向 Graylog 发送日志
  • 结论

Graylog 是一个免费开源的日志管理平台,用于采集、存储并实现数据和日志的实时分析。它由 Java 编写,并构建于 MongoDB 和 Elasticsearch 等其他开源软件之上。Graylog 提供了最高效、快速且灵活的集中式日志管理平台之一。借助 Graylog,你可以从几乎任何数据源发送并分析结构化和非结构化数据。

在本指南中,我们将介绍如何在 AlmaLinux 9 服务器上将 Graylog 安装为集中式日志管理系统。你将安装 Graylog 服务器,然后为客户端设置向 Graylog 服务器发送日志的输入(inputs)。

环境要求

要完成本指南,请确保你具备以下条件:

  • 一台至少 4 GB 内存的 AlmaLinux 9 服务器——本例中,我们将使用一台 8 GB 内存、IP 地址为 192.168.10.20 的 AlmaLinux 服务器。
  • 一个具有管理员权限的非 root 用户。

配置软件仓库

在开始本指南之前,你需要为你的 AlmaLinux 9 机器添加新仓库。你将把 MongoDB 6.x、Opensearch 2.x 以及 Graylog 5.x 的仓库添加到系统中。

首先,执行以下 dnf 命令在你的系统上安装 curl。

sudo dnf install curl -y

如何在 AlmaLinux 9 上安装 Graylog

现在复制并运行以下命令来添加 MongoDB 仓库。Graylog 服务器至少需要 MongoDB v6.x。

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-6.repo
[mongodb-org-6.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/6.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
EOF

接下来,运行以下命令来添加 Opensearch 仓库。Opensearch 是 Elasticsearch 的替代品,建议在较新的 Graylog 版本中使用。本例中我们将使用 Opensearch v2.x。

sudo curl -SL https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/opensearch-2.x.repo -o /etc/yum.repos.d/opensearch-2.x.repo

如何在 AlmaLinux 9 上安装 Graylog

现在运行以下命令,将 Graylog 仓库添加到你的系统。在撰写本文时,Graylog 服务器的最新版本是 v5.1。

sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-5.1-repository_latest.rpm

如何在 AlmaLinux 9 上安装 Graylog

最后,执行以下 dnf 命令来验证你 AlmaLinux 服务器上可用的仓库。

sudo dnf repolist

如果成功,你应该能看到 MongoDB 6.x、Opensearch 2.x 以及 Graylog 服务器的仓库。

如何在 AlmaLinux 9 上安装 Graylog

安装依赖项

添加仓库之后,你将通过 DNF 包管理器安装 MongoDB 6.x 和 Opensearch 2.x。MongoDB 将用于存储字符串数据,而 Opensearch 将作为 Graylog 服务器的主要搜索引擎。

执行以下 dnf 命令来安装 MongoDB 和 Opensearch。当提示确认时输入 y,然后按 ENTER。

sudo dnf install mongodb-org opensearch

如何在 AlmaLinux 9 上安装 Graylog

一旦 MongoDB 和 Opensearch 安装完成,运行以下 systemctl 命令来重新加载 systemd 管理器。

sudo systemctl daemon-reload

然后,使用以下命令启动并启用 MongoDB 服务。

sudo systemctl start mongod
sudo systemctl enable mongod

使用以下命令启动并启用 Opensearch 服务。

sudo systemctl start opensearch
sudo systemctl enable opensearch

如何在 AlmaLinux 9 上安装 Graylog

最后,运行以下命令来验证 MongoDB 和 Opensearch 服务的状态。如果正在运行,服务状态应显示为 active (running)。

sudo systemctl status mongod
sudo systemctl status opensearch

检查 MongoDB 服务状态。

如何在 AlmaLinux 9 上安装 Graylog

检查 Opensearch 服务状态。

如何在 AlmaLinux 9 上安装 Graylog

配置 Opensearch

对于 Graylog 部署,建议使用 Opensearch 作为默认搜索引擎。Opensearch 的替代品是 Elasticsearch,但仅支持 Elasticsearch v7.x。在接下来的部分中,你将把 Opensearch 配置为 Graylog 服务器的默认搜索引擎。

首先,使用以下 nano 编辑器命令打开 Opensearch 默认配置文件 /etc/opensearch/opensearch.yml。

sudo nano /etc/opensearch/opensearch.yml

取消注释 cluster.name 参数并输入你的 Opensearch 集群名称,node.name 并输入你系统的主机名,然后 network.host 并输入你的内网 IP 地址。本例中,集群名称将为 graylog,主机名为 graylog-alma,IP 地址为 192.168.10.20(运行在本地网络中)。

cluster.name: graylog
node.name: graylog-alma
network.host: 0.0.0.0

添加以下行,将 Opensearch 配置为单节点/服务器,禁用 auto_create_index 以及安全插件(仅用于测试目的)。

discovery.type: single-node
action.auto_create_index: false
plugins.security.disabled: true

完成后保存文件并退出编辑器。

现在,使用 nano 编辑器打开文件 /etc/opensearch/jvm.options,以设置 Opensearch 服务的最大内存分配。

sudo nano /etc/opensearch/jvm.options

更改你 Opensearch 安装的默认内存分配。本例中,Opensearch 应以最大 2 GB 内存运行。

-Xms2g
-Xmx2g

完成后保存文件并退出编辑器。

接下来,使用以下 nano 编辑器命令打开文件 /usr/lib/tmpfiles.d/opensearch.conf。

sudo nano /usr/lib/tmpfiles.d/opensearch.conf

将默认路径从 /var/run/opensearch 更改为 /run/opensearch。该目录将用于存储与 Opensearch 相关的附加文件,并将通过此配置自动创建。

/run/opensearch

完成后保存并关闭文件。

之后,运行以下命令将 vm.max_map_count 增加到 262144。这是 Opensearch 所必需的,要使其永久生效,你需要向 /etc/sysctl.conf 文件添加一个新的参数。

sudo sysctl -w vm.max_map_count=262144
sudo echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

现在运行以下 systemctl 命令来重启 Opensearch 服务并应用你所做的更改。

sudo systemctl restart opensearch

Opensearch 应运行在你服务器的本地 IP 地址上,本例中它运行在 192.168.10.20,默认端口为 9200。

如何在 AlmaLinux 9 上安装 Graylog

执行以下 curl 命令来访问你的 Opensearch 安装。

curl 192.168.10.20:9200

如果 Opensearch 配置成功,你应该会看到类似如下关于你的 Opensearch 安装的详细信息:

如何在 AlmaLinux 9 上安装 Graylog

至此,Opensearch 和 MongoDB 已准备就绪。在下一部分中,你将开始 Graylog 服务器的安装和配置。

安装并配置 Graylog 服务器

在本节中,你将在 AlmaLinux 9 机器上安装 Graylog 服务器 v5.x,并将 Graylog 配置为你基础设施的集中式日志管理。

执行以下 dnf 命令来安装 graylog-server 软件包。输入 y 确认安装并按 ENTER 继续。

sudo dnf install graylog-server

如何在 AlmaLinux 9 上安装 Graylog

再次输入 y 以添加 Graylog 仓库的 GPG 密钥。

如何在 AlmaLinux 9 上安装 Graylog

安装 Graylog 服务器后,执行以下命令为 Graylog 服务器生成 password_secret。复制你所生成的随机字符串。

< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c${1:-96};echo;

现在运行以下命令为你的 graylog 服务器生成 root_password_sha2。该密码将用于登录 Graylog 管理后台。

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

输入你的密码并复制生成的哈希密码。

如何在 AlmaLinux 9 上安装 Graylog

在下面的示例中,JmGGtkruJ80LjnQBnz8QZ0gHjKpBZwWmH7JF0ZBa9iBS999bTlQfViaQj7jAH-XgIVcdVcDVYyy3x5Dh7fEXCPhbrSUXX1G1 是 password secret,而 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8 是为你的 Graylog 服务器生成的 root_password_sha2 密码。

接下来,使用 nano 编辑器打开 Graylog 配置文件 /etc/graylog/server/server.conf。

sudo nano /etc/graylog/server/server.conf

将生成的 password secret 填入 password_secret 参数,并将默认的 root_password_sha2 更改为你所生成的新密码。

password_secret = R8zwuO2NDewUcwRFQ0QDm07tn6AppmwThty0aagxOoqMDWNqPJLwrffpz7DdQyQVY1uHq54QwgYMNkZnBLuXQf3B1giq5RKX
...
root_password_sha2 = a7fdfe53e2a13cb602def10146388c65051c67e60ee55c051668a1c709449111

取消注释 http_bind_address 参数,并将 IP 地址更改为你的内网 IP 地址,后面跟上 Graylog 服务器的默认端口 9000。

http_bind_address = 192.168.10.20:9000

保存文件并关闭编辑器。

现在运行以下 systemctl 命令来重新加载 systemd 管理器。

sudo systemctl daemon-reload

然后使用以下命令启动并启用 Graylog 服务器。

sudo systemctl start graylog-server
sudo systemctl enable graylog-server

如何在 AlmaLinux 9 上安装 Graylog

最后,使用以下命令验证 Graylog 服务器状态。如果 Graylog 正在运行,你的终端上应输出 active (running)。

sudo systemctl status graylog-server

如何在 AlmaLinux 9 上安装 Graylog

此外,你也可以通过使用以下 ss 命令检查系统上开放的端口列表来验证 Graylog 服务器。

ss -tulpn | grep 9000

如果成功,你应该会看到 Graylog 服务器正在使用端口 9000。

配置 Firewalld 和 SELinux

在安装并配置 Graylog 服务器之后,下一步你将设置 SELinux 和 firewalld。本例中,SELinux 以 enforcing 模式运行,且 firewalld 正在运行。

运行以下 dnf 命令,将 SELinux 管理工具安装到你的 AlmaLinux 服务器。提示时输入 y,然后按 ENTER 继续。

sudo dnf install policycoreutils policycoreutils-python-utils

如何在 AlmaLinux 9 上安装 Graylog

现在,运行以下命令来添加一些 SELinux 策略,并允许某些服务的端口,例如 Graylog 服务器端口 9000、MongoDB 端口 27017 以及 Opensearch 端口 9200。

sudo setsebool -P httpd_can_network_connect 1
sudo semanage port -a -t http_port_t -p tcp 9000
sudo semanage port -a -t http_port_t -p tcp 9200
sudo semanage port -a -t mongod_port_t -p tcp 27017

如何在 AlmaLinux 9 上安装 Graylog

接下来,运行以下 firewall-cmd 命令,将 Graylog 服务器端口 9000 添加到 firewalld,并重新加载 firewalld 以应用更改。

sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload

最后,运行以下命令来验证你系统上的 firewalld 规则列表。确保端口 9000 在你的 firewalld 上可用。

sudo firewall-cmd --list-all

如何在 AlmaLinux 9 上安装 Graylog

访问 Graylog 服务器

既然你已经成功配置了 SELinux 和 firewalld,现在你可以访问你的 Graylog 服务器安装。

启动你常用的网页浏览器,并访问你的 AlmaLinux 服务器 IP 地址加上端口 9000(例如:http://192.168.10.20:9000/)。如果 Graylog 安装成功,你应该会看到如下的 Graylog 登录页面。

使用默认用户 admin 以及你所生成的密码(即 root_password_sha2 密码)登录。

如何在 AlmaLinux 9 上安装 Graylog

如果你输入了正确的用户和密码,Graylog 管理后台将显示在你的浏览器中。

如何在 AlmaLinux 9 上安装 Graylog

创建第一个 Graylog 输入

登录 Graylog 服务器后,你必须做的第一件事就是创建新的输入(inputs),用作来自目标监控系统的日志接收器。Graylog 输入有两种类型:Listener 输入和 Pull 输入。

Listener 输入的示例有 Syslog TCP/UDP、Beats TCP、GELF TCP、CEF TCP 和 Netflow TCP。Pull 输入的一些示例有 CEF AMQP 和 Kafka、Raw/Plaintext AMQP 和 Kafka,以及 Syslog AMQP 和 Kafka。

在接下来的部分中,你将使用 Syslog UDP 创建第一个 Graylog 输入。

点击 System 菜单并选择 Inputs。

如何在 AlmaLinux 9 上安装 Graylog

从下拉菜单中选择你要创建的输入类型,然后点击 Launch new input。本例中,我们将创建一个 Syslog UDP 类型的输入。

如何在 AlmaLinux 9 上安装 Graylog

输入输入名称、内网 IP 地址,以及新输入将运行的端口。本例中,我们将创建一个名为 graylog-alma 的 Syslog UDP 输入,它将运行在内网 IP 地址 0.0.0.0,端口为 5142。

如何在 AlmaLinux 9 上安装 Graylog

接下来,向下滚动到页面底部,你应该会看到状态为 running 的新输入 graylog-alma。

如何在 AlmaLinux 9 上安装 Graylog

最后,返回终端服务器并执行以下 firewall-cmd 命令,打开将由 graylog-alma 输入使用的端口 5142。

sudo firewall-cmd --add-port=5142/udp --permanent
sudo firewall-cmd --reload

使用以下命令验证 firewalld 上开放的端口列表。确保端口 5142 在 firewalld 上可用。

sudo firewall-cmd --list-all

如何在 AlmaLinux 9 上安装 Graylog

通过 Rsyslog 向 Graylog 发送日志

在 Graylog 服务器上创建 Syslog UDP 输入后,你现在可以向 Graylog 服务器发送日志消息。在接下来的部分中,你将使用 Rsyslog 从一台 Linux 机器向 Graylog 服务器发送日志。

使用以下 nano 编辑器命令创建一个新的附加 rsyslog 配置文件 /etc/rsyslog.d/graylog.conf。

sudo nano /etc/rsyslog.d/graylog.conf

插入以下配置,并确保将 IP 地址和端口更改为输入 graylog-alma 的详细信息。

*.*@192.168.10.20:5142;RSYSLOG_SyslogProtocol23Format

完成后保存并退出文件。

现在运行以下 systemctl 命令来重启 Rsyslog 服务并应用更改。Rsyslog 重启后,目标机器将通过 syslog 协议向输入 graylog-alma 发送日志到 Graylog 服务器。

sudo systemctl restart rsyslog

接下来,返回 Graylog 管理后台并点击 Stream 菜单。如果你的安装成功,你应该会看到目标机器的详细日志在 Graylog 服务器上可用。

如何在 AlmaLinux 9 上安装 Graylog

结论

恭喜,你已成功在 AlmaLinux 9 系统上将 Graylog 安装为集中式日志管理系统!你已将 Graylog 与 MongoDB 和 Opensearch 一起安装,并通过 Syslog UDP 配置了第一个 Graylog 输入。你现在可以探索不同类型的 Graylog 输入,或者借助多台服务器来扩展 Graylog 部署。