1

我尝试在 ubuntu 中安装插件以监控 tomcat 我从下载插件文件

http://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/Apache-Tomcat

但是如何在 nagios-server 中配置这个插件,以便我可以使用 web-console 监控 tomcat

4

2 回答 2

3
  1. 下载插件后,将此插件移动到插件文件夹,默认为 /usr/local/nagios/libexec/。

  2. 将插件的权限改为nagios

    chown nagios:nagios /usr/local/nagios/libexec/check_tomcat.pl
    
  3. 在 command.cfg file.Location(/usr/local/nagios/etc/objects/commands.cfg) 中添加此插件的命令定义

    define command{
    command_name check_tomcat
    command_line /usr/local/nagios/libexec/check_tomcat.pl
    }
    

    提及插件所需的参数

  4. 在您的服务文件中添加命令可能是 localhost.cfg 或单独的文件。

    define service{
    use                             generic-service         ; Name of service template to use
    hostgroup_name                  Host1
    service_description             Tomcat
    check_command                   check_tomcat
    contacts                        contact1
    notifications_enabled           1
    }
    
  5. 重新启动 nagios 和 xinetd(如果您使用)

现在您可以在 Web 控制台中查看服务监控 tomcat。

于 2012-07-25T09:39:46.760 回答
3

我想充实 Priya 的答案,并从我自己的磨难中添加一些见解,以使该插件正常工作。

我遇到的主要问题与 ePN(嵌入式 Perl Nagios)有关:显然该插件不符合 ePN 的标准,并且在从命令行成功运行脚本后,我一直收到此错误:

**ePN /usr/lib64/nagios/plugins/check_tomcat: "Subroutine LWP::UserAgent::get_basic_credentials redefined at (eval 1) line 222,".

我搜索了全局禁用 ePN,但发现这个Nagios 文档页面有这个有用的建议:

要告诉 Nagios 不要对特定脚本使用嵌入式 Perl 解释器,请将此行添加到 Perl 脚本:

# nagios: -epn

任何一行都必须位于脚本的前 10 行中,以便 Nagios 检测到它。

添加该评论清除了“未知”错误,插件开始工作。

安装

我通过 EPEL 存储库安装了 Nagios。我保留了与安装时相同的大多数权限,包括安装为root:root. 我所做的一项更改是将所有CFG文件更改/etc/nagios/objectsroot:nagios:我将自己添加到nagios组中,因此编辑更容易。对于我的 CentOS 安装,插件安装到/usr/lib64/nagios/plugins. 我下载check_tomcat.pl到该目录,将其重命名为 just check_tomcat(没有真正好的理由),chmod 755对其进行了操作,然后添加# nagios: -epn到其中。

CFG以下是我的文件的摘录:

命令.cfg:

# 'check_tomcat' command definition
define command{
       command_name check_tomcat
       command_line $USER1$/check_tomcat -H $HOSTADDRESS$ -p $ARG1$ -l $ARG2$ -a $ARG3$ -w $ARG4$ -c $ARG5$
       }

本地主机.cfg:

# Define a service to check the state of a Tomcat service
define service{
       use                  local-service
       host_name            localhost
       service_description  Tomcat
       check_command        check_tomcat!8080!tomcat!tomcat!25%,25%!10%,10%
       }

$HOSTADDRESS$作为host_name别名从服务传递到命令。

谢谢,

于 2012-12-24T00:55:49.710 回答