Linux系统之rsyslog配置

目录

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,UbuntuCentOS/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:

                     重复上述验证操作

                     

                     

 

 

  • 4
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值