Nagios:使用相同的commands.cfg文件为不同的主机配置不同的用户

Nagios:使用相同的commands.cfg文件为不同的主机配置不同的用户

我在 unix 环境中使用 check_by_ssh 来执行 Nagios 插件。一些主机有不同的 unix 帐户,Nagios 需要通过 ssh 连接到该帐户才能运行插件。我使用 -l 传递帐户名,如下所示:

command_line    $USER1$/check_by_ssh -p 22 \
   -H $HOSTADDRESS$ -l <user> -i /home/nagios/.ssh/$HOSTNAME$ -C '<plug-in path>'

对于具有不同 unix 帐户的机器,有没有办法不必将所有命令定义加倍,例如用 -l user1 替换 -l nagios?

我希望有一种方法可以在主机定义中传递用户名,以表明这组主机应该使用用户 1 登录,而另一组主机应该使用用户 2 登录。

任何帮助都将受到赞赏。

谢谢

答案1

注意:我还没有测试过该代码。

也就是说,我可能会在commands.cfg中定义一个备用检查,内容如下:

# Check by SSH for hosts with different account

command_line    $USER1$/check_by_ssh_alt -p 22 \
   -H $HOSTADDRESS$ -l $ARG1$ -i /home/nagios/.ssh/$HOSTNAME$ -C '<plug-in path>'

然后使用类似下面的命令来调用它:

define service{
        use                     generic-service
        hostgroup_name          hostgroup_1
        service_description     Some Check by SSH
        contacts                hostgroup_1_admins
        notification_options    w,c,r
        notification_period     24x7
        notification_interval   0
        check_command           check_ssh_alt!user1
        }

祝你好运!

相关内容