#lan #ping #networking #send-email #rust

app lanmon

一个用于监控局域网节点健康状态的非常简单的应用程序

2个不稳定版本

0.2.0 2019年1月18日
0.1.0 2019年1月17日

#503 in 命令行界面

GPL-3.0 许可证

25KB
229

LANMON - 简单的局域网监控器

LANMON专为单一目的构建。其功能是监控您局域网上的节点列表,并在节点从网络断开时发送电子邮件警报。这是一个解决更大SNMP应用程序问题的简单方案。

监控节点无需安装任何软件。它们只需能够响应ICMP ping即可。

需求

LANMON需要在能够发送邮件并实现标准Linux邮件命令的系统中运行。测试的最简单方法是执行以下命令:' echo "TEST" | mail -s "Test email" ' 其中 emailaddress 当然是您的电子邮件地址。如果您收到了电子邮件,则说明您已经准备好。

配置

LAN使用标准的JSON或TOML配置文件。默认文件是 ./lanmon.json,其格式如下

{
    "alert_mins" : 1,
    "alert" : "<<EMAIL-ADDRESS>",
    "emailonrestore" : true,
    "nodes" : [
        "192.168.1.10" ,
        "192.168.1.74",
        "192.168.1.76",
        "10.56.75.171",
        "node1",
        "node2",
        "node3",
        "2001:0db8:0000:0042:0000:8a2e:0370:7334"
    ]
}

等价的TOML格式是 ''' alert_mins = 1 alert = "[email protected]" emailonrestore = true nodes = [ "192.168.1.10" , "192.168.1.74", "192.168.1.76", "10.56.75.171", "o1", "o2", "o3" ] '''

其中

  • alert_mins 是节点离线多长时间后才会生成警报。这是一个正整数。
  • alert 是接收警报的电子邮件地址
  • emailonrestore 是一个布尔值,有效条目可以是 truefalse。如果设置为 true,则在模式恢复到网络时将生成电子邮件。
  • nodes 是表示要监控的节点的字符串列表。这可以接受三种格式的节点:IPV4、IPV6或节点名称。程序启动时会检查节点,以确定是否可以确定IP地址。它不需要在启动时处于活动状态,但必须是可解析的。

节点的数量不应存在实际限制。

节点不需要位于同一子网中。可以监控任何节点名称,只要它响应ping。

运行LANMON

LanMon作为一个后台任务启动。它有几个命令行标志。

Lan Monitor
Very simple LAN Monitor

USAGE:
    lanmon [FLAGS] [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information
    -v, --verbose    Sets the level of verbosity

OPTIONS:
    -c, --config <FILE>    The JSON formatted config file [default: ./lanmon.json]

默认情况下,只有有限的信息消息打印到标准输出文件stdout。这可以增加到包括调试消息(-v)或跟踪消息(-vv)。

注意 ICMP Ping 被视为特权命令。lanmon 可执行文件需要使用 setcap pribilege 安装,或者作为 sudo 命令使用。

安装

LANMON 仅提供源代码。这是因为它在 Linux 上需要使用 SUDO 权限,这是 ICMP Ping 协议的要求。任何明智的系统管理员都不会接受在特权模式下运行的未签名可执行文件。因此,在使用前需要编译 LANMON。

LANMON 使用 rust 编程语言编写,因此在使用前必须安装 Rust 及其包管理器 Cargo。要检查 Rust 是否已安装,请运行以下命令。如果你看到类似以下的输出,那么一切正常

$ rustc -V
rustc 1.32.0-nightly (6acbb5b65 2018-11-25)
$ cargo -V
cargo 1.32.0-nightly (b3d0b2e54 2018-11-15)
$

要构建 LanMon,请运行以下命令 ''' github clone https://github.com/AdrianChallinorOsiris/lanmon.git cd lanmon cargo install --path . sudo setcap cap_net_raw+ep ~/.cargo/bin/lanmon '''

许可协议

LanMon 采用 GNU 通用公共许可证 v3.0 GPL 3

保修和责任

软件免费提供给用户。

您可能有权获得法律不允许排除或限制的保修、条件和条款。

除了那些不可排除的保修、条件和条款外,软件、Osiris Consultams Ltd 均按“现状”提供。除了那些不可排除的保修、条件和条款外,Osiris Consultams Ltd 不作出任何担保、条件、声明、保证或条款(明示或暗示,无论是由成文法、普通法、习惯、使用或其它方式),包括性能、结果、安全性、不侵权、适销性、整合、安静享受、满意的质量和适用于特定目的的适宜性。本免责声明可能在某些州无效。您可能根据法律享有无法放弃或拒绝的保修权利。Osiris 不寻求超出法律允许的范围限制您的保修权利。

这些排除和限制将适用于适用法律允许的最大范围,即使任何补救措施未能达到其基本目的。Osiris 不提供软件的支持服务。

您承认并同意:Osiris 没有明确或暗示的义务继续提供软件或其任何功能的软件,也不引入与软件兼容的产品或服务。

本合同受英国法律的管辖和解释,并受伦敦高等法院的非专属管辖权。

依赖项

~5–14MB
~142K SLoC