【发布时间】:2017-11-02 12:17:15
【问题描述】:
OMD 用户
# omd create docker-user
# su - docker-user
- 如何监控docker容器?
- docker 容器内的微服务内存使用情况?
- 如何将 docker 容器配置为 check_mk 代理?
我正在使用 Check_mk 来监控我的服务器并且知道也想监控 docker?
【问题讨论】:
# omd create docker-user
# su - docker-user
我正在使用 Check_mk 来监控我的服务器并且知道也想监控 docker?
【问题讨论】:
这里有两个选项:
当您部署容器时,在配置时/期间添加 check_mk_agent,并使用 Check_MK Web-API、添加主机、进行发现等。
你可以使用following plugin来监控docker容器。
或者,如果您使用的是企业版,则可以使用具有原生 Docker 支持的当前创新版本 (1.5.x)。
【讨论】:
这是一个迟到的答案,但由于它出现在我的 Google 搜索结果之上,我将花一些时间来总结 Marius Pana 的答案。截至目前,Check_MK 的原始版本还支持原生 docker。但是,如果您想在 docker 中进行专门的检查,则需要在 docker 中实际安装 Check_MK 代理。为此,您需要使用docker exec -it <id> sh 在docker 内启动某种shell(通常是sh 或bash)。您可以通过docker ps 获取您的 docker ID。
现在这是简单的部分。困难的部分是弄清楚您在 docker 中处理的包管理器(如果有的话)以及如何安装 inetd/xinetd 或您的代理首选的通信方式(除非它已经安装)。如果它是基于 Ubuntu 的映像,您通常需要从 apt update、apt-get install xinetd 开始,然后您可以安装打包的 Check_MK 代理,或者如果您愿意,可以手动安装。如果它是基于 CentOS 的映像,您将改为使用 yum。如果镜像基于 Arch Linux,您可能需要使用pacman。
一旦你设法在你的 docker 中安装了所有东西,你可以通过将你的 docker IP 添加到 Check_MK 作为主机来进行测试。请注意,如果您的 docker 使用主机 IP,您需要将 docker 的 6556 端口转发到主机上的另一个端口,因为我假设您已经通过端口 6556 监控主机。
检查一切正常后,还有 2 件事。如果您停在那里,简单地重新启动您的 docker 将取消您所做的所有更改,因此您需要执行 docker commit 以保存对容器映像的更改。最后,您需要提前计划容器更新:您可以在每次拉取新版本的容器时重新安装代理(您甚至可以编写脚本),或者您可以将指令添加到您的 cont-init.d 将被执行每次启动 docker 时。
【讨论】: