sat*_*gie 10 linux ubuntu icinga ubuntu-14.04
我在 VirtualBox 内的 ubuntu 14.04.3 上有 icinga 2.3.11。我正在尝试监视“https”端口 443,例如“ https://mail.google.com ”here.Below 是我来自默认 host.conf 文件的片段
object Host "mailserver-01" {
import "generic-host"
address = "74.125.136.17" /* ip for mail.google.com */
vars.os = "Linux"
vars.http_vhosts["http"] = {
http_uri = "/"
}
vars.http_ssl = "1"
vars.http_warn_time = "5"
vars.http_critical_time = "10"
vars.notification["mail"] = {
groups = [ "icingaadmins" ]
}
}
Run Code Online (Sandbox Code Playgroud)
以下是来自默认 services.conf 文件的片段
apply Service "httpS" {
import "generic-service"
check_command = "http"
assign where host.name == "mailserver-01"
}
Run Code Online (Sandbox Code Playgroud)
虽然 icingaweb2 仪表板显示正常/绿色,但我不确定它是否正确
小智 10
您的主机将自定义属性“http_vhosts”定义为字典,但从未使用过(不适用于定义迭代该字典和生成服务对象的规则)。
相反,服务应用规则(没有 for 循环)只应用服务“httpS”。偶然地设置了主机自定义属性“http_ssl” - 它应该将true读作布尔值而不是数字作为字符串(这总是正确的)。
您可能想要检查多个 URI,而不仅仅是 /。
我的建议(2个解决方案):
1) 修复您的服务应用规则并从您的主机对象定义中删除 http_* 自定义属性。而是将它们添加到服务应用规则中:
apply Service "httpS" {
import "generic-service"
check_command = "http"
vars.http_uri = "/"
vars.http_ssl = true
assign where host.name == "mailserver-01"
}
Run Code Online (Sandbox Code Playgroud)
您可以在文档中找到用作http CheckCommand命令参数的所有自定义属性:http ://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/plugin-check-commands#plugin-check-命令-http
2) 使用服务申请规则,并在主机上定义的 http_vhosts 字典上循环。
vars.http_vhosts["https /"] = {
http_ssl = true
http_uri = "/"
}
Run Code Online (Sandbox Code Playgroud)
注意这里的命名:“https /”将是生成的服务名称。http_ssl 和 http_uri 与 http CheckCommand 所需的自定义属性的名称完全相同。
神奇发生在申请规则中:字典键将是服务名称。字典值是一个嵌套字典,包含 http_uri 和 http_ssl 作为键。在名为“config”的示例中。该配置字典具有与“vars”属性完全相同的结构,这就是为什么我们可以将它添加到服务申请定义中的原因。
apply Service for (servicename => config in host.vars.http_vhosts) {
import "generic-service"
check_command = "http"
vars += config
}
Run Code Online (Sandbox Code Playgroud)
使用icinga2 daemon -C验证配置,然后查看生成的服务对象以查看生成了哪些自定义属性(icinga2 对象列表)。
一件好事 - 定义了 http_vhosts 自定义属性的所有主机都将生成这些服务对象,不需要 extea“assign where”表达式(可能会为异常添加 ignore where)。使用正确的策略,您只需编写一次应用规则,并且将来只添加具有匹配自定义属性字典的新主机:-)
http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/monitoring-basics#using-apply-for
尽管解决方案 2) 需要有关 icinga 2 配置语言及其关键字、值类型和魔术技巧的高级知识。然而,我们认为此类方法和最佳实践有助于减少采用和更改文件的长期维护。
您还可以更进一步,根据主机名对不同的阈值使用 if-else 条件。或者使用函数来定义基于时间段的动态阈值。
| 归档时间: |
|
| 查看次数: |
18735 次 |
| 最近记录: |