我知道Nagios是如何工作的,它定期轮询系统的状态。 它可以例如检查一些文件的存在或每分钟一些网页的可用性。 但是当我想直接从应用程序代码创build警报时呢? 说用户试图执行一些非法操作,我想收到一个警报。 例如我可以将这个事件logging到文件中,并configurationNagios定期轮询这个文件。 这似乎是间接的做法。 为什么要通过写入,轮询和parsing文件系统中的文件,如果我可以用警报细节调用某个接口(REST,SOAP)呢? 有什么可以让我的应用程序直接调用Nagios (或者由于某种原因,这会是一个糟糕的devise)?
好吧,让我们说我有一个Nagios设置,使用所谓的nagios插件来监视不同的服务。 对于我的nagios插件(可能用python编写)来确定给定的服务是否正常运行,最好的办法是什么? 有问题的特定服务是一个侦听某个端口的python套接字服务器。 所以我会确保nagios经常检查服务,如果停止响应/死亡,我应该重新启动它。 我该怎么做才能知道套接字服务器是否还活着? 最终,我将如何检查它是否响应。 我可以控制服务 – 如果能帮助我确定它的健康状态,我可以改变它的工作方式。 任何想法都欢迎!
我试图从NRPE使用check_procs找出Passenger是否在我的服务器上运行。 它从httpd加载,但单独出现。 32135 ? Sl 0:09 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd 32589 ? Sl 0:01 Passenger AppPreloader: /usr/share/puppet/rack/puppetmasterd 32629 ? Sl 0:05 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd 32751 ? Sl 0:05 Passenger RackApp: /usr/share/puppet/rack/puppetmasterd 当我尝试像这样testing它时: check_procs -w 2: -c 3: -C Passenger 它告诉我find了0个进程。 我看到他们 – 我怎么得到NRPE数呢?
我创build了一个监视Cisco路由器接口的脚本。 ./check_cisco Router1 Serial0/0/0 Interface Serial0/0/0 is up for Router1 如果此警报触发了严重警告或警告警报,我想停止所有其他通知。 不确定如何做到这一点。
我有一个包含一些分布式信息的N个节点集群。 我想用nagios监视的查询是有意义的,只能在群集的一个节点上执行(任何)。 但我不想超载一个特定的节点,所以我想要nagios每次从节点列表中select随机节点。 所以,我希望看到像这样的东西: define service{ service_description Recent document time for the cluster hostgroup_name random … } random主机组以某种方式从预定义的群集节点列表中定义随机节点。 这可能与nagios3? 有什么build议么?
我有以下简单的脚本来检查iptables是否正在运行。 为什么总是返回“OK”,无论状态如何? #!/bin/bash #IPT='iptables' SERV='/sbin/service iptables status' EXPR='Firewall is stopped.' if [ "$SERV" = "$EXPR" ] then echo 'Firewall is not Running' exit 2 else echo 'OK' exit 0 fi
我想创build一个nagios检查,testing某个文件在公共网站上是否可用,以及该文件是否包含某行文本。 从命令行我一直在执行: ./check_http -H 192.168.1.2 -u http://192.168.1.2/index.html -t 5 -s“公司名称” 如果我删除文件或更改正在查找的文本,则通过确定并失败。 现在我想把它纳入我的nagiosconfiguration文件。 我创build一个具有上述IP地址的主机,并创build一个服务如下。 check_command check_http!-u /index.html -t 5 -s“公司名称” 但是,如果我更改文件名,它正在检查或正在检查的文本仍然通过,即使我知道他们不存在于网站上。 我在做什么错我觉得我必须testing一个不同的文件或东西,它总是通过。
我对Nagios定时器有点困惑。 在testing的同时,我设置了一个5分钟左右没有拿起的故障。 我只不过是ping和http检查而已,我真的想要加强计时器。 我已经看到默认情况下,主要的interval_length设置为60,我将其设置为10,同时将单个对象上的check_interval更改为1(inheritance上没有任何内容)。 我没有得到的是单击主机本身似乎表明, Last Check Time和Next Scheduled Active Check之间的差异是30秒,以及Last Update每10秒发生一次。 我只是不确定这里发生了什么事情! 任何人都可以推荐正确的方法来每10秒钟做一次ping或者其他任何方式来实现检查之间的更短的时间? 编辑 – 在nagios.cfg文件中findcheck_result_reaper_frequency=10 ,现在明白为什么最后一次更新是每10秒钟…仍然困惑于实际检查之间的延迟,所以,留下问题打开。
好的,这是交易,我目前正在使用两个分布式的nagios监控服务器和超过70个受监控的主机。 每台主机都通过nrpe addon进行监控,每台主机都有完全相同的软件/硬件configuration。 Nrpe在Centos 5.4上作为xinetd服务运行。Nrpe版本是:2.12(服务器和受监控主机)Nagios插件是:1.4.14 所有nrpe检查都以5分钟为间隔 很less有最后input的主机偶尔会显示“服务检查超时”与受监控的nrpe服务。 那么到目前为止我做了什么: 我已经写了一些额外的包装脚本围绕这些服务来尝试find错误来源,试图在nagios服务器和nrpe服务器上进行debugging。 从下面的debugging中肯定有效: 主机之间的networking连接在两台主机/服务器上都打开Nrpe端口没有任何networking超时 Nrpe检查被正确调用,并且插件工作正常我甚至写了一个logging器脚本,它们在插件执行开始时loggingdate和时间,并且在调用槽nrpe时也是插件输出。 执行永远不会超过2秒 nrpe.conf被设置为等待命令输出60秒,监视服务器上的Nrpe插件被设置为等待至less30秒的输出(即使它将完全不同的错误)。 无论如何,这导致我得出结论,监测主机上的nrpe守护进程有问题。 即使插件返回检查数据nrpe一些如何不明白。 我甚至删除了运行nrpe守护进程的nagios用户的所有shell ulimits,以消除这种情况,但没有帮助。 无论如何,任何帮助,非常感谢。
有一种简单的方法可以将自定义命令添加到Nagios的主机configuration部分吗? 我有几个Web服务器在不同的端口和主机上运行,而且为每个不同的“一种”服务创build一个主机组,服务和命令定义(好的命令可以把端口和URL作为参数)我想检查一下。 我意识到我通过这条路线牺牲了可扩展性,但有一个更简单的方法。 还是我在想这个问题错了?