` rsyslog日志系统 | 听云轩

rsyslog日志系统

rsyslog采用模块化的设计,是syslog的替代品

特点

  • 实现了基本的syslog协议
  • 直接兼容syslogd的syslog.conf
  • 在同一台机器上支持多个rsyslogd进程
  • 丰富的过滤功能,可将消息过滤后再进行转发
  • 灵活的配置选项,配置文件中可写简单的逻辑判断
  • 有现成的前端web展示

主配置文件(/etc/rsyslog.conf)

结构:

  • 全局指令:设置全局参数,如主消息队列尺寸的设置,加载扩展模块的那个配置。
  • 模块:指定记录的消息格式,也用于动态文件名称的生成。
  • 输出通道:对用户最期望的消息进行预定义。
  • 规则:指定消息的规则。在规则中可以引用之前定义的模板和输出通道。
    如图:
    AmaUmt.png

规则配置语法

facility.priority action(设备.级别 动作)

其中,

  • 设备级别有:

    • authpriv:与安全、认证相关的信息
    • cron:与cron和at有关的信息
    • daemon:没有明确设备定 义的守护进程的信息
    • ftp:报告ftp守护进程的信息
    • kern:报告与内核有关的信息
    • lpr:报告与打印服务有关的信息
    • mail:报告与邮件服务有关的信息
    • news:报告与网络新闻服务有关的信息
    • syslog:报告由syslog生成的信息
    • user:报告一般的用户级别信息
    • uucp:由UUCP子系统生成的信息
    • local0-local7:保留给本地其他应用程序使用
  • 日志级别:

    • 0EMERG(紧急):会导致主机系统不可用的情况
    • 1ALERT(警告):必须马上采取措施解决的问题
    • 2CRIT(严重):比较严重的情况
    • 3ERR(错误):运行出现错误
    • 4WARNING (提醒):可能会影响系统功能的事件
    • 5NOTICE(注意):不会影响系统但值得注意
    • 6INFO(信息):一般信息
    • 7DEBUG(调试):程序或系统调试信息等
    • none:用于禁止任何日志消息
  • facility.priority语法

    • 可以在同一行中设置多个“设备.级别”组合,每组之间用分号隔开
    • 可以同时指定多个设备或级别,用逗号隔开
    • 可以使用通配符*标识所有的设备或级别
    • 级别的指定
      • 直接指定:记录比指定级别高的所有级别的消息
      • 使用=前缀:只记录指定级别的日志消息
      • 使用!前缀:不记录比指定级别高的所有级别的消息
      • 使用!=前缀:不记录指定级别的日志消息
      • none:用于禁止任何日志消息
  • 目标动作(也就是发送消息给谁)

    • 常规文件
      • 将日志记录于文件:以“/”开始的全路径文件名
      • [-]/path/filename
      • 文件名之前的减号(-)表示对文件的写入同时不立即同步到磁盘,这样可以加快日志写入速度
    • 终端设备
      • 将日志发送到终端:/dev/console,/dev/ttyX
    • 命名管道
      • 将日志记录到命令管道,用于日志调试非常方便
      • | named_pipe
    • @host
      • 远程的日志服务器
    • username
      • 发送信息到本机的指定用户终端中,前提是该用户必须已经登录到系统中

举例

  • 把邮件除info级别外都写入到mail文件中
1
mail.*;mail.!=info         /var/adm/mail
  • 仅把邮件的通知性消息发送到tty12终端设备
1
mail.=info          /dev/tty12
  • n如果root和Joey用户已经登录到系统,则把所有紧急信息通知给他们
1
*.alert         root,joey
  • 把所有信息都发送到192.168.3.100主机
1
*.*     @192.168.3.100
------ 本文结束 ------
您的支持将鼓励我继续创作