zoukankan      html  css  js  c++  java
  • 0x03 Nagios Plugins介绍

    Nagios Plugins介绍

    nagios core是没有内置任何检查机制进行主机服务或者网络的监控。对于这些工作,都是交给额外的程序,就是nagios plugins程序来完成。
    注意在nagios有Addons与Plugins的区分。这个后面会说到。

    什么是nagios plugins

    Plugins是可执行程序或者脚本,可以在命令行执行,用于获取主机或者服务的状态。Nagios core调用执行plugins然后plugins将执行的results返回给Nagios core。然后nagios 处理这些结果,然后做出必要的actions,如运行event handlers,sending out notifications。。。

    Plugins作为一个抽象层,位于Nagios core与 具体监控对象。

    Plugins规范

    1. Exit with one of serveral possible return values # 要有返回值
    2. Return at leaset one lien of text output to STDOUT # 要有一行标准输出
    3. 当然,plugins必须是可执行程序(有一丢丢像cgi规范)。

    返回code代表的意思

    plugin return code Services State Host State
    0 OK UP
    1 WARNING UP orr DOWN/UNREACHABLE*
    2 CRITICAL DOWN/UNREACHABLE
    3 UNKNOWN DOWN/UNREACHABLE

    Note: 如果将use_aggressive_host_checking 设置了enabled。那么返回码1对于host就是down.如果没设置,那么1对于host是UP.讨论情况点击

    标准输出行

    插件至少应返回至少一行文本输出。 从Nagios Core 3开始,插件可以选择返回多行输出。 插件还可能返回可由外部应用程序处理的可选性能数据。 插件输出的基本格式如下所示参考

    TEXT OUTPUT | OPTIONAL PERFDATA
    LONG TEXT LINE 1
    LONG TEXT LINE 2
    ...
    LONG TEXT LINE N | PERFDATA LINE 2
    PERFDATA LINE 3
    ...
    PERFDATA LINE N

    通过管道符号来分割出可选的性能数据。后面的LONG TEST LINE * 也是可选的数据。

    plugin返回的数据都会对应该监控会话或者监控项范畴中的一个宏变量:

    1. TEXT OUTPUT ===> $SERVICEOUTPUT$
    2. OPTIONAL PERFDATA ===> $SERVICEPERFDATA$ # 可选性能数据
    3. LONG TEXT LINE * ===> $LONGSERVICEOUTPUT$

    plugin output实例

    1. 一行输出
      DISK OK - free space: / 3326 MB (56%); # $SERVICEOUTPUT$
    2. 一行输出包括性能数据
      DISK OK - free space: / 3326 MB (56%); | /=2643MB;5948;5958;0;5968
    3. 多行输出
      DISK OK - free space: / 3326 MB (56%); | /=2643MB;5948;5958;0;5968 / 15272 MB (77%); /boot 68 MB (69%); /home 69357 MB (27%); /var/log 819 MB (84%); | /boot=68MB;88;93;0;98 /home=69357MB;253404;253409;0;253414 /var/log=818MB;970;975;0;980

    output限制

    Nagios Core 只会读取第一个4KB数据。当然可以通过MAX_PLUGIN_OUTPUT_LENGTH在include/nagios.h.in 文件。

    查看plugins用法或帮助

    1. exec_plugin --usage # 命令用法
    2. exec_plugin --help # manpage

    Nagios Plugins怎么配置到监控项中

    Plugin命令要通过nagios的command进行一层封装。command定义新的名字,并定义对应plugin的具体执行命令,包括参数,其中在command的定义的参数中,可以包含macro,这些macro可以来自command对象被用在的地方。想用在service,最多的可能还是主机和参数,如果ARG1,ARG2...
    Commnad定义后,其新名字就可以被用于其它定义中,且通过command名字来传递参数是这种形式one_command!arg1!arg2 参数通过!来分割,然后参数就会出入ARG1 ARG2宏中,从而通过宏传递给使用宏的地方,像command定义中plugin中参数使用。

  • 相关阅读:
    Bugku-CTF之各种绕过
    算法竞赛入门经典 第四章 学习笔记 2
    时钟周期,CPU周期,指令周期,CPU时间片
    big-endian和little-endian
    android px,dp,sp大小转换工具
    SharedPreferences漏洞, 无法避免,所以不要在里面存储敏感信息
    java正则表达式入门
    adb命令
    android largeheap 的设定
    关于java中接口定义常量和类定义常量的区别
  • 原文地址:https://www.cnblogs.com/ZJiQi/p/13713173.html
Copyright © 2011-2022 走看看