ubuntu18.04部署syslog服务器

1、前提环境

  • 服务端:Ubuntu18.04
  • 客户端:linux系统开发板
  • 保证服务端、客户端在在同一局域网内

2、日志等级

  • emerg,panic(紧急):0级 - 这是最低的日志级别,系统无法使用。
  • 警报(警报):1级 - 必须立即采取行动。
  • 错误(错误):3级 - 危急情况。
  • 警告(警告):等级4 - 警告条件。
  • 通知(通知):第5级 - 正常但重要的条件。
  • info(信息):6级 - 信息性消息。
  • debug(Debugging):Level 7 - 这是最高级别 - 调试级别的消息。

3、配置

3.1、安装rsyslog

sudo apt-get install rsyslog

3.2、安装后,检查服务以查看它是否正在运行

sudo service rsyslog status

3.3、修改配置文件

sudo vim /etc/rsyslog.conf

3.4、根据需求取消注释udp和tcp端口绑定的行:

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

3.4.1、补充说明

如果你想限制访问特定子网,IP或域,请添加如下:

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

可以在输入input(type=“imtcp” port=“514”)行后添加上面的行,请记住用正确的值替换给定的值。

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

让我们创建一个模板,指示rsyslog服务器如何存储传入的syslog消息,在GLOBAL DIRECTIVES部分之前添加模板

$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.*  ?RemoteLogs
& stop

收到的日志将使用上面的模板进行解析并存储在目录/var/log/remote中,文件命名遵循约定:%HOSTNAME% and %PROGRAMNAME%变量,即:客户端主机名和生成日志消息的客户端工具。
& stop指示rsyslog守护程序仅将日志消息存储到指定的文件(也有人使用& ~)。
可以使用的其它变量包括:
%syslogseverity%, %syslogfacility%, %timegenerated%, %HOSTNAME%, %syslogtag%, %msg%, %FROMHOST-IP%, %PRI%, %MSGID%, %APP-NAME%, %TIMESTAMP%, % y e a r year%, % yearmonth%, %$day%

3.6、完整配置

#  /etc/rsyslog.conf    Configuration file for rsyslog.
#
#                       For more information see
#                       /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#
#  Default logging rules can be found in /etc/rsyslog.d/50-default.conf


#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
#module(load="immark")  # provides --MARK-- message capability

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

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

# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")

$template RemoteLogs,"/var/log/remote/%HOSTNAME%/%PROGRAMNAME%.log"
*.*  ?RemoteLogs
& stop

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# Filter duplicated messages
$RepeatedMsgReduction on

#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog

#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog

#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf

3.7、配置完成后重启rsyslog服务

sudo systemtcl restart rsyslog

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

ss -tunelp | grep 514

3.9、在客户端测试端口是否能通

nc -vuz 192.168.3.99 514

3.10、配置Rsyslog防火墙

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

sudo ufw allow 514/tcp
sudo ufw allow 514/udp

4、将Rsyslog配置为客户端(我没使用此配置,用的是脚本)

4.1、完成rsyslog服务器的配置后,请转到rsyslog客户端计算机并配置它们以将日志发送到远程rsyslog服务器:

sudo vim /etc/rsyslog.conf

4.2、允许保留FQDN:

$PreserveFQDN on

4.3、最后添加远程rsyslog服务器:

4.3.1、udp发送日志
*.* @ip-address-of-rsysog-server:514

还可以使用FQDN而不是服务器IP地址:

*.* @fqdn-of-rsysog-server:514
4.3.2、tcp发送日志

以上行将允许通过UDP发送日志,因为tcp使用@@而不是单个@:

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

或者:

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

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

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

4.5、然后重启rsyslog服务:

sudo service rsyslog restart

4.6、至此,配置完成。

参考1
参考2
参考3

猜你喜欢

转载自blog.csdn.net/SweetHeartHuaZai/article/details/128330473