使用 Nagios 监控 DNS 服务器

使用 Nagios 监控 DNS 服务器

我想用 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 测试可能包括您想要查找的内容。

相关内容