问题标签 [icinga]
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.
mysql - 带可变参数的 MySQL 函数
我正在使用 Jaspersoft 的 iReport 和 icinga 的数据创建监控报告。在 ireport 中,我必须输入查询以获取所需的数据。现在,我想从该服务中获取(受监视对象的)名称和相应的可用性。为此,icinga 提供了一个函数,该函数将 object_id、开始日期和结束日期作为参数。比如这样:
对于 iReport,我需要在一个查询中获取所有需要的对象。例如,我需要对象编号 131、258、101、465。
是否可以将变量/通配符或多个 object_ids 传递给函数?我还无法管理它。
谢谢您的帮助!
python - Python 模块 snmpSessionBaseClass:在哪里下载
我正在尝试在我正在运行的脚本中导入 snmpSessionBaseClass python 模块,但我没有安装该模块,我似乎无法找到下载它的位置。有谁知道下载和安装这个模块的 pip 或 yum 命令?谢谢!
git - 脚本/cron 自动更新 LetsEncrypt 证书并推送到存储库
我希望脚本/cron 能够为多个域续订 LetsEncrypt 证书(使用 acme-tiny),当 Icinga 检查显示它们距离到期还有 15 天时。
然后应该将这些更新的证书推送到 GitHub 存储库。
我不确定如何继续执行脚本以使其仅在 Icinga 检查后为域运行。
linux - 从模板创建多个文件并即时替换内容
如标题中所述,我想从模板创建多个文件并即时替换固定关键字
如果我做
我有点接近,因为我得到了第一个结果的正确输出,但数字 02-04 有错误。
因为在 icinga 中不需要分隔每个配置文件(但这将是一个奖励),所以可以将结果放入单个输出文件中。
例子:
这现在应该导致:
我很确定这很容易通过使用带有循环的任何类型的脚本来完成
我只是好奇这是否可以使用一些单行命令来完成
nagios - 如何在 Icinga 数组参数中转义逗号
我有一个 Python 脚本,它接受可变数量的整数并对其进行一些处理。这些值通过命令行参数传递给脚本-s
。当我在本地运行脚本时,它工作正常:
在内部,使用以下代码将整数转换为逗号分隔的数组:
如果我随后调用print args.myNumbers
脚本,我最终会得到一个如下所示的数组:
['1', '2', '3', '4']
我一直无法在 Icinga Web 上获得相同的输出。我怀疑这与 Icinga 如何解析宏有关。我的代码如下:
以下是我尝试过的一些输入vars.someNumbers =
及其相应的输出:
更新:经过多次摆弄,我设法让数组看起来一样。我首先必须更改arguments
我的检查命令的一部分以禁用重复键:
我不得不使用 input ["1", "2", "3", "4"]
。(有趣的是,不起作用['1', '2', '3', '4']
,因此单引号和双引号之间显然存在差异。)
但是,有一个新问题:我的.join()
方法在 Icinga 上的行为与在本地计算机上的行为不同。在我的本地机器上,在 之后.join()
,我得到:
1,2,3,4
而在 Icinga 上,我得到:
1, 2, 3, 4
(注意空格)
我尝试添加.replace(" ","")
到我的.join()
命令,但它没有效果。
更新 2: Icinga 似乎对逗号和空格有一些奇怪的痴迷。这个测试说明了这个问题:
这是一个更简单的问题示例:
尽我所能,我还不能删除空格(这对我的应用程序来说是一个问题,因为它应该使用传入的参数动态构建一个 URL)。
更新 3:我当前针对特定情况的解决方法是%2C
在我的.join()
方法中使用,即逗号的 URL 编码。
monitoring - Icinga:如何通过远程 api 或工具启用维护模式?
我正在使用 Icinga 版本 2.4.2 来监控多台主机上的服务。我希望能够使用 cli 工具或 rest API 而不是 Web UI 将某些主机置于维护模式一段时间。
这可能吗?如果可以,我应该使用什么工具/api?如果我不能通过远程工具/api 执行此操作,我应该在服务器或客户端上使用什么命令将客户端置于维护模式?
更新:似乎其余的 api 有一个解决方案。这组权限有效:
然后以下允许我制作和删除停机时间:
现在我遇到的唯一问题是如何传递开始和停止日期的变量。尝试这样做会导致以下错误:
icinga - 失去连接时,Icinga2 客户端主机 culster-zone 检查命令不会关闭 (RED)
我在我的 icintga2 监控系统中使用具有自上而下模式的导向器设置了一个具有 2 个客户端端点的单个主控。我还设置了 2 个接受配置和接受命令的客户端节点。(希望这意味着我正在运行自上而下的命令端点模式)
3 台主机的服务检查(磁盘/内存/负载)返回正确的结果。但我的问题是:根据Top Down Command Endpoint example的示例,主机 icinga2-client1 使用“ hostalive ”作为主机 check_command。例如。
但是我遇到的一个问题是,如果 client1 icinga 进程未运行,则主机状态保持绿色,并且所有服务状态(磁盘/内存/负载)也保持绿色,因为 master 没有获得任何服务检查更新和 hostalive check 命令能够 ping 节点。
在最佳实践 - 健康检查部分,它提到使用“ cluster-zone ”检查命令。我期待在使用“ cluster-zone ”时,当客户端节点 icinga 进程停止时,主机状态将为RED ,但不知何故这并没有发生。
有人知道吗?
我的区域/主机/端点配置如下:
谢谢,
瑞克
bash - 自动将命令的输出提供给提示符
我有一个脚本,它读取一个文本文件,其中列出了所有节点:
这是我的脚本:
1) 脚本应该登录到 Icinga 主机并icinga2 pki ticket --cn '$f'
为在该文件上找到的每个节点运行一个命令,linux-list.txt
并为每个主机生成一个票证
2)然后将这个生成的代码发送到每个节点($f)
完成上述所有命令后,脚本需要运行命令 icinga2 节点向导,该向导将启动问题/答案提示,并需要有人键入答案,如下所示。
Icinga master 的 FQDN 是master.icinga.test.com
,它的 IP 是10.20.20.1
. PKI 票证是我们之前在 Icinga 主机上生成的,并且对于每个主机都不同。
有什么办法可以自动化吗?
谢谢
nagios - 当 Icinga2 主机具有关键服务时,是否可以运行脚本?
假设给定主机FooHost
正在运行 Apache2。Icinga2 通过 ssh 命令运行检查并发现 Apache2 未运行,这会触发严重警报。
是否可以让 Icinga2 对此事件执行脚本?在这个例子中,我想编写一个脚本来执行 SSH 远程执行systemctl restart apache2
。
或者,我们可以编写一个可以部署在所有服务器上的看门狗脚本,但是将它写在 Icinga2 盒子上更有意义,并使用 ssh 远程执行,因为这允许集中控制。
我认为没有理由让工程师登录来解决这个问题,除非重新启动也失败了。