rsyslog+logrotate

简介

  • rsyslog是syslog的多线程增强版

  • rsyslog负责写入日志,logrotate负责管理日志,对日志进行备份,删除,更新


  • 我们先看一下它的进程:

[root@centos ~]# ps -ef | grep rsyslogd | grep -v grep
root 1343 1 0 12:09 ? 00:00:00 /sbin/rsyslogd -c 5
从上面命令的输出结果看到rsyslog执行时使用的参数是-c 5.

它的意思是指定rsyslog运行(兼容)的版本号, 这个参数必须是第一个参数, 当然也可以省略, 默认为-c0, (命令行兼容sysklogd)

这个参数是在文件/etc/sysconfig/rsyslog中指定

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 5"

action

日志设备(类型).(连接符号)日志级别 日志处理方式(action)
日志设备(可以理解为日志类型):
———————————————————————-
auth –pam产生的日志
authpriv –ssh,ftp等登录信息的验证信息
cron –时间任务相关
kern –内核
lpr –打印
mail –邮件
mark(syslog)–rsyslog服务内部的信息,时间标识
news –新闻组
user –用户程序产生的相关信息
uucp –unix to unix copy, unix主机之间相关的通讯
local 1~7 –自定义的日志设备
日志级别:
———————————————————————-
debug –有调式信息的,日志信息最多
info –一般信息的日志,最常用
notice –最具有重要性的普通条件的信息
warning –警告级别
err –错误级别,阻止某个功能或者模块不能正常工作的信息
crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息
alert –需要立刻修改的信息
emerg –内核崩溃等严重信息
none –什么都不记录
从上到下,级别从低到高,记录的信息越来越少
详细的可以查看手册: man 3 syslog

连接符号
———————————————————————-
.xxx: 表示大于等于xxx级别的信息
.=xxx: 表示等于xxx级别的信息
.!xxx : 表示在xxx之外的等级的信息
xx.xx ~ : 表示丢弃xx.xx消息
& ~ : 表示忽略所有消息
———————————————————————-

  • 记录到普通文件或者设备文件
*.*     /var/log/tmp   # 绝对路径
*.*     /dev/pts/0      #设备文件
  • 转发到远程
*.* @192.168.0.1    # 使用UDP协议转发到192.168.0.1的514(默认)端口
*.* @@192.168.0.1:10514 # 使用TCP协议转发到192.168.0.1的10514端口
  • 发送给用户
*.*   root
*.*   root,kadefor,up01     # 使用,号分隔多个用户
*.*   *     # *号表示所有在线用户
  • 丢弃
local3.*   ~    # 忽略所有local3类型的所有级别的日志
& ~                #表示丢弃所有日志
  • 执行脚本
local3.*    ^/tmp/a.sh      # ^号后跟可执行脚本或程序的绝对路径
                            # 日志内容可以作为脚本的第一个参数.
                            # 可用来触发报警

你可能感兴趣的:(linux,rsyslog)