Centos7使用rsyslog收集日志

虚机ip:10.0.2.15(server01)、10.0.2.16(server02)

使用server01做日志收集服务器,server02做客户端

确保两台服务器rsyslog开启并运行

默认安装,如未安装

yum install rsyslog -y

systemctl enable rsyslog

systemctl restart rsyslog

systemctl status rsyslog

服务端(server01)

vim /etc/rsyslog.conf

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

将以上4行的注释取消,并添加行:

$template RemoteLogs,"/var/log/devicelog/%$YEAR%-%$MONTH%/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log"

*.* ?RemoteLogs

& ~

& ~ 表示的是重定向规则,丢弃,告知rsyslog进程无需后续处理日志消息,无需写入本地日志文件

 

保存退出

mkdir -p /var/log/devicelog

systemctl restart rsyslog

客户端(server02)

vim /etc/rsyslog.conf

 

$ModLoad imudp

$UDPServerRun 514

$ModLoad imtcp

$InputTCPServerRun 514

将以上4行的注释取消,并添加行:

$template myFormat,"%timestamp% %fromhost-ip% %msg%\n"

*.* @10.0.2.15:514

 

使用@代表走UDP协议,使用@@代表走TCP协议

保存退出,重启rsyslog

 

将客户端执行的所有命令写入系统日志/var/log/messages中

vim /etc/bashrc

最后一行添加如下行:

export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg"; }'

source /etc/bashrc

在server01上查看/var/log/devicelog下是否有文件

查看日志文件已存在,配置成功!!!

 

在server01上查看server02上输入的命令是否有记录:

server02输入:

hello world

server01查看:

有日志输出

成功!!!

亲测无坑,如果此篇文章对您有所帮助,还请您给点个赞关注一下!谢谢各位小伙伴了

 

 

你可能感兴趣的:(Centos7使用rsyslog收集日志)