check_logfiles 插件的使用

check_logfiles
是检查nagios日志关键字的插件,其功能很强大。项目地址是https://labs.consol.de/nagios/check_logfiles/

一、安装
tar -zxvf check_logfiles-2.3.1.2.tar.gz
cd check_logfiles-2.3.1.2
./configure --with-nagios-user=nagios --with-nagios-group=nagios
--with-seekfiles-dir=/usr/local/nagios/var/tmp
--with-protocols-dir=/usr/local/nagios/var/tmp
--with-trusted-path=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/nagios/libexec
--with-perl=/usr/bin/perl --with-gzip=/bin/gzip
make
make install

二、配置

使用check_logfile
[[email protected] libexec]# ./check_logfiles --help
This Nagios Plugin comes with absolutely NO WARRANTY. You may
use
it on your own risk!
Copyright by ConSol Software GmbH, Gerhard Lausser.

This plugin looks for patterns in logfiles, even in those who were
rotated
since the last run of this plugin.

Usage: check_logfiles [-t timeout] -f

The configfile looks like this:

$seekfilesdir =
‘/opt/nagios/var/tmp‘;#写状态信息的目录,这里面记录已经检查过的日志内容,相当于历史记录
# where the state information will be saved.

$protocolsdir =
‘/opt/nagios/var/tmp‘;#写协议信息的目录,这里面记录日志检查的匹配信息
# where protocols with found patterns will be stored.

$scriptpath =
‘/opt/nagios/var/tmp‘;#可调用的脚本或程序
# where scripts will be searched for.

$MACROS = { CL_DISK01 => "/dev/dsk/c0d1", CL_DISK02 =>
"/dev/dsk/c0d2" };#定义宏

@searches =
(#此处为配置文件的内容,我们可以通过配置文件来执行程序,也可以通过在命令行中直接定义。通过配置文件更方便 
 {
   tag =>
‘temperature‘,#定义唯一的标识符,它将在生成状态信息或协议信息中作为名字中的一部分使用,并没有实际的意义
   logfile
=> ‘/var/adm/syslog/syslog.log‘,#日志文件位置
   rotation
=>
‘bmwhpux‘,#用来匹配归档的日志文件,rotation如果有截断日志的话用来定义如何匹配截断日志
   criticalpatterns => [‘OVERTEMP_EMERG‘, ‘Power supply
failed‘],#严重错误,可以匹配一个或多个正则表达式
   warningpatterns => [‘OVERTEMP_CRIT‘, ‘Corrected ECC
Error‘],#警告错误,可以匹配一个或多个正则表达式
   options
=>
‘script,protocol,nocount‘,#选项列表,我们可以选择启动脚本,写协议,不计数等操作
   script =>
‘sendnsca_cmd‘
 },#脚本的名字
 {
   tag =>
‘scsi‘,
   logfile
=> ‘/var/adm/messages‘,
   rotation
=> ‘solaris‘,
   criticalpatterns => ‘Sense Key: Not Ready‘,
   criticalexceptions => ‘Sense Key: Not Ready
/dev/testdisk‘,
   options
=> ‘noprotocol‘
 },
 {
   tag =>
‘logins‘,
   logfile
=> ‘/var/adm/messages‘,
   rotation
=> ‘solaris‘,
   criticalpatterns => [‘illegal key‘, ‘read
error.*$CL_DISK01$‘],
   criticalthreshold => 4
   warningpatterns => [‘read error.*$CL_DISK02$‘],
 }
);

以上将各个项目统一写到配置文件中,当然也可以将其放入命令行中调用,两种调用方式如下:

[[email protected] libexec]# ./check_logfiles
Usage: check_logfiles [-t timeout] -f
[--searches=tag1,tag2,...]
      check_logfiles [-t timeout] --logfile= --tag= --rotation=
                     --criticalpattern= --warningpattern=

三、现网实例
1、在被监控端编辑一个配置文件,如下
vim /usr/local/nagios/var/catalina.cfg

$seekfilesdir = "/usr/local/nagios/var/tmp";
$protocolsdir = "/usr/local/nagios/var/tmp";
@searches = (
 {
   tag =>
‘tomcat‘,
   logfile
=> ‘/opt/tomcat7/logs/catalina.out‘,
   rotation
=>
‘catalina.$CL_DATE_YYYY$-$CL_DATE_MM$-$CL_DATE_DD$.log‘,
   criticalpatterns => [
     ‘java.net.SocketTimeoutException‘,
     ‘Exception‘
   ],
   warningpatterns => [

],
   options
=>
‘nocase,encoding=UTF-8,criticalthreshold=1,warningthreshold=1‘
 },
);
我们定义了一个标志tomcat.catalina.out,检查的日志文件为/opt/tomcat7/logs/catalina.out,当日志信息中匹配
ciriticalpattern中的内容时会报严重错误,;状态信息和协议信息会写入到
/usr/local/nagios/var/tmp中,
$CL_DATE_YYYY$-$CL_DATE_MM$-$CL_DATE_DD$是定义的时间宏,上面是匹配当前日期的归档日志。options
=>
‘nocase‘,正则表达式不区分大小写,options=>‘criticalthreshold=1,warningthreshold=1‘,
这个数值设置了忽略匹配的次数。如设置成3,即忽略前2次匹配,第3次匹配才计数。这里是只忽略1次,第2次匹配就记数。

2、在/usr/local/nagios/libexec的目录下,检查下配置的文件,显示执行正常,日志无报错。
[[email protected] libexec]# ./check_logfiles --config
/usr/local/nagios/var/catalina.cfg
OK - no errors or warnings|tomcat.catalina.out_lines=192
tomcat.catalina.out_warnings=0 tomcat.catalina.out_criticals=0
tomcat.catalina.out_unknowns=0

3、查看/usr/local/nagios/var/tmp目录下生成的
 catalina._opt_tomcat7_logs_catalina.out.tomcat文件,其中tomcat是我们配置的tag,文件内容如下:
[[email protected] tmp]# cat
catalina._opt_tomcat7_logs_catalina.out.tomcat
$state = {
          ‘logoffset‘ => 166891197,
          ‘devino‘ => ‘2053:27754546‘,
          ‘servicestateid‘ => 0,
          ‘logtime‘ => 1470399570,
          ‘serviceoutput‘ => ‘‘
        };
1;

4、被监控端添加nrpe.cfg文件中添加监控命令
command[check_tomcat_logfiles]=/usr/local/nagios/libexec/check_logfiles
--config /usr/local/nagios/var/catalina.cfg

5、监控端定义的日志关键字监控服务配置
define service{
       use                            local-service,srv-pnp        ; Name of service template to use
       host_name                      WEBServer10414
       service_description            Tomcat Front End Log Keyword Monitoring
       check_command                  check_nrpe_arg!check_tomcat_logfiles!60!/usr/local/nagios/var/catalina.cfg
       notifications_enabled          1
       }

6、check_nrpe_arg命令的定义
# ‘check_nrpe_arg‘ command definition
define command {
 command_name        check_nrpe_arg
 command_line        $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t $ARG2$ -a
$ARG3$
}

7、查看nagios展示的服务的信息

注意:/usr/local/nagios/var/catalina.cfg文件和/usr/local/nagios/var/tmp目录和下面生成的状态文件的权限要设为nagios,否则会报无权限写入错误。

时间: 2024-10-12 20:13:47

check_logfiles 插件的使用的相关文章

nagios+check_logifile实现日志监控

日志检查时我们平时用的非常多的一种监控方式,检查日志我们需要使用nagios插件,比如nagios自带的check_logfile,功能比较有限:我们使用ConSol Labs出品的check_logfiles,它能够处理截断日志,支持宏定义,支持正则等功能,使我们的监控更加灵活. 一.安装 1.安装check_logfiles tar -zxvf check_logfiles-3.6.3.tar.gz cd /usr/local/src/ check_logfiles-3.6.3 ./conf

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

eclipse插件之Findbugs、Checkstyle、PMD安装及使用

一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入eclipse,当然也有单独的工具可以实现他们的功能,比如Findbugs Tool就可以不必插入eclipse就可以使用. 三者的功能如下表: 工具 目的 检查项 FindBugs 检查.class 基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug 主要检查bytecode中的bug patterns,如NullPoint空指

eclipse安装java ee插件方法步骤

1.本人以前使用的MyEclipse进行Javaweb开发,但是后来由于myeclipse实在太臃肿,经常在运行的过程中不流畅 (可能电脑内存也不是太高吧)   !所以坚决换用eclipse,但是问题来了,下载的eclipse因为是标准版所以也不支持Javaweb开发,所以要来配置一下开发环境,安装Javaee开发插件   ,以下为安装步骤 1.1 在Eclipse中菜单help选项中选择install new software选项 1.2 在work with 栏中输入 http://down

Myeclipse10 安装Aptana插件

安装步骤: 1.下载aptana3.2 Eclipse Plugin插件. 下载地址:http://update1.aptana.org/studio/3.2/024747/index.html 2.在java文件夹下新建文件夹pluginsNew,在里面新建aptana_update_024747文件夹(这个文件夹名根据自己下载的版本自己写),再在里面新建eclipse文件夹,解压出features与plugins文件夹,COPY到 D:\java\pluginsNew\aptana_upda

这是一款借助chrome 插件的微信机器人

1.chrome kit微信机器人简介(github:https://github.com/LinuxForYQH/chrome_kit) 借助chrome 插件 js注入来实现消息的发送 chrome devtool api的调用来监听https请求 打开微信登录界面,在扫码登录前必须先打开toolbar(F12 或者 鼠标右键检查),如上所说因为借助了chrome devtool api所以需要打开toolbar才能执行相关dev域的js. 2.相关开发原理介绍 https://develo

使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,在很多项目中广泛的应用.Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询.分页.排序.复选框.设置显示列.Card view视图.主从表显示.合并列.国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行.移动列位置等一些特殊的功能,插件可

页面滚动图片等元素动态加载插件jquery.scrollLoading.js

如果一个网页很长,那么该页面的加载时间也会相应的较长.而这里给大家介绍的这个jQuery插件scrollLoading的作用则是,对页面元素进行动态加载,通俗的说就是滚到哪就加载到哪,屏幕以下看不见的就不用加载了.这样还可以在一定程度上节省服务器资源.该插件作者的网页将该插件的功能和使用方法描述的非常详细,这里把最一般最普遍的使用情况给大家展现一下. 插件作者:http://www.zhangxinxu.com/ 首先我们需要加载jQuery库和本插件js文件. (jquery.scrollLo

怎样将「插件化」接入到项目之中?

本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态载入框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余添加.项目新功能的加入,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,仅仅能紧急公布补丁版本号,强制用户进行更新.结果频繁的更新.反而easy减少用户使用黏性,或者是公司业务的不断发展,同系的应用越来越多,传统方式须要通过用户量最大的主项目进行引导下载并安装.