在Ubuntu 22.04

您所在的位置:网站首页 日志发送 在Ubuntu 22.04

在Ubuntu 22.04

2024-07-16 17:57| 来源: 网络整理| 查看: 265

在Ubuntu 22.04|20.04|18.04上配置Rsyslog集中日志服务器

任何 Linux 系统上的日志对于分析和排除与系统和应用程序相关的任何问题都至关重要。借助 Graylog 等工具,您可以轻松地将这些日志发送到集中式平台,以便于可视化。在本指南中,我们将了解如何在 Ubuntu 22.04|20.04|18.04LTS 上配置 Rsyslog 集中日志服务器。

在 Linux 上,默认情况下,所有日志文件都位于 /var/log 目录下。有多种类型的日志文件存储不同的消息,可以是 cron、内核、安全、事件、用户等。大多数这些日志文件由rsyslog服务控制。

在最近使用 systemd 的系统上,一些日志由日志守护程序管理,并且以二进制格式写入。这些日志是易失性的,因为它们被写入 RAM 并且无法承受系统重新启动。它们通常位于 /run/log/journal/ 但请注意,journald 也可以配置为通过写入文件来永久存储日志消息。

在 Ubuntu 22.04|20.04|18.04 上配置 Rsyslog 日志服务器

我们将配置 rsyslog 服务器作为中央日志管理系统。这遵循客户端-服务器模型,其中 rsyslog 服务将侦听udp/tcp端口。 rsyslog 使用的默认端口是 514。在客户端系统上,rsyslog 将通过 UDP 或 TCP 端口通过网络收集日志并将日志发送到中央 rsyslog 服务器。

使用系统日志消息时,日志文件有一个优先级/严重性级别来表征。即:

紧急、恐慌(紧急):级别0 - 这是最低的日志级别。系统无法使用警报(警报):1 级 - 必须立即采取行动错误(错误):3 级 - 严重情况警告(警告):4 级 - 警告条件通知(通知):5 级 – 正常但重要的情况信息(信息):级别6 – 信息性消息调试(调试):级别 7 – 这是最高级别 – 调试级别消息

Rsyslog 默认安装在新安装的 Ubuntu 系统上。如果由于任何原因未安装该软件包,您可以通过运行以下命令来安装它:

sudo apt-get update sudo apt-get install rsyslog

安装后,检查服务是否正在运行:

$ systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-07-18 11:30:10 UTC; 4 days ago Main PID: 903 (rsyslogd) Tasks: 4 (limit: 4704) CGroup: /system.slice/rsyslog.service └─903 /usr/sbin/rsyslogd -n配置 rsyslog 以服务器模式运行

现在将 rsyslog 服务配置为在服务器模式下运行:

sudo vim /etc/rsyslog.conf

取消注释 udp 和 tcp 端口绑定行:

module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")

如果您想限制对特定子网、IP 或域的访问,请添加如下内容:

$AllowedSender TCP, 127.0.0.1, 192.168.10.0/24, *.example.com

您可以在 input(type="imtcp" port="514") 行之后添加以上行。请记住用正确的值替换给定的值

创建用于接收远程消息的新模板

让我们创建一个模板来指示 rsyslog 服务器如何存储传入的系统日志消息。在 GLOBAL DIRECTIVES 部分之前添加模板:

$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log" *.* ?remote-incoming-logs & ~

收到的日志将使用上面的模板进行解析并存储在目录/var/log/中。文件命名遵循以下约定:%HOSTNAME% 和 %PROGRAMNAME% 变量,即客户端主机名和生成日志消息的客户端设施。

& ~ 指示 rsyslog 守护进程仅将日志消息存储到指定的文件中。

其他可以使用的变量包括:

%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, %$year%, %$month%, %$day%

重新启动 rsyslog 服务以使更改生效:

sudo systemctl restart rsyslog

确认服务是否正在侦听配置的端口:

$ ss -tunelp | grep 514 udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=15220,fd=5)) ino:441816 sk:2 udp UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=15220,fd=6)) ino:441817 sk:5 v6only:1 tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=15220,fd=7)) ino:441820 sk:a tcp LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=15220,fd=8)) ino:441821 sk:11 v6only:1 配置Rsyslog防火墙

如果您正在运行 ufw 防火墙服务,请允许 rsyslog 防火墙端口:

sudo ufw allow 514/tcp sudo ufw allow 514/udp将 Rsyslog 配置为客户端

完成 rsyslog 服务器的配置后,前往 rsyslog 客户端计算机并将它们配置为将日志发送到远程 rsyslog 服务器。

sudo vim /etc/rsyslog.conf

允许保留 FQDN:

$PreserveFQDN on

最后添加远程rsyslog服务器:

*.* @ip-address-of-rsysog-server:514

您还可以使用 FQDN 代替服务器 IP 地址:

*.* @fqdn-of-rsysog-server:514

上述行将启用通过 UDP 发送日志,对于 tcp,使用 @@ 而不是单个 @

*.* @@ip-address-of-rsysog-server:514 #OR *.* @@fqdn-of-rsysog-server:514

当 rsyslog 服务器关闭时,还要添加以下内容:

$ActionQueueFileName queue $ActionQueueMaxDiskSpace 1g $ActionQueueSaveOnShutdown on $ActionQueueType LinkedList $ActionResumeRetryCount -1

然后重启rsyslog服务

sudo systemctl restart rsyslog

另请检查:

在 Ubuntu 18.04 上使用 Graylog 服务器管理日志

如何在 CentOS 7 上安装 Graylog 2.4 和 Elasticsearch。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3