标签: monit

Monit - 如何仅在没有备份运行时检查 loadavg?

我有 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)

或在某个时候禁用那一项检查?

backup monitoring monit

2
推荐指数
1
解决办法
2328
查看次数

Monit:自定义警报消息以包含命令输出

我想自定义 Monit 的警报消息,以便每当我收到警报时,电子邮件还包含类似 的命令的输出top,以便我已经知道可能导致问题的原因的更多详细信息。

有没有办法做到这一点?该文档不包含任何相关内容,搜索也无济于事。

谢谢您的帮助!

linux monitoring monit

2
推荐指数
1
解决办法
3358
查看次数

如何监控centos 5.x 主机上的选择进程?

我想监视在我的 centos 6 主机上运行的一组选定进程,vmware vm。“top”为我提供了我想要的大部分内容,因为我可以使用 -p 来仅指定这些进程,并使用 -c 来获取完整的命令行,因为我最终对查看正在监视的 VM 的实际名称感兴趣。但是,完整的命令行太长而无法在屏幕上显示。我想将 top 的输出写入 /tmp 并在那里进行一些解析,但显然 top 只写了 80 个字符,截断了 VM 的名称。

我想也许我可以使用 'ps' 来做类似的事情,但是使用这种方法的 CPU 使用率永远不会改变——这怎么可能?

关于我如何解决这个问题的任何建议?

蒂亚!

linux monitoring top vmware-server monit

2
推荐指数
1
解决办法
3874
查看次数

当页面包含特定文本时,如何在 monit 中重新启动 MySQL?

如何检查网页是否包含文本“连接到数据库时出错”以及页面中是否存在文本重新启动数据库?

这是我到目前为止所拥有的,但它不起作用:

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)

linux ubuntu monit

2
推荐指数
1
解决办法
816
查看次数

监控基于 http 的 API

我只是想知道 monit 是否有一个 API,我们可以定期轮询(也许是基于 http 的)?

创建跨多个服务器的集成监控解决方案将非常有用。或者也许除了 m/monit 没有其他选择?

monitoring process monit

2
推荐指数
1
解决办法
7135
查看次数

无法使用 Vagrant 从主机端口通过 HTTP 访问 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 时,我没有得到任何响应。

关于如何使这项工作的任何想法?

ubuntu http monit vagrant

2
推荐指数
1
解决办法
3543
查看次数

在停止/启动时抑制 Monit 消息“Monit instance changed”

我在一些用户笔记本电脑/台式机上安装了 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

2
推荐指数
1
解决办法
3911
查看次数

使用 ssl (https) 监控

我最近安装了 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)

ssl debian https monit

2
推荐指数
1
解决办法
4729
查看次数

Monit:你如何在每次测试失败时阻止 monit 运行 exec 语句?

每次测试失败时,如何阻止 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 吗?

linux monit

2
推荐指数
1
解决办法
2712
查看次数

Bash 脚本匹配 grep 输出并发送消息

我正在开发一个用于 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)

scripting bash monit

2
推荐指数
1
解决办法
2233
查看次数

标签 统计

monit ×10

linux ×4

monitoring ×4

ubuntu ×2

backup ×1

bash ×1

debian ×1

http ×1

https ×1

process ×1

scripting ×1

ssl ×1

top ×1

vagrant ×1

vmware-server ×1