C/S架构:客户端将其日志上传到服务器端,通过对服务器端日志的查询,来实现对其他客户端的日志进行集中管理;下面实现就是通过两套机器来实现,(server:198.168.220.134)——(client:198.168.220.137),将client上的日志传输到server上。
配置前提:所有Linux均默认安装rsyslog服务。
克隆一台虚拟机
一台当作rsyslog服务器,一台当作rsyslog客户端。本次实验中,我的rsyslog服务器名称是(CentOS7 64位),rsyslog客户端名称是(CentOS7 2)。
查看服务器端和客户端ip地址,确保在同一个网段。
本次实验中,服务器端ip地址:192.168.220.134
客户端ip地址为:192.168.220.137
ifconfig
将rsyslog服务器端和客户端清除防火墙规则和临时禁用selinux
iptables -F
setenforce 0
服务器端:
客户端:
测试rsyslog服务器端和客户端是否能够ping通
查看rsyslog服务状态
service rsyslog status
(1) UDP 传输协议
基于传统UDP协议进行远程日志传输,也是传统syslog使用的传输协议;
可靠性比较低,但性能损耗最少, 在网络情况比较差,或者接收服务器压力比较高情况下,可能存在丢日志情况。在对日志完整性要求不是很高,在可靠的局域网环境下可以使用。
(2)TCP 传输协议
基于传统TCP协议明文传输,需要回传进行确认,可靠性比较高;
但在接收服务器宕机或者两者之间网络出问题的情况下,会出现丢日志情况。
这种协议相比于UDP在可靠性方面已经好很多,并且rsyslog原生支持,配置简单,同时针对可能丢日志情况,可以进行额外配置提高可靠性,因此使用比较广。
(3)RELP 传输协议
RELP(Reliable Event Logging Protocol)是基于TCP封装的可靠日志消息传输协议;是为了解决TCP 与 UDP 协议的缺点而在应用层实现的传输协议,也是三者之中最可靠的。需要多安装一个包rsyslog-relp以支持该协议。
配置rsyslog服务器端
编辑配置文件
vim /etc/rsyslog.conf
开启传输端口监听
vim /etc/sysconfig/rsyslog
systemctl restart rsyslog
查看服务器运行的端口
netstat -anpu | grep 514
指定日志传输方式
vim /etc/rsyslog.conf
如果是udp,则添加
*.* @192.168.220.134:514
systemctl restart rsyslog
服务器端实时查看日志记录
tail -f /var/log/messages
客户端进行测试
logger -t kern -p err "hello world"
配置rsyslog服务器端
编辑配置文件
vim /etc/rsyslog.conf
vim /etc/sysconfig/rsyslog
systemctl restart rsyslog
查看服务器运行的端口
netstat -anpt | grep 514
配置rsyslog客户端
指定日志传输方式
vim /etc/rsyslog.conf
如果是tcp,则将udp的注释掉并添加
*.* @@192.168.220.134:514
systemctl restart rsyslog
服务器端实时查看日志记录
tail -f /var/log/messages
客户端进行测试
logger -t kern -p err "hello hello"
配置rsyslog服务器端
安装relp服务
yum install rsyslog-relp
vim /etc/rsyslog.conf
恢复对udp,tcp的注释,添加以下两行:
$ModLoad imrelp
$InputRELPServerRun 2514
vim /etc/sysconfig/rsyslog
systemctl restart rsyslog
查看服务器运行的端口
netstat -anpt | grep ":2514"
在客户端安装relp服务
yum install rsyslog-relp
vim /etc/rsyslog.conf
如果是relp,则将udp,tcp的注释掉并添加
$ModLoad omrelp
*.* :omrelp:192.168.220.134:2514
systemctl restart rsyslog
服务器端实时查看日志记录
tail -f /var/log/messages
客户端进行测试
logger -t kern -p err "hello kitty"