Chinaunix首页 | 论坛 | 博客
  • 博客访问: 145611
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

2015年(68)

我的朋友

分类: 系统运维

2015-08-31 19:20:46

默认情况下,nagios的日志位于安装目录的var下(如我的是/usr/local/nagios/var/nagios.log),日志按天归档到安装目录的var/archives下,这些在nagios的配置文件nagios.cfg里可以更改。需要注意的是日志nagios.log里面的时间的格式计算方法是 从1970.1.1到当前时间的间隔,单位是秒,可以看看日志条目,加粗的为时间:

[1342627200] CURRENT SERVICE STATE: app-mus01-2.14;S_Apache;OK;HARD;1;Apache2.2: Started

这样的时间格式如果用nagios的web界面来看是没什么问题的,cgi会把它转换成我们常用的时间格式,但如果我们在终端下面来看这些日志,那就有点困难了。还好,nagios可能也考虑到了这点,通过配置use_syslog=1,我们可以把nagios的日志记录到系统日志上(默认为messages),时间的格式也是我们常用的格式:

Jul 19 10:07:55imusic-mon nagios: SERVICE ALERT: ftp-mus01-2.3;S_Apache[9000];OK;SOFT;3;TCP OK - 0.001 second response time on port 9000

但是这样有一问题也随之而来的,那就是messages文件里面的日志太多了,每次查日志都要把nagios的日志过滤出来也不是一件好玩的事。所以决定用syslog-ng的过滤功能把nagios的日志单独记录到一个文件,过程如下:

1、配置nagios.cfg,设置use_syslog=1把日志记录到系统日志

2、配置syslog-ng.conf将nagios的日志单独记录到一个文件

      关于syslog-ng,这个建议大家有时间还是把系统自带的syslog换成syslog-ng吧,好处不是一点点,更改也很简单:

  • yum install syslog-ng //安装

  • service syslog stop && service syslog-ng start  //停用syslog、启用syslog-ng

  • chkconfig --level 2345 syslog off

  • chkconfig --level 2345 syslog-ng on


     2.1 syslog-ng的配置

     [root@localhost ~]#vi /etc/syslog-ng/syslog-ng.conf  //添加、更改如下条目

----------------------------------------

     destination d_nagios { file("/var/log/nagios/nagios.log"); };  //记录到哪个文件

     filter f_default    { level(info..emerg) and                                   //从messages文件过滤掉nagios的日志

                        not (facility(mail)

                        or facility(authpriv)

                        or facility(cron)

                        or match("nagios:")); }

     filter f_nagios   { match("nagios:"); };

     log { source(s_sys); filter(f_nagios); destination(d_nagios); };

---------------------------------------- 

    改完成重启syslog-ng


3、配置logrotate把日志按天归档

[root@localhost ~]# vi /etc/logrotate.d/nagios 

/var/log/nagios/nagios.log {

    daily                //按天

    dateext          //加上日期后缀

    missingok

    copytruncate //归档后清空原有文件

    rotate 365     //保留一年的归档

}


改完后可以用

 logrotate   -fv  /etc/logrotate.d/nagios     强制执行logrotate来测一下有没有正确归档

阅读(820) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~