我想用 Nagios 监控我的 DNS 服务器。我知道有一个 check_dns 插件,但我对 Nagios 完全是菜鸟,不知道如何使用这个插件。我只想确保 nslookup 命令成功。有人能给我指点一下吗?
答案1
使用 putty (windows) 或 unix shell 中的 slogin 登录 nagios 服务器。如果您以 root 身份登录,则成为 nagios 用户:
# su - nagios [enter]
转到 /usr/local/nagios/libexec 目录(假设您已经从源代码安装了 nagios,如果您使用了发行版中的软件包,请检查软件包的文档):
$ cd /usr/local/nagios/libexec
使用 --help 开关执行 check_dns 插件。它将为您提供所有可用选项:
$./check_dns --help
check_dns v1.4.15 (nagios-plugins 1.4.15)
Copyright (c) 1999 Ethan Galstad <[email protected]>
Copyright (c) 2000-2008 Nagios Plugin Development Team
<[email protected]>
This plugin uses the nslookup program to obtain the IP address for the given host/domain query.
An optional DNS server to use may be specified.
If no DNS server is specified, the default server(s) specified in /etc/resolv.conf will be used.
Usage:
check_dns -H host [-s server] [-a expected-address] [-A] [-t timeout] [-w warn] [-c crit]
Options:
-h, --help
Print detailed help screen
-V, --version
Print version information
-H, --hostname=HOST
The name or address you want to query
-s, --server=HOST
Optional DNS server you want to use for the lookup
-a, --expected-address=IP-ADDRESS|HOST
Optional IP-ADDRESS you expect the DNS server to return. HOST must end with
a dot (.). This option can be repeated multiple times (Returns OK if any
value match). If multiple addresses are returned at once, you have to match
the whole string of addresses separated with commas (sorted alphabetically).
-A, --expect-authority
Optionally expect the DNS server to be authoritative for the lookup
-w, --warning=seconds
Return warning if elapsed time exceeds value. Default off
-c, --critical=seconds
Return critical if elapsed time exceeds value. Default off
-t, --timeout=INTEGER
Seconds before connection times out (default: 10)
Send email to [email protected] if you have questions
regarding use of this software. To submit patches or suggest improvements,
send email to [email protected]
因此,如果您想检查 serverfault.com 是否解析为 69.59.196.211,请执行以下操作:
./check_dns -H serverfault.com -a 69.59.196.211
DNS OK: 0.013 seconds response time. serverfault.com returns 69.59.196.211|time=0.012614s;;;0.000000
如您所见,您还可以使用 -s 开关、警告和关键阈值等指定要查询的 DNS 服务器。一旦您对从 CLI 运行的检查感到满意,您就可以编辑 nagios 配置文件(在其中定义服务(可能是 services.cfg))并将检查应用于给定的主机(组)。但是,这在安装 nagios 时安装的 Web 界面中甚至可以阅读的精美手册中有更好的记录。
答案2
您可能已经在库存 nagios 配置中定义了该命令,如下所示:
define command{
command_name check_dns
command_line /usr/lib/nagios/plugins/check_dns -H google.ca -s $HOSTADDRESS$
}
我的是/etc/nagios/objects/commands.cfg
最简单的情况是定义一个检查主机上的 DNS 服务器的服务:
define service{
use generic-service
host_name ns1
service_description DNS
check_command check_dns
}
请注意,这假设:
- 您已
ns1
设置为主机 generic service
你已经有一个带有有用默认值的模板- 主机或模板所依赖的任何其他对象(如时间段和联系人)都已定义
Nagios 是一个非常复杂的工具,没有真正简单的“快速启动”。
答案3
为了使命令在正确的位置查找二进制 check_dns,最好使用 nagios 变量来定义它(默认安装):
define command{
command_name check_dns
command_line $USER1$/check_dns -H www.example.com -a 93.184.216.119 -s $HOSTADDRESS$
}
上述命令检查被测试的服务器是否返回主机名 www.example.com 的地址 93.184.216.119
答案4
使用 -h 运行插件,它会为您提供如何使用它的文档。常规参数包括要测试的主机、关键限制和警告限制。DNS 测试可能包括您想要查找的内容。