rsync linux安装 linux安装rsyslog
rsyslog介绍
rsyslog是一个快速处理手机系统日志的程序,提供了高性能、安全功能和模块化设计。rsyslog是syslog的升级版,它将多种来源输入输出转换结果到目的地。
特性:
1、多线程
2、支持加密协议:ssl、tls、relp
3、支持MySQL、Oracle、PostgreSQL
等
部署
1、环境
2、rsyslog server部署
安装rsyslog 程序(rsyslog默认已经在各发行版安装,如果系统中没有的话,可以用yum 进行安装,如下:)
yum -y install rsyslog
编辑rsyslog配置文件,路径 /etc/rsyslog.conf,修改前最好先备份一份,修改后的文件内容如下
1 [root@test ~]#grep -v "^#" /etc/rsyslog.conf | grep -v "^$" 2 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) 3 $ModLoad imjournal # provides access to the systemd journal 4 $ModLoad immark # provides --MARK-- message capability 5 $ModLoad imudp 6 $UDPServerRun 514 7 $ModLoad imtcp 8 $InputTCPServerRun 514 9 $WorkDirectory /var/lib/rsyslog 10 $AllowedSender tcp, 192.168.30.0/24 11 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 12 $template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" 13 :fromhost-ip, !isequal, "127.0.0.1" ?Remote 14 $IncludeConfig /etc/rsyslog.d/*.conf 15 $OmitLocalLogging on 16 $IMJournalStateFile imjournal.state 17 *.info;mail.none;authpriv.none;cron.none /data/log/messages 18 authpriv.* /var/log/secure 19 mail.* -/var/log/maillog 20 cron.* /var/log/cron 21 *.emerg :omusrmsg:* 22 uucp,news.crit /var/log/spooler 23 local7.* /var/log/boot.logView Code
- $AllowedSender tcp, 192.168.30.0/24 允许30.0网段内的主机以tcp协议来传输
- $template Remote,"/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" 定义模板,接受日志文件路径,区分了不同主机的日志
- fromhost-ip, !isequal, "127.0.0.1" ?Remote 过滤server 本机的日志。
- $InputTCPServerRun 514 开启tcp,tcp和udp 可以共存的
创建日志目录,尽量选择大点的分区
mkdir -pv /data/log
修改完成无误后,重启rsyslog服务,并查看监听端口,514 是否是tcp协议
systemctl restart rsyslog
netstat -aulntp | grep rsyslog
3、客户端操作
node1 上进行配置
打开配置文件,老样子,先备份下在进行修改 /etc/rsyslog.conf,修改完记得要重启程序
1 [root@node1 ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#" 2 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) 3 $ModLoad imjournal # provides access to the systemd journal 4 $WorkDirectory /var/lib/rsyslog 5 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 6 $template myFormat,"%timestamp% %fromhost-ip% %msg%\n" 7 $ActionFileDefaultTemplate myFormat 8 $IncludeConfig /etc/rsyslog.d/*.conf 9 $OmitLocalLogging on 10 $IMJournalStateFile imjournal.state 11 *.info;mail.none;authpriv.none;cron.none @@192.168.30.55 12 authpriv.* /var/log/secure 13 mail.* -/var/log/maillog 14 cron.* /var/log/cron 15 *.emerg :omusrmsg:* 16 uucp,news.crit /var/log/spooler 17 local7.* /var/log/boot.logView Code
ceph1 上进行配置,重启rsyslog程序
打开配置文件/etc/rsyslog.conf
1 [root@ceph1 ~]# grep -v "^$" /etc/rsyslog.conf | grep -v "^#" 2 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) 3 $ModLoad imjournal # provides access to the systemd journal 4 $WorkDirectory /var/lib/rsyslog 5 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 6 $IncludeConfig /etc/rsyslog.d/*.conf 7 $OmitLocalLogging on 8 $IMJournalStateFile imjournal.state 9 *.info;mail.none;authpriv.none;cron.none @@192.168.30.55 10 authpriv.* /var/log/secure 11 mail.* -/var/log/maillog 12 cron.* /var/log/cron 13 *.emerg :omusrmsg:* 14 uucp,news.crit /var/log/spooler 15 local7.* /var/log/boot.log 16 $template myFormat,"%timestamp% %fromhost-ip%%msg%\n" 17 $ActionFileDefaultTemplate myFormatView Code
重启rsyslog
4、验证
在服务器上进到 /data/log 目录下,进行查看,会发现以下类似的文件结构
1 [root@test ~]# tree /data/log/ 2 /data/log/ 3 ├── 192.168.30.56 4 │ └── 192.168.30.56_2016-05-05.log 5 ├── 192.168.30.57 6 │ └── 192.168.30.57_2016-05-05.log 7 └── messages 8 9 2 directories, 3 filesView Code
messages:server 端的系统日志
文件夹192.168.30.56: node1 客户端的日志
文件夹192.168.30.57: ceph1 客户端的日志
我们这里只查看node1 的系统日志吧。server 上进行操作
1 [root@test ~]# tail -f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log 2 May 5 20:50:45 node1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="9296" x-info="http://www.rsyslog.com"] exiting on signal 15. 3 May 5 20:50:45 node1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.7" x-pid="9334" x-info="http://www.rsyslog.com"] start 4 May 5 20:50:45 node1 systemd: Stopping System Logging Service... 5 May 5 20:50:45 node1 systemd: Starting System Logging Service... 6 May 5 20:50:45 node1 systemd: Started System Logging Service.View Code
可以在node1上在命令行里输入 logger “this is test ” 发送消息,server上进行查看下
1 [root@test ~]# tail -1f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log 2 May 5 20:52:46 node1 root: this is testView Code
如果验证失败的话,先检查selinux 是否关闭。后将udp 514 端口和tcp 514端口允许30网段访问即可,或者关闭iptables 服务。另外说明centos7上 默认防火墙是firewalld。该操作在每台机器上进行。
收集系统其它服务日志,在客户端node1 上操作,示例以openstack-nova 服务的日志为例
先修改配置文件 /etc/rsyslog.conf,完整内容如下:
1 [root@node1 ~]# egrep -v '^#|^$' /etc/rsyslog.conf 2 $ModLoad imuxsock # provides support for local system logging (e.g. via logger command) 3 $ModLoad imjournal # provides access to the systemd journal 4 $ModLoad immark # provides --MARK-- message capability 5 $WorkDirectory /var/lib/rsyslog 6 $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 7 $IncludeConfig /etc/rsyslog.d/*.conf 8 $OmitLocalLogging on 9 $IMJournalStateFile imjournal.state 10 *.info;mail.none;authpriv.none;cron.none @@192.168.30.67 11 authpriv.* /var/log/secure 12 mail.* -/var/log/maillog 13 cron.* /var/log/cron 14 *.emerg :omusrmsg:* 15 uucp,news.crit /var/log/spooler 16 local7.* /var/log/boot.log 17 module(load="imfile" PollingInterval="5") 18 $InputFileName /var/log/nova/nova-compute.log 19 $InputFileTag nova-info: 20 $InputFileStateFile state-nova-info 21 $InputRunFileMonitorView Code
其实只添加了后5行的内容,对每项简单解释下
module(load="imfile" PollingInterval="5") 加载imfile 模块,并5秒刷新一次
$InputFileName /var/log/nova/nova-compute.log 要监控的日志文件路径
$InputFileTag nova-info: 定义文件标签 ,注意最后是冒号:
$InputFileStateFile state-nova-info 定义状态文件
$InputRunFileMonitor 激活读取,可以设置多组日志读取,每组结束时设置本参数
修改完成后,重启客户端的rsyslog服务
systemctl restart rsyslog
验证,在rsyslog服务器上查看日志,如下图
总结
此处仅用了rsyslog最简单的功能:系统日志的转发。思考:使用rsyslog如何记录转发其他服务的日志,如mysql、zabbix等等