如何将 Ubuntu 日志发送到 Graylog 服务器
在此页
- 先决条件
- 设置 Graylog 输入
- 配置 Ubuntu 客户端发送日志
- 检查来自 Graylog 服务器的日志
- 结论
Graylog 是一个平台集中式日志管理系统。它是 DevOps 世界中最受欢迎的日志管理系统之一,具有多平台支持,可以安装在 Docker 和 Kubernetes 等容器环境中。
作为一个日志管理系统,Graylog 支持针对不同类型的应用程序和系统的多种输入。您可以为类 Unix 操作系统使用 Syslog 输入,为 Windows 系统使用 Windows EventLog,为您的自定义应用程序使用 GELF(Graylog 扩展日志格式)。
在本教程中,您将学习如何设置从 Ubuntu 机器发送日志到 Graylog 服务器。本演示使用最新的 Ubuntu 22.04 机器作为客户端和 Graylog 服务器 v4.3。如果您想知道如何在 Debian 11 上设置 Graylog 服务器,请查看此处。
先决条件
- 安装了 Graylog 服务器 - 该演示使用安装在 Debian 服务器上的 Graylog v4.3。
- 一台 Ubuntu 客户端机器 - 这个圆顶使用 Ubuntu 22.04 服务器。
- 具有 Sudo 管理员权限的非根用户。
设置 Graylog 输入
在开始配置 Ubuntu 客户端之前,您需要在 Graylog 服务器上设置输入。
Graylog 支持不同类型的日志系统输入,包括 Syslog、Journald、Windows eventlog、Raw/Plaintext、文件等。
对于 Linux 系统,您可以使用 Syslog 输入轻松地将日志发送到 Graylog 服务器。您只需要在 Graylog 服务器上创建类型为 Syslog 的输入,它将在特定端口和 IP 地址上自动运行。
打开您的 Web 浏览器并访问您的 Graylog 服务器安装(即 http://graylog.hwdomain.io/)。使用默认用户 admin 和强密码登录 Graylog 服务器。
现在单击“系统”菜单并单击“输入”,您将获得新页面。
在下拉输入页面上,在此处选择输入类型“Syslog UDP”,然后单击“启动新输入”按钮。

现在您需要在 Graylog 服务器上设置 Syslog 输入:
- 这里的节点会被自动选中,所以保持默认。
- 输入新输入的标题,例如“Syslog Linux UDP”。
- 这里的bind-address可以指定你输入的IP地址。这可以是您服务器的本地 IP 地址,或者您可以只使用 0.0.0.0 在服务器上的所有 IP 地址上运行输入。
- 此处的端口您可以使用不同的端口进行输入。只需确保该端口上没有其他服务在运行,并确保该端口不在 1-1024 之间的范围内。在此演示中,我们使用 UDP 端口 5148。

现在单击保存按钮以确认输入创建。
现在在输入页面上,您将看到在您的 Graylog 服务器上运行的所有可用输入。在下面的屏幕截图中,您可以看到输入“Syslog Linux UDP”正在 UDP 端口 5148 上运行,绑定地址为 0.0.0.0,这意味着在服务器上的所有 IP 地址上运行。

配置 Ubuntu 客户端发送日志
现在是时候配置 Ubuntu 客户端机器以将日志发送到 Graylog 服务器。这可以通过使用 Rsyslog 服务来完成。
首先,使用下面的 ssh 命令连接到你的 Ubuntu 机器。
ssh
检查 Ubuntu 机器上的 Rsyslog 包并确保其已安装。
sudo dpkg -l | grep rsyslog
sudo apt info rsyslog
在下面的屏幕截图中,您可以看到默认安装了 rsyslog 包。字段中的“ii”表示已安装。

现在使用以下命令验证 Rsyslog 服务。
sudo systemctl is-enabled rsyslog
sudo systemctl status rsyslog
您将看到 rsyslog 服务已启用,这意味着它将在系统启动时自动运行。而rsyslog服务的当前状态是running。

要使用 rsyslog 将日志从 Ubuntu 客户端计算机发送到 Graylog 服务器,您需要创建一个新的附加 rsyslog 配置。 rsyslog的默认配置是\/etc/rsyslog.conf\文件,额外的rsyslog配置可以存放在\/etc/rsyslog.d\ 目录。
使用 nano 编辑器创建一个新的附加 rsyslog 配置\/etc/rsyslog.d/60-graylog.conf\。
sudo nano /etc/rsyslog.d/60-graylog.conf
将以下配置添加到文件中。
*.*@192.168.5.10:5148;RSYSLOG_SyslogProtocol23Format
完成后保存并关闭文件。
IP 地址是 192.168.5.10 这里是 Graylog 服务器的 IP 地址,它在 UDP 端口 5148 上运行输入。
现在使用以下命令重新启动 rsyslog 服务以应用新更改和新配置。
sudo systemctl restart rsyslog
您已经完成了将日志发送到 Graylog 服务器的基本 rsyslog 配置。
从 Graylog 服务器检查日志
现在回到您的网络浏览器和 Graylog 仪表板。单击顶部的“搜索”菜单,您将从 Ubuntu 客户端计算机获取所有日志,如下所示。
从 Graylog 搜索仪表板,您可以过滤来自您的服务器或应用程序的日志消息、实时检查日志消息、检查特定时间范围内的日志消息等。

结论
恭喜!您现在已经使用 Rsyslog 服务成功配置了 Ubuntu 客户端计算机,以便将日志发送到 Graylog 服务器。您还通过在 Graylog 服务器上创建一个新的输入类型 Syslog UDP 了解了 Graylog 输入的基本配置。另一种发送日志的方法是使用 Elastic 的系统日志 TCP、文件、JSON 和节拍。