Nagios

將參數傳遞給 nagios 外掛

  • April 16, 2021

我在 Nagios 伺服器上安裝了我的第一個外掛,但無法正確設置參數。我試過一些東西 $ ARG1 $ 但我基本上只是四處遊蕩。

一個複雜的問題,也許是:這個外掛應該在 nagios 伺服器本身上執行;沒有對遠端盒子的 npre 呼叫。

該外掛是一個 shell 腳本,它對引擎蓋下的遠端框進行 curl 呼叫。帶有標誌的典型命令行使用如下:

my_shell_script.sh -H my.server.of.interest -P 9000 -I ./tmp/settings_file -timeout 80

(是的,它有自己的“-H”標誌,與 nagios 的主機名標誌無關。)

這是我現在的骨架。Nagios 似乎認為我所有的旗幟都是一個巨大的。

define command {
  command_name    my_command
  command_line    $USER1$/my_shell_script.sh $ARG1$
}

define service {
  use                  generic-service;
  host_name            {{what do I put here?  This is supposed to run on the nagios box itself. My shell script is installed on it.}};
  service_description      some description
  check_command         my_command!{{what goes here?}}
}

為了便於閱讀,上面的內容有些精簡,但這就是它的要點。給我帶來麻煩的是“我在這裡放什麼”中的主機名、參數和位。我可以輕推一下,感謝您的建議。

$$ Edit $$我的文章的意圖似乎被我自己的語言誤解了。 當我說我“基本上四處亂竄”時,這是在多次嘗試使用 $ ARG $ 宏和以多種方式重新排列事物並意識到我正在嘗試的東西根本行不通。我特意提出了我的外掛程式碼的簡化版本,試圖找到正確的方向。

在服務定義中,您放置要檢查的服務正在執行的主機的主機名。

check_command 定義my_command!whatever將傳遞whatever給命令定義 $ ARG1 $ . 添加!more更多 $ ARG2 $ , ETC。

您需要my_shell_script.sh在命令定義中傳遞所需的參數。您可以訪問諸如 $ HOSTNAME $ 和 $ HOSTADDRESS $ ; 您在本節中定義的命令define command將在 nagios 伺服器上本地執行;對於nrpe之類的東西,有一個連接到nrpe伺服器的命令定義……因此該命令也在本地執行!

從這裡開始獲取 nagios 文件,例如“基礎知識”和“Nagios 中的標準宏”。

引用自:https://serverfault.com/questions/637047