我有 Monit 配置:
check system example.com
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
Run Code Online (Sandbox Code Playgroud)
每次在夜间运行备份时,我都想删除消息,但我不想将其完全关闭。
如何添加对 gzip/bzip2 进程的检查,例如:
`ps aux | grep '\[gb\]zip'`
Run Code Online (Sandbox Code Playgroud)
或在某个时候禁用那一项检查?
我想自定义 Monit 的警报消息,以便每当我收到警报时,电子邮件还包含类似 的命令的输出top,以便我已经知道可能导致问题的原因的更多详细信息。
有没有办法做到这一点?该文档不包含任何相关内容,搜索也无济于事。
谢谢您的帮助!
我想监视在我的 centos 6 主机上运行的一组选定进程,vmware vm。“top”为我提供了我想要的大部分内容,因为我可以使用 -p 来仅指定这些进程,并使用 -c 来获取完整的命令行,因为我最终对查看正在监视的 VM 的实际名称感兴趣。但是,完整的命令行太长而无法在屏幕上显示。我想将 top 的输出写入 /tmp 并在那里进行一些解析,但显然 top 只写了 80 个字符,截断了 VM 的名称。
我想也许我可以使用 'ps' 来做类似的事情,但是使用这种方法的 CPU 使用率永远不会改变——这怎么可能?
关于我如何解决这个问题的任何建议?
蒂亚!
如何检查网页是否包含文本“连接到数据库时出错”以及页面中是否存在文本重新启动数据库?
这是我到目前为止所拥有的,但它不起作用:
check host website.com with address website.com
group database
start program = "/usr/bin/service mysql start"
stop program = "/usr/bin/service mysql stop"
if url http://website.com content == "Error connecting to database" then restart
Run Code Online (Sandbox Code Playgroud) 我只是想知道 monit 是否有一个 API,我们可以定期轮询(也许是基于 http 的)?
创建跨多个服务器的集成监控解决方案将非常有用。或者也许除了 m/monit 没有其他选择?
我想使用 monit 来监控我的 Ubuntu VM(精确到 32)上的服务,但我无法从主机(本地)机器通过 HTTP 访问 monit 守护进程。
我在 /etc/monit/monitrc 中启用了以下设置:
set httpd port 2812 and
use address localhost
allow localhost
allow vagrant:vagrant_pwd
Run Code Online (Sandbox Code Playgroud)
并将虚拟机中的端口 2812 转发到 Vagrantfile 中的主机,如下所示:
config.vm.forward_port 2812, 2812
Run Code Online (Sandbox Code Playgroud)
我已经通过 ssh 进入虚拟机并运行来确认 monit 正在虚拟机上运行:
sudo /etc/init.d/monit status
Run Code Online (Sandbox Code Playgroud)
并且可以通过运行在 VM 中使用 HTTP 访问 Monit 守护进程
curl -u vagrant:vagrant localhost:2812
Run Code Online (Sandbox Code Playgroud)
但是当我在主机浏览器(firefox)上输入 localhost:2812 时,我没有得到任何响应。
关于如何使这项工作的任何想法?
我在一些用户笔记本电脑/台式机上安装了 monit,因此它可以确保几个进程始终在运行/根据需要重新启动。但是由于设备定期关闭/重新启动,我经常收到如下消息,我不想要或不关心这些消息,因为它们告诉我系统已重新启动。我想抑制在 monit 启动/停止时似乎自动发生的消息。
Subject: monit alert -- Monit instance changed
Service - system_slaveone
Event - Monit instance changed
Action - start
Date - Thu, 18 Apr 2013 07:53:51
Host - slaveone.example.local (slaveone)
Description - Monit started.
Run Code Online (Sandbox Code Playgroud)
但是一旦系统启动,我确实希望收到一些关于我确实希望收到通知的一些服务/资源的警报,因此我不想简单地禁用电子邮件。
如何在不完全禁用电子邮件的情况下抑制启动/重启时的消息?
我最近安装了 monit(在 debian 上)并且一切正常。现在我想启用 ssl 支持。我做了我在文档中找到的内容:
set httpd port 2812
ssl enable
pemfile /etc/ssl/certs/ssl-cert-snakeoil.pem
Run Code Online (Sandbox Code Playgroud)
现在,我不仅无法使用https://myserver.com:2812通过 Web 访问服务器,而且 monit 守护程序和 monit 命令之间的通信也失败了:
$# monit status
monit: Openssl read timeout error!
monit: error connecting to the monit daemon
Run Code Online (Sandbox Code Playgroud) 每次测试失败时,如何阻止 monit 运行 exec 语句?我的 monitrc 中的声明是:
check filesystem tmpfs with path /var
if space > 90% then exec "/usr/bin/logger -p daemon.crit 'MAJOR: space test'"
Run Code Online (Sandbox Code Playgroud)
这看起来很奇怪,因为其他人问了一个问题,他在做一个警报,它有我想要的行为。我已准备好开始扼杀 linux 盒子。
编辑:这是相反的情况重复监控警报
是因为他使用的是 alert 而不是 exec 吗?
我正在开发一个用于 monit 状态检查的脚本,以便我可以将 OK 状态消息发送到 NagiOS NSCA 服务器(被动检查)。我遇到的问题是,如果脚本 grep 函数不包含任何会触发消息发送的内容,我的 bash 脚本仍会发送消息。
脚本:
变量
rsysl='rsyslog'
log='messages'
Run Code Online (Sandbox Code Playgroud)
变量中的命令
host=$(hostname)
monstat=$(monit status|grep -C 1 '$rsysl')
nsca_status=$(echo -e "$host\t$rsysl\t0\tOK" | /usr/sbin/send_nsca -H mon.lv.lan -c /etc/send_nsca.cfg)
Run Code Online (Sandbox Code Playgroud)
监控状态命令
# Postfix check
$monstat
Run Code Online (Sandbox Code Playgroud)
如您所见,消息发送功能仅在状态等于未运行且不可访问时发送消息
if [ "status" == "not running" ] && [ "status" == "not accessible" ]; then
$nsca_status
else
:
fi
Run Code Online (Sandbox Code Playgroud)
Grep 输出(在实际情况下,消息发送命令必须匹配运行和可访问:
# monit status|grep -C 1 'rsyslog'
Process 'rsyslog'
status Running
-- …Run Code Online (Sandbox Code Playgroud)