【问题标题】:Monitor Docker Services on NAGIOS在 NAGIOS 上监控 Docker 服务
【发布时间】:2021-04-02 05:20:05
【问题描述】:

我正在使用 NAGIOS 作为我认为完美的监控工具。但是我想知道我们如何在 NAGIOS 的帮助下监控 DOCKER 或其他任何正在运行的服务。

我主要是尝试监控在服务器的 Docker 服务中运行的容器。

例如,下面给出的是我主机服务器中的一个 .cfg 文件。我需要在此处进行哪些更改来监控 docker 容器?

另外,有什么很酷的东西我们也可以在 Nagios 的帮助下进行监控吗?

define host {
      use                          linux-server
      host_name                    testserver
      alias                        Remote Host
      address                      XXX.XXX.XXX
      register                     1
}

define service {
      host_name                       testserver
      service_description             PING
      check_command                   check_ping!100.0,20%!500.0,60%
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       testserver
      service_description             Disk Usage
      check_command                   check_local_disk!20%!10%!/
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

define service {
      host_name                       testserver
      service_description             SSH Service
      check_command                   check_ssh
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

【问题讨论】:

  • 有很多方法可以做到这一点。其中之一是使用已经创建的脚本,它可以帮助您进行容器监控,例如 github.com/timdaman/check_docker
  • 嗨@Rohlik,我现在有 check_docker 的文件。我需要把它放在 libexec 中然后使用它吗?由于我是 Nagios 的新手,您能给我一些指导吗?
  • 嗨@Sameer,为了澄清,您想要监控一个docker容器还是只是像docker daemon/service这样的服务?
  • 对于高级级别,我想监控容器。但是现在即使我可以设法监控 docker 服务。那会没事的。
  • 好的,然后将check_docker.py 脚本放在某个地方,可能是远程服务器上的libexec 目录,并根据您的需要更新远程nrpe.cfg 配置。

标签: docker containers monitoring nagios


【解决方案1】:

您需要知道的第一件事是您是要在本地还是远程运行这些检查。也就是说,您运行 Nagios 的服务器是否也可以运行 Docker 检查?

本地检查

您只需要为此目的下载一个插件,创建一个新的命令对象(在 commands.cfg 中,请参阅文档)并将其设置为新服务对象的 check_command(示例):

define service {
      host_name                       testserver
      service_description             Docker Check
      check_command                   your_check_command!arg1!arg2 # args are optional
      max_check_attempts              2
      check_interval                  2
      retry_interval                  2
      check_period                    24x7
      check_freshness                 1
      contact_groups                  admins
      notification_interval           2
      notification_period             24x7
      notifications_enabled           1
      register                        1
}

这将在testserver 主机下创建一个新服务,它将使用您配置的your_check_command 命令,它接受两个可以在命令 定义中使用的参数,例如$ARG1$$ARG2。这些参数的目的是使命令对象可重用(某些细节可能因服务而异)。

远程检查

如果需要在另一个节点上进行检查,可能是因为防火墙不允许您的 Nagios 服务器与您要检查的任何内容进行通信,那么通常使用 NRPE。它基本上是这样工作的:

┌────────────┬───────────┐    ┌─────┬─────┬──────────────┐
│            ├──────────┼│    ├─────┤     ├─────────────┼│
│testserver  │check_nrpe│┼───►│nrped│ bar │check_docker ││
│            ├──────────┼│    ├─────┤     ├─────────────┼│
└────────────┴───────────┘    └─────┴─────┴─────┼────────┘
                                                │
                                                ▼
                                          ┌─────────────┐
                                          │targeted node│
                                          └─────────────┘

因此,您的 Nagios 服务器不再运行实际插件,而是运行 check_nrpe,这会调用另一个安装了 nrped(守护进程)的节点。当这个守护进程被调用时,你给它一个预配置的“命令”,它映射到bar 上的一个插件。此插件运行,结果通过 NRPE 协议传回。

这只是一个总体概述,但希望它可以为运行这些检查的两种主要方法提供一些思路。

是的,您可以使用 Nagios 检查很多内容。那里可能有一百万个插件,所以只需开始谷歌搜索或查看https://exchange.nagios.org/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多