Monit是一款开源进程监控工具,能够在错误情况下进行自动维护,修复和运行指定的操作。OPNsense集成了Monit监控程序,通过设置,可以完成对系统服务的监控。
导航至
。这里有四个选项卡,下面进行详细描述常规设置
导航至From: [email protected]
,保存警报并应用更改。
下面,来看看常规设置的其他选项,点击“高级模式”来查看所有设置。
项目 | 描述 |
---|---|
启用Monit | 打开或关闭Monit。 |
轮询间隔 | 设置多久检查一次它监视的组件的状态。 |
启动延迟 | Monit启动前需要等待多长时间检查组件。 |
邮件服务器 | 要将通知发送到的邮件服务器的列表(另请参见此表下方)。 |
邮件服务器端口 | 要使用的邮件服务器端口。一般为25或465。 |
用户名 | 如果需要,用于登录SMTP服务器的用户名。 |
密码 | 如果需要,用于登录SMTP服务器的密码。 |
安全连接 | 连接到邮件服务器使用TLS。 |
SSL版本 | 要使用的TLS版本。AUTO将尝试自动协商版本。 |
验证SSL证书 | 检查TLS证书的有效性。如果使用自签名证书,请关闭此选项。 |
日志 | Monit进程的日志文件。这可以是关键字,也可以是syslog 文件的路径。 |
状态文件 | Monit进程的状态文件。 |
事件队列路径 | 事件队列目录的路径。 |
事件队列插槽 | 事件队列槽的数量。 |
启用HTTPD | 打开Monit Web界面。(需要查看以下选项) |
Monit HTTPD端口 | Monit Web界面服务的监听端口。 |
Monit HTTPD访问列表 | 用户名:密码或主机/网络等,用于访问Monit Web界面服务。 |
M/Monit网址 | 如:https://user:[email protected]:8443/collector |
M/Monit超时 | 向M/Monit发出请求时的超时。 |
M/Monit 注册凭证 | 通过发送Monit凭证自动在M/Monit中注册(请参见上面的Monit访问列表)。 |
在“邮件服务器”设置中,可以指定多个服务器。Monit将从第一个服务器开始依次尝试邮件服务器,如果第一个服务器不工作则选择第二个服务器,依此类推。如果没有服务器工作,Monit不会尝试再次发送电子邮件。
注意:在所有服务器之间共享身份验证设置,并在“警报设置”中设置“发件人:”地址。这里介绍了Monit Web界面的身份验证选项 。M/Monit是一项商业服务,可以从多个Monit实例收集数据。要从OPNsense使用它,请填写相应字段并添加对应的防火墙规则。
警报设置
这列出了要报告的电子邮件地址。单击现有条目的“编辑”图标或“添加”图标(右下角的加号),可以查看下面列出的选项。
项目 | 描述 |
---|---|
启用警报 | 打开或关闭此警报。 |
收件人 | 将此电子邮件发送到的电子邮件地址。 |
反选 | 禁用时,将发送以下指定事件的通知。启用时,将发送以下未指定事件的通知。 |
事件 | 触发此通知的事件(如果选择了“ Not on”,则不会触发)。 |
邮件格式 | 可用于控制邮件格式和发件人地址。请参阅此表下方。 |
提醒 | 如果经过此数量的检查后问题仍然存在,请发送提醒。 |
描述 | 为了便于在“警报设置”列表中找到此规则,请对其进行描述。 |
“邮件格式”是用换行符分隔的属性列表,用于控制邮件格式。还需要正确设置发件人地址。例如:
From: [email protected]
Reply-To: [email protected]
Subject: $SERVICE at $HOST failed
服务设置
这里预先创建了一些服务,你可以添加任意数量的服务。单击现有条目的“编辑”图标或“添加”图标(右下角的加号),可以查看下面列出的选项。
项目 | 描述 |
---|---|
启用服务检查 | 打开或关闭此服务。 |
名称 | 此服务的名称,仅包含字母,数字和下划线。可以在“描述”字段中设置更多描述性名称。 |
类型 | 要检查的对象的种类。“自定义”允许您使用自定义脚本。 |
路径 | 目录,文件或脚本的路径(如果适用)。 |
程序超时 | 多久运行一次此检查。 |
启动 | 服务的启动脚本(如果适用)。 |
停止 | 服务的停止脚本(如果适用)。 |
测试 | 要确定是否需要发送警报的测试条件。这些条件在“服务测试设置”选项卡上创建。 |
描述 | 为了方便地在“服务设置”列表中找到该服务的说明。 |
服务测试设置
项目 | 描述 |
---|---|
名称 | 测试的名称。 |
条件 | 符合Monit语法的条件,请参阅Monit文档 |
操作 | 遇到条件时该怎么办。 |
有一些预先创建的服务测试。其中大多数通常用于一种情况,例如“内存使用率> 75%”测试。但是,有些更通用,可用于测试你自己的脚本的输出。包括:
服务测试 | 描述 |
---|---|
NonZeroStatus | 返回的状态码不是0。(如果没有问题,脚本通常以0退出,如果存在问题,则以非零退出。) |
ChangedStatus | 自上次运行脚本以来,返回的状态代码已更改。 |
状态
可以通过“
访问“监控状态”面板。对于每个活动的服务,它将显示状态以及该服务提供的其他信息。下面提供了一些示例,供使用者参考。
示例1
在本示例中,我们将添加一个服务以便在FTP代理停止后重新启动它(在端口8021上运行)。为了避免万一发生错误而导致不断循环,我们还需要添加一项条件,当FTP代理连续重新启动五次后停止尝试。先要确保已按照“常规设置”下的步骤进行了操作。然后导航到“服务测试设置”选项卡,添加两个测试:
项目 | 值 |
---|---|
名称 | FTPProxy8021 |
条件 | failed host 127.0.0.1 port 8021 type tcp |
操作 | Restart |
项目 | 值 |
---|---|
名称 | RestartLimit5 |
条件 | 5 restarts within 5 cycles |
操作 | Unmonitor |
现在,导航至“服务设置”选项卡,添加以下服务:
项目 | 值 |
---|---|
名称 | FTPProxy8021 |
类型 | Process |
PID文件 | /var/run/osftpproxy.127_0_0_1_8021.pid |
启动 | /usr/local/sbin/configctl ftpproxy start 127_0_0_1_8021 |
停止 | /usr/local/sbin/configctl ftpproxy stop 127_0_0_1_8021 |
测试 | FTPProxy8021,RestartLimit5 |
单击保存。
示例2
在本示例中,我们要监视VPN隧道并ping远程系统。如果ping不再响应,则重新启动IPsec。
首先,确保已按照“常规设置”下的步骤进行了操作。然后,导航到“服务测试设置”选项卡,添加一个测试:
项目 | 值 |
---|---|
名称 | IPSEC_RESTART |
条件 | failed ping4 count 5 address <local IP> |
操作 | Restart |
现在,导航至“服务设置”选项卡,添加以下服务:
项目 | 值 |
---|---|
名称 | IPSEC_MONITOR |
类型 | Remote Host |
地址 | <remote IP> |
启动 | /usr/local/sbin/configctl ipsec start |
停止 | /usr/local/sbin/configctl ipsec stop |
测试 | IPSEC_RESTART |
单击保存。
示例3
在本示例中,我们要监视Suricata EVE Log的警报并发送电子邮件。注意要确保将误报率保持在较低水平,以免被警报发送垃圾邮件。
首先,确保已按照“常规设置”下的步骤进行了操作。然后,导航到“服务测试设置”选项卡,添加一个测试:
项目 | 值 |
---|---|
名称 | SURICATA_EVE |
条件 | content = “blocked” |
操作 | Alert |
现在,导航至“服务设置”选项卡,添加以下服务:
项目 | 值 |
---|---|
名称 | SURICATA_ALERT |
类型 | File |
路径 | /var/log/suricata/eve.json |
测试 | SURICATA_EVE |
单击保存。从现在开始,您将收到每个阻止操作的警报消息。