OPNsense用户手册-Monit

Monit是一款开源进程监控工具,能够在错误情况下进行自动维护,修复和运行指定的操作。OPNsense集成了Monit监控程序,通过设置,可以完成对系统服务的监控。

导航至服务‣Monit‣设置。这里有四个选项卡,下面进行详细描述

常规设置

导航至服务‣Monit‣设置。在“常规设置”选项卡上,打开“Monit”并填写SMTP服务器的详细信息,保存更改,然后导航到“警报设置”并添加一个电子邮件地址。如果你的邮件服务器要求正确设置“发件人”字段,请在“邮件格式”字段中输入From: sender@example.com,保存警报并应用更改。

下面,来看看常规设置的其他选项,点击“高级模式”来查看所有设置。

项目 描述
启用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:pass@192.168.1.10:8443/collector
M/Monit超时 向M/Monit发出请求时的超时。
M/Monit 注册凭证 通过发送Monit凭证自动在M/Monit中注册(请参见上面的Monit访问列表)。

在“邮件服务器”设置中,可以指定多个服务器。Monit将从第一个服务器开始依次尝试邮件服务器,如果第一个服务器不工作则选择第二个服务器,依此类推。如果没有服务器工作,Monit不会尝试再次发送电子邮件。

注意:在所有服务器之间共享身份验证设置,并在“警报设置”中设置“发件人:”地址。这里介绍了Monit Web界面的身份验证选项 。M/Monit是一项商业服务,可以从多个Monit实例收集数据。要从OPNsense使用它,请填写相应字段并添加对应的防火墙规则。

警报设置

这列出了要报告的电子邮件地址。单击现有条目的“编辑”图标或“添加”图标(右下角的加号),可以查看下面列出的选项。

项目 描述
启用警报 打开或关闭此警报。
收件人 将此电子邮件发送到的电子邮件地址。
反选 禁用时,将发送以下指定事件的通知。启用时,将发送以下未指定事件的通知。
事件 触发此通知的事件(如果选择了“ Not on”,则不会触发)。
邮件格式 可用于控制邮件格式和发件人地址。请参阅此表下方。
提醒 如果经过此数量的检查后问题仍然存在,请发送提醒。
描述 为了便于在“警报设置”列表中找到此规则,请对其进行描述。

“邮件格式”是用换行符分隔的属性列表,用于控制邮件格式。还需要正确设置发件人地址。例如:

From: sender@example.com
Reply-To: support@example.com
Subject: $SERVICE at $HOST failed

服务设置

这里预先创建了一些服务,你可以添加任意数量的服务。单击现有条目的“编辑”图标或“添加”图标(右下角的加号),可以查看下面列出的选项。

项目 描述
启用服务检查 打开或关闭此服务。
名称 此服务的名称,仅包含字母,数字和下划线。可以在“描述”字段中设置更多描述性名称。
类型 要检查的对象的种类。“自定义”允许您使用自定义脚本。
路径 目录,文件或脚本的路径(如果适用)。
程序超时 多久运行一次此检查。
启动 服务的启动脚本(如果适用)。
停止 服务的停止脚本(如果适用)。
测试 要确定是否需要发送警报的测试条件。这些条件在“服务测试设置”选项卡上创建。
描述 为了方便地在“服务设置”列表中找到该服务的说明。

服务测试设置

项目 描述
名称 测试的名称。
条件 符合Monit语法的条件,请参阅Monit文档
操作 遇到条件时该怎么办。

有一些预先创建的服务测试。其中大多数通常用于一种情况,例如“内存使用率> 75%”测试。但是,有些更通用,可用于测试你自己的脚本的输出。包括:

服务测试 描述
NonZeroStatus 返回的状态码不是0。(如果没有问题,脚本通常以0退出,如果存在问题,则以非零退出。)
ChangedStatus 自上次运行脚本以来,返回的状态代码已更改。

状态

可以通过“服务‣Monit‣状态”访问“监控状态”面板。对于每个活动的服务,它将显示状态以及该服务提供的其他信息。

下面提供了一些示例,供使用者参考。

示例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

单击保存。从现在开始,您将收到每个阻止操作的警报消息。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注