问题标签 [check-mk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 当键很奇怪时将列表映射到字典
我想在 Check_MK 的库存插件中处理来自 TP-Link 交换机的 LLDP 数据。TP-Link 交换机不使用 LLDP 的标准 SNMP OID,并且他们的自定义 MIB 有一个奇怪的怪癖。他们没有将索引放在 OID 的末尾,而是将其放在 OID 的中间。
[[[u'1.1.99353.1', u'Te1/0/25'], [u'1.2.99353.1', u'1'], [u'1.3.99353.1', u'MAC地址'], [ u'1.4.99353.1', u'00:zzzzzzz'], [u'1.5.99353.1', u'MAC 地址'], [u'1.6.99353.1', u'00:zzzzzzzz'], [u'1.7 .99353.1', u'120'], [u'1.8.99353.1', u'Port 25'], [u'1.9.99353.1', u'THE_HOST_NAME'], [u'1.11.99353.1', u'Bridge Router'], [u'1.12.99353.1', u'Bridge Router'], [u'shortened', u'for 简洁']]
所以在正常的星球上,我会期待像 99353. 8和 99353. 9或者 99353.1 这样的东西。8和 99353.1。9 . 他们在这里所做的(1. X .99353.1)很奇怪。我不知道该怎么办。我所知道的是我必须使它正常化,而我太愚蠢了,不能这样做。
这就是我想从中得到的:
映射这个(只是列表的一个子集,而拆分关键是完全超出我的技能水平。我想避免花半天时间用一堆 for 循环产生丑陋的东西。特别是因为这个应该去上游一个社区项目,我不希望任何人伤害他们的眼睛。
是否有一些聪明的方法可以让我将其分解为 2-3 个较小的问题?
nagios - 是否可以将服务的执行限制在特定的时间范围内?
我正在使用 check_mk 来监控系统,其中一个配置的服务使用check_mk_active-http执行 HTTP POST 以每两分钟执行一次 Web 应用程序的登录。
我想每天晚上 10 点到早上 6 点禁用此检查,我的意思不仅是有关失败的通知,还有登录调用本身。
谢谢
shell - 使用 check_mk 监控本地端口的脚本
我有一台在多个端口中运行 nodejs 应用程序的服务器。这些端口不可公开访问。我想使用 check_mk 监控这些端口。我怎样才能做到这一点
python - python脚本在发出API请求时经常中断
我有一个作为 Ganeti 钩子运行的 python 脚本,它在添加、删除、关闭和启动 Ganeti 实例之后运行。向 Ganeti 添加新实例时,钩子应使用 API 调用将此实例添加到 check_mk。删除 Ganeti 中的实例会触发删除 check_mk 中的实例。关闭实例会在 check_mk 中设置停机时间,启动实例会删除 check_mk 中的停机时间(如果它是由钩子设置的)。我们在多个位置(数据中心)拥有 Ganeti 集群。
我们使用 check-mk-raw 进行分布式监控,每个数据中心运行一个主服务器和多个从服务器。因此,添加、删除等只能通过对主控的 API 调用来完成。
Ganeti 挂钩 stdout 和 stderr 被重定向到文件,这在 Ganeti 中是硬编码的。仅当脚本失败时,错误才会写入标准输出(cosole),但如果它成功运行,输出将被重定向到文件,而且通常不多。所以print()
没有帮助。因此我正在使用日志库。
主要问题是脚本经常中断并且有时没有记录。我不知道这是我的编码能力还是网络延迟。我今天添加了整个例外以了解发生了什么,但这并没有帮助。
我将不胜感激这方面的任何帮助。下面是完整的脚本。
非常感谢。
编辑:我删除了大部分异常,因为它们并不真正相关,并修复了脚本中的一些错别字。
docker - Docker 主机和 check_mk 代理为什么无法寻址端口 6556?
我有 Ubuntu 16.04 主机并安装check_mk agent
在上面,一切正常。然后我安装docker
了它,现在我无法访问端口 6556 并且check_mk checks
也失败了。我尝试了每个 docker KB 但没有运气 - 在 Docker 规则之前添加 iptables 策略。如何解决这个问题?
信息:
Docker 的所有 iptables 规则都添加到 DOCKER 链中。不要手动操作此表。如果您需要添加在 Docker 规则之前加载的规则,请将它们添加到 DOCKER-USER 链中。这些规则在 Docker 自动创建的任何规则之前加载。
我试过了:
python - 是否有针对主机服务的 API 调用?(查看 MK 版本 1.6.0p3)IE。“主机 xxx-xxx-xxx 的服务”
我想知道我是否可以调用 check_mk API 端点,该端点将检索显示在“主机 xxx-xxx-xxx 的服务”部分下显示的相同信息,该部分显示系统级指标,即。“Check_MK、CPU 负载、磁盘 IO 总结、/data...等的挂载选项”但转换为 json 或 python 格式,以便我可以将这些数据输入到 Influxdb/Grafana。
我在https://checkmk.com/cms_web_api_references.html上关注 10.2 ,我在下面运行了一个错误,但根据文档,这个 SLA 应该是可用的,因为我在 1.6.0p3
centos - Systemctl:参数列表太长
我正在运行Centos 7
,需要安装check_mk
代理来获取机器统计信息。我已经Centos 7
通过一个包在同一集群的许多其他人中成功安装了代理,rpm
但是在当前机器上我得到了这个输出:
还注意到系统无法使用任何systemd
新服务。我为测试目的制作了一个垃圾服务,它的配置文件/etc/systemd/system
被命名test.service
并简单地调用了/root/test_service/
. 这是服务文件:
这是python
脚本:
运行systemctl start test.service
我得到错误:
此外,systemd
似乎工作正常,因为我有很多其他服务启动并运行。还尝试启动xinetd
服务导致相同的错误。
任何线索将不胜感激。
bash - insert hosts in check via for loop
following problem:
we have a file called "file.conf"
first is the hostname second is the ipv4
now we have a script where he should automaticaly insert the hosts and ip's via automated user from checkMK
but if we do it like that we get the following error cause he try's to put in every host in host and every ip in ip without going through all lines
how can we make the curl script go through each line to get host and ip individually
bash - check-mk 检查主机名和/或 ip 是否已经存在
我们有一个脚本,通过 curl 在 check_mk 中插入新主机
文件“file.conf”是使用 xmlstarlet 进行 nmap 扫描的已处理文件,该文件并不总是具有主机名,因此使用 IP 地址作为主机名
file.conf 看起来像这样
因此对于某些主机,IP 地址作为主机名传递一次,逻辑上作为 ip 传递。现在是这样一个员工输入正确的主机名并从字段主机名中删除 ip
如果再次执行上述脚本,它将再次使用 ip 作为主机名创建主机(因为没有指定主机名),所以现在我们在 check_mk 1x 中使用手动添加的主机名和一次使用 ip 作为主机名的主机 2x
主机名从一开始就被 nmap 正确识别的所有其他主机都没有像应该的那样被接管
我们现在需要一个函数,在脚本执行之前询问主机名的 IP 地址,如果它已经存在,则不应再次创建主机
使用 curl 你只能得到主机
monitoring - 基于 Telnet 的 check_mk 检查
我使用 Chek MK 并想在仅支持 telnet 协议的设备上运行检查。我不擅长写这篇文章,所以会提供任何帮助。
基本上是这样的:我通过 telnet 登录到 IP / 端口(没有用户名和密码),然后发出命令:“get pw”
我得到 3 行响应(第一次重复命令,而不是一个空且在第 3 行实际值:所以输出例如是:
“获取密码
600W"
我想从这个输出中只提取整数 600,然后根据指定的限制(例如 < 100 是警告,< 50W 是关键)将它组合到 checkmk 代理可以理解的输出。
例如:
0 power=600 OK:一切正常
...或者:
1 power=90 警告:电源低
2 功率=20 临界:功率临界
(我已经检查了这个:基于 Telnet 的 check_mk 检查所以我知道我可以通过脚本来执行此操作,该脚本将在安装了 checkmk 代理的主机上执行。但我需要一些额外的帮助才能将所有东西连接在一起。:))
脚本语言可以是在 linux 上运行的任何东西(已经尝试过 bash、expect 或 python ......)这里的 isntance 是让我输出的脚本的一部分:
spawn telnet 主机端口设置超时 1 发送 "get pw\r" 期望 "$" 发送 "exit\r"
提前感谢您的帮助和兄弟,大卫