簡體   English   中英

在icinga2中將依賴項應用於服務

[英]Applying a dependency to a service in icinga2

我們正在使用icinga2進行監控。 我們有很多服務檢查,這些檢查通過應用規則動態地應用。 此外,這些服務適用於各種主機上的數據庫實例的哈希圖。 總而言之,我們的服務名稱是動態確定的,因此可以這樣確定,例如HOST!DBNAME-svcvheck

所以情況是,這些服務大多依賴於數據庫中了,比如:`HOST!DBNAME-TNSPING。”不幸的是, 文件的例子是相當簡單的,不會動態包括創建父服務的參考。我覺得我是什么想做的是這樣的:

apply Dependency "db-connectivity" to Service {
  parent_service_name = "$host.name$!$service.vars.envname$-tnsping"
  # also tried variants of this, e.g.
  # parent_service_name = host.name + "!" + service.vars.envname + "-tnsping"
  child_service_name = service.name
  child_host_name = host.name
  disable_checks = true
  assign where "oracle-db-svc" in service.templates
}

在我的情況下,主機並不重要,因為依賴項僅是服務,而child_host_name是必填字段。

不管我做什么,我似乎都無法識別父服務。 例如:

Error: Dependency 'scan-szepdb041x.myhost.org!UAT2-beqfilelast!db-connectivity' references a parent host/service which doesn't exist.

在應用Dependency時引用其他對象變量的規則似乎與應用服務有些不同。

是否有人對將服務依賴項動態應用於動態生成的服務有任何想法或示例?

您可能必須遍歷現有主機,然后查看它們是否匹配。 然后,您可以在循環內定義依賴項。

我有一個類似的示例,用於動態生成磁盤檢查。 如果找到它,我會在幾天后將其發布在這里。

不確定依賴項是否可行,但是我會看到的。

編輯:看看這樣的東西是否足以讓您入門:

for (server in get_objects(Host)) {
        if (match("somename*", server.name)) {
                apply Dependency "db-connectivity" + server.name to Service use (server) {
                        parent_service_name = server.name + service.vars.envvname + "-tnsping"
                        child_service_name = service.name
                        child_host_name = host.name
                        disable_checks = true
                        assign where "oracle-db-svc" in service.templates
                }
        }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM