服务器接收消息写日志,在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法
本文介紹在Ubuntu 18.04操作系統上配置Rsyslog集中式日志服務器的方法。
前言
登錄任何Linux系統對于分析和排除與系統和應用程序相關的任何問題至關重要,借助Graylog等工具(參考:在Ubuntu 18.04上安裝及配置Graylog server的方法),你可以輕松地將這些日志發送到集中平臺,以便輕松實現可視化。
在Linux上,默認情況下,所有日志文件都位于/var/log目錄下,有幾種類型的日志文件存儲不同的消息,可以是cron,內核,安全性,事件,用戶,這些日志文件大多由rsyslog服務控制。
在最近使用systemd的系統上,一些日志由journald守護程序管理,它們是二進制格式的,這些日志是易失性的,因為它們被寫入RAM并且不能承受系統重啟,它們經常在/run/log/journal/上找到,但請注意,也可以將journald配置為通過寫入文件來永久存儲日志消息。
我們將把rsyslog服務器配置為集中式日志管理系統,rsyslog服務將偵聽udp/tcp端口, rsyslog使用的默認端口是514,在客戶端系統上,rsyslog將通過UDP或TCP端口通過網絡收集日志并將日志發送到rsyslog服務器。
使用syslog消息時,存在表征日志文件的優先級/嚴重性級別,即:
emerg,panic(緊急):0級 - 這是最低的日志級別,系統無法使用。
警報(警報):1級 - 必須立即采取行動。
錯誤(錯誤):3級 - 危急情況。
警告(警告):等級4 - 警告條件。
通知(通知):第5級 - 正常但重要的條件。
info(信息):6級 - 信息性消息。
debug(Debugging):Level 7 - 這是最高級別 - 調試級別的消息。
安裝Rsyslog
默認情況下,在Ubuntu 18.04系統上Rsyslog安裝非常的簡單,只需要一個命令,你可以通過運行以下命令來安裝它:
sudo apt-get install rsyslog
安裝后,檢查服務以查看它是否正在運行,運行sudo systemctl status rsyslog命令即可:
配置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服務器如何存儲傳入的syslog消息,在GLOBAL DIRECTIVES部分之前添加模板:
$template remote-incoming-logs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
*.* ?remote-incoming-logs
& ~
收到的日志將使用上面的模板進行解析并存儲在目錄/var/log/中,文件命名遵循約定:%HOSTNAME% and %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
配置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
或者:
*.* @@fqdn-of-rsysog-server:514
當rsyslog服務器關閉時,還要添加以下內容:
$ActionQueueFileName queue
$ActionQueueMaxDiskSpace 1g
$ActionQueueSaveOnShutdown on
$ActionQueueType LinkedList
$ActionResumeRetryCount -1
然后重啟rsyslog服務:
sudo systemtcl restart rsyslog
至此,配置完成。
相關主題
總結
以上是生活随笔為你收集整理的服务器接收消息写日志,在Ubuntu 18.04上配置Rsyslog集中式日志服务器的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器多路径协议,多主机多路径分流传输协
- 下一篇: 文件服务器冷热数据划分,游戏服务器冷热数