代码之家  ›  专栏  ›  技术社区  ›  Chen A.

Icinga2 check\u by\u ssh plugin在不运行命令的情况下返回255

  •  1
  • Chen A.  · 技术社区  · 7 年前

    我正在配置 并希望它使用 通过ssh检查 插件,我遇到了一个奇怪的问题。我已经找了几个小时的答案,但运气不好。

    我的命令对象如下所示:

    object CheckCommand "check_procs" {
            import "by_ssh"
            vars.by_ssh_logname = "root"
            vars.by_ssh_port = "22"
            vars.by_ssh_command = "/tmp/test.sh"
            vars.by_ssh_identity = "/etc/icinga2/conf.d/services/id_rsa.pub"
            vars.by_ssh_ipv4 = "true"
            vars.by_ssh_quiet = "true"
    }
    

    test.sh 只是 exit 0 . 我在我的Icinga box和我运行命令的远程机器之间有信任。

    当我通过shell执行命令时,它可以工作

    [root@icinga ~]# ssh root@10.10.10.1 -C "/tmp/test.sh"
    [root@icinga ~]# echo $?
    0
    

    Icingaweb2

    touch success 测验上海 这意味着,当Icinga执行我的脚本时,它甚至在执行之前就失败了。

    check_by_ssh 使用Icinga2。

    Icinga使用根用户识别远程服务器。我知道这不是最佳实践,但这是开发环境。

    更新 :我想我已经发现了问题。问题是我试图使用root用户登录远程机器。即使使用公钥身份验证,也不支持此操作。脚本必须与用户一起执行 icinga

    vars.by_ssh_options = "StrictHostKeyChecking no"

    2 回复  |  直到 4 年前
        1
  •  1
  •   Manuel Schmitzberger    7 年前

    我的问题是,使用的rsa密钥文件不属于“nagios”用户:

    -rw------- 1 nagios nagios 3.2K Nov 30 14:43 id_rsa
    -rw-r--r-- 1 nagios nagios  766 Nov 30 14:42 id_rsa.pub
    
        2
  •  1
  •   Cœur Gustavo Armenta    6 年前

    1. 使用的Icinga icinga 用户通过SSH登录,即使我使用 -l root ssh-copy-id icinga@HOST 在下面 root
    2. 然后,我将私钥(同样是根用户的私钥)复制到icinga文件夹,以便应用程序可以访问它,并更改了文件的所有权
    3. 艾辛加 用户到远程计算机 sudo -u icinga ssh icinga@HOST -i id_rsa
    4. 如果第3步失败,您需要在继续之前解决它。我做的下一件事是添加 StrictHostKeyChecking no 至模块选项。