syslog与rsyslog

rsyslog常用配置

近期在思考一种简单的系统日志统一分析监控方案。在开始后面的内容之间先说下rsyslog,rsyslog目前是redhat、Ubuntu等常见linux发行版上自带的日志管理软件,其配置也比较简单。其主配置文件是/etc/rsyslog.conf 。

一、日志类型和级别

1、日志设备(可以理解为日志类型)

  1. auth –pam产生的日志
  2. authpriv –ssh,ftp等登录信息的验证信息
  3. cron –时间任务相关
  4. kern –内核
  5. lpr –打印
  6. mail –邮件
  7. mark(syslog)–rsyslog服务内部的信息,时间标识
  8. news –新闻组
  9. user –用户程序产生的相关信息
  10. uucp –unix to unix copy, unix主机之间相关的通讯
  11. local 1~7 –自定义的日志设备

2、日志级别

  1. debug –有调式信息的,日志信息最多
  2. info –一般信息的日志,最常用
  3. notice –最具有重要性的普通条件的信息
  4. warning –警告级别
  5. err –错误级别,阻止某个功能或者模块不能正常工作的信息
  6. crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息
  7. alert –需要立刻修改的信息
  8. emerg –内核崩溃等严重信息
  9. none –什么都不记录
  10. 从上到下,级别从低到高,记录的信息越来越少

3、日志连接

日志设备(类型).(连接符号)日志级别,构成日志处理方式(action)。

  1. .xxx: 表示大于等于xxx级别的信息
  2. .=xxx:表示等于xxx级别的信息
  3. .!xxx:表示在xxx之外的等级的信息

二、日志存储和发送

1、本地保存

  1. kern.*;*.warn /var/log/kern.log
  2. *.info;mail.none;authpriv.none;cron.none /var/log/messages
  3. authpriv.* /var/log/secure
  4. mail.* /var/log/maillog
  5. cron.* /var/log/cron

2、远程转发

  1. *.* @192.168.0.1 # 使用UDP协议转发到192.168.0.1的514(默认)端口
  2. *.* @@192.168.0.1:10514 # 使用TCP协议转发到192.168.0.1的10514(默认)端口

3、发送本地用户

  1. *.* root
  2. *.* root,kiosk,zabbix # 使用,号分隔多个用户
  3. *.* * # *号表示所有在线用户

三、高级用法

1、忽略、丢弃

  1. local3.* ~ # 忽略所有local3类型的所有级别的日志
  2. local3.* ^/tmp/a.sh # ^号后跟可执行脚本或程序的绝对路径

2、过滤日志

过滤特定的日志到文件, 忽略(丢弃)包含某个字符串的日志:

  1. # 过滤日志, 由:号开头
  2. :msg, contains, “error” /var/log/error.log
  3. :msg, contains, “error” ~ # 忽略包含error的日志
  4. :msg, contains, “user nagios” ~
  5. local3.* ~

四、远程传输

1、配置服务端(接收)

  1. vi /etc/rsyslog.conf #在文件开始加上,同时确保514端口能够被客户端用tcp访问
  2. $ModLoad imtcp.so # needs to be done just once #使用tcp方式
  3. $InputTCPMaxSessions 500 # tcp接收连接数为500个
  4. $InputTCPServerRun 514 # tcp接收信息的端口
  5. $template logformat,”%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg%\n” # 定义一个名为logformat模板, 为信息加上日志时间
  6. $template DynFile,”/var/log/tlog%$year%%$month%%$day%.log” # 定义日志文件的名称,按照年月日
  7. :rawmsg, contains, “sdns_log” ?DynFile;logformat # 把rawmsg(也可以使用msg)日志中包含sdns_log标志的信息写到DynFile定义的日志文件里
  8. :rawmsg, contains, “sdns_log” ~ # 这个表示丢弃包含sdns_log标志的信息, 一般都加上它, 以免多个日志文件记录重复的日志

如果要把不同服务器发送过来的日志保存到不同的文件, 可以这样操作:

  1. :fromhost-ip, isequal, “192.168.0.160″ /var/log/host160.log
  2. :FROMHOST-IP, isequal, “192.168.0.161″ /var/log/host161.log
  3. :FROMHOST-IP, startswith, “192.168.1.” /var/log/network1.log
  4. :FROMHOST-IP, startswith, “192.168.2.” /var/log/network2.log

2、配置客户端(发送)

  1. vi /etc/rsyslog.conf #在文件开始加上
  2. #把包含sdns_log的信息通过tcp发到192.168.1.2 @@表示tcp @表示udp
  3. :rawmsg, contains, “sdns_log” @@192.168.1.2 # 默认514端口
  4. #这个表示丢弃包含sdns_log标志的信息,防止这个信息写到本机的/var/log/message
  5. :rawmsg, contains, “sdns_log” ~

可以使用如下方法进行测试:

  1. 在客户端上执行
  2. logger -p user.info “sdns_log 34334″
  3. 在服务端的/var/log/目录里是否有tlog*日志产生

需要日志轮转的,可以使用logrotate进行配置。

syslog

https://www.cnblogs.com/skyofbitbit/p/3674664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值