×

Linux系统之rsyslog配置

hqy hqy 发表于2020-06-05 19:15:46 浏览2374 评论0

抢沙发发表评论

Linux系统之rsyslog配置


https://blog.csdn.net/weixin_41432553/article/details/93098599

展开

目录


Rsyslog简介


Linux配置rsyslog


配置实验:


实验环境:


实验步骤:


实验准备:


针对UDP:


针对TCP:


针对RELP:


结果验证:


1、UDP:


2、TCP:


3、RELP:


Rsyslog简介

         Rsyslog是一个 syslogd 的多线程增强版,在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL, PostgreSQL、Oracle等)、日志内容筛选、定义日志格式模板等。除了默认的udp协议外,rsyslog还支持tcp协议来接收日志。


Linux配置rsyslog

rsyslog一般是预先就安装于linux系统的发行版上的,rsyslog后台进程默认不能接受外部信息的,但可以通过配置它的配置文件/etc/rsyslog.conf来配置。


1、打开/etc/rsyslog.conf文件,查询和去掉它们行首的#字符来得到去注释化后的下两行


$ModLoad imudp 

$UDPServerRun 514


这个是允许rsyslog后台进程在udp协议的514端口上接收日志信息。UDP比TCP快,但是其是不可靠的数据传输协议。如果你想要可靠的传输,那你要使用没有注释的下面两行


$ModLoad imtcp 

$InputTCPServerRun 514


注意:rsyslog后台进程是可以同时监听TCP/UDP连接的。


 


接下来需要创建一个模板,告诉rsyslog后台进程怎样记录从其它客户端接收的信息。


2、打开/etc/rsyslog.conf文件,在GLOBAL DIRECTIVES内容块的前面追加如下模板


$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"

*.* ?RemoteLogs 

& ~


$template RemoteLogs指令(“RemoteLogs” 可以为其它的描述的名字)迫使rsyslog后台进程隔开本地/var/log/下文件去写日志信息。而日志文件名则依据发送远程日志的机器名及应用程序名来定义。第二行(*.*  ?RemoteLogs)暗含运行用模板RemoteLogs于所有的接收日志。


& ~则告诉rsyslog后台进程停止进一步的去处理日志信息,即不对它们进行本地化写入,它是代表一个重定向规则。如果没有这一行,则意味着接收到的日志会写入两次,一次如前两行写的方式写,第二次则以本地日志记录的方式写入。运行这个规则的另一个结论则是日志服务器自己的日志信息只会写入到依照机器主机名命名的文件中。


 


3、重启rsyslog服务


在Debian,Ubuntu或CentOS/RHEL 6下的方式如下:


 service rsyslog restart


在Fedora 或 CentOS/RHEL 7下的方式如下:


 systemctl restart rsyslog


 


4、通过过netstat命令来验证rsyslog后台进程是否运行。


 netstat -pantu | grep rsyslog


其输出应该像下面这种情况,rsyslog后台进程在UDP的端口上进行监听。


udp    0 0    0.0.0.0:514    0.0.0.0:*      551/rsyslogd 

udp6    0 0    :::514        :::*          551/rsyslogd


如果rsyslog后台进程设置于监听TCP的连接,则输出应该是像下面的情况。


tcp    0 0    0.0.0.0:514  0.0.0.0:*    LISTEN    1891/rsyslogd 

tcp6    0 0    :::514        :::*          LISTEN    1891/rsyslogd


5、建立所有的配置后,就可以开启服务和通过tail -f命令来观察在rsyslog日志服务器上的日志文件。


配置实验:

实验环境:

服务端:Rsyslog Server


客户端:Rsyslog Client


实验步骤:

实验准备:

重命名客户端主机名,以区分服务端与客户端区别






重启系统生效


分别设置iptables清空策略,设置selinux临时禁用






查看是否为同一网段,若不是则设置为同一网段






分别在服务端和客户端安装Rsyslog






针对UDP:

1、服务端设置:


在服务端取消对UDP的注释






开启传输端口监听






重启rsyslog服务,并查看udp端口




2、客户端设置


指定日志传输方式,并添加传输IP端口






重启rsyslog服务




针对TCP:

1、服务端:


对上述步骤中的UDP进行注释,重复上述步骤操作TCP




开启传输端口监听,重启rsyslog




查看TCP端口


                           


2、客户端:


重复UDP操作,并添加传输IP端口




注意:UDP为一个@,TCP为两个@


重启rsyslog服务




针对RELP:

1、服务端:


重复上述客户端操作,恢复对UDP,TCP的注释,在下面新增如下




编辑传输监听,重启rsyslog服务






查看relp端口




2、客户端:


重复上述客户端操作,并添加如下




重启rsyslog服务




结果验证:

1、UDP:

先在服务端输入tail -f /var/log/messages


在客户端输入logger -t kern -p err "…"


结果如下:




2、TCP:

       重复对UDP的验证操作


       


       


3、RELP:

                     重复上述验证操作


                     


                     

————————————————

版权声明:本文为CSDN博主「(ฅ'ω'ฅ)♪青柚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_41432553/article/details/93098599


打赏

本文链接:https://www.kinber.cn/post/1366.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客