我在 Docker.io 容器中运行 Opennms:https ://registry.hub.docker.com/u/study/opennms/
$ docker run --name some-postgres -e LC_ALL=C.UTF-8 -d postgres
和
$ docker run --name some-opennms --link some-postgres:postgres -p 8980:8980 -d 'study/opennms'
奇迹般有效。用户/密码:admin/admin 作为默认登录名。
我通过 Home > Admin > Provisioning Requisitions > Edit Foreign Source Definition 添加了一个自定义 http 检测器。检测器基本上检查 8111 的 HTTP 200 响应,将其命名为teamcity,因为它旨在检测 Teamcity 的运行。
通过 Home > Admin > Add Interface 添加了一个节点,该界面出现在 Home > Search > Node List 屏幕上。
现在我遇到的问题是:在可用性窗口中,自定义服务显示为“未监控”。在互联网上环顾四周,发现: http ://www.opennms.org/wiki/FAQ-Configuration#Q :_Why_are_some_services_listed_as_Not_Monitored.3F
登录到容器:
$ docker exec -it opennms bash
检查配置文件:/etc/opennms/poller-configuration.xml。文件只是默认配置,不显示任何自定义添加的服务。所以我搜索文件系统
$ cat /etc/opennms/*.xml | grep *teamcity*
它会找到检测器 /etc/opennms/default-foreign-source.xml。但是该文件不包含服务定义,其中包括打开服务检测的选项,它只包含检测器。
如何使服务的可用性显示为“受监控”?我可以配置轮询器以从管理 UI 检查服务的可用性吗?
要启用轮询(从而监控服务状态),您实际上必须编辑 poller-configuration.xml并为要轮询的服务添加一个条目。我很惊讶地发现 Opennms 没有为这个相当重要的用例提供 UI。