一个简单的监视器,在kiss理念下为unix/linux提供警报。保持简单和直接!

simple-monitor-alert的Python项目详细描述


Latest Travis CI build statusLatest PyPI versionPython versionsCode ClimateTest coverageRequirements Status

简单监视器警报

一个简单的监视器,在kiss理念下为unix/linux提供警报。保持简单和直接!

  • light:只有~7mib内存。(这对你的覆盆子皮很好!)
  • 非常容易使用和理解。
  • 写^ {STR 1 } $您自己的监视器< /强>任何语言(BASH,Python,Perl,JS,Ruby,PHP,C,C++……)。
  • awesome features:发送一次或多次警报,图形峰值…
  • 不需要服务器。您可以作为守护进程运行,也可以使用crond
  • 易于debug和测试。
  • 发送警报的多种方式:电子邮件、电报
  • easy configuration在单个文件中。

可用监视器:

  • 硬盘:智能、温度、可用空间、MDADM(Linux RAID)。
  • system:CPU使用率、空闲RAM、空闲交换、监视服务(守护进程)、传感器、[时间]…
  • web:加载时间、返回代码、页面内容。
  • 网络:ping,[端口,动态IP]。
  • 其他:[日志监视器,谷歌云打印]

屏幕广播

https://asciinema.org/a/ez93g4bewogf6wss7bxxnc5tz.png

三步快速入门指南

  1. 从pypi安装:

    $ sudo pip install simple-monitor-alert
    
  2. 编辑/etc/simple monitor alert/sma.ini并定义警报的接收者:

    [mail]
    to = awesome@email.com
    
  3. 执行SMA:

    # Just once:
    $ sma
    # or... Run as a service (daemon)
    $ sma service
    # or... Run usign system service:
    $ sudo systemctl start sma
    

是的,就是这样!

5分钟指南

文件和目录:

  • /etc/simple-monitor-alert/sma.ini (file): all-in-one config file. Configure monitors and alerts methods.
  • /etc/simple-monitor-alert/monitors-available (directory): All monitors available for usage. You can create monitors here.
  • /etc/simple-monitor-alert/monitors-enabled (directory): All monitors that are here are activated.
  • /etc/simple-monitor-alert/alerts (directory): Alerts methods available. You need to configure them in sma.ini.

启用和禁用监视器

已启用/etc/simple monitor alert/monitors enabled中的所有监视器。建议文件是符号文件 链接。要激活监视器:

$ cd /etc/simple-monitor-alert/monitors-enabled
$ sudo ln -s ../monitors-available/mdadm.sh

禁用

$ cd /etc/simple-monitor-alert/monitors-enabled
$ rm mdadm.sh # It's safe. mdadm is a symlink.

我们建议您在激活前阅读显示器的开头。一些监视器可能需要参数和 配置系统。例如:

$ head -n 6 /etc/simple-monitor-alert/monitors-available/service.sh
#!/usr/bin/env bash
# Service Status monitor.
# Verify that the service is running.
# It requires a parameter: service name. For example, sshd.
# [service]
# service_status.param = sshd

要传递参数,必须将以下内容添加到sma.ini

[service]
service_status.param = sshd

要监视多个服务:

[service]
service_status(sshd).param = sshd
service_status(ntpd).param = ntpd

调试

您可以测试运行它们的监视器:

$ /etc/simple-monitor-alert/monitors-available/mdadm.sh
mdadm(md0).name = 'Mdadm /dev/md0'
mdadm(md0).expected = 0
mdadm(md0).value = 0

您还可以运行sma并查看结果:

$ sma
2016-05-03 00:28:14,972 - sma - INFO    - Trigger: [success] (mdadm) mdadm(md0). Result: 0 == 0
2016-05-03 00:28:14,990 - sma - INFO    - Trigger: [success] (system) ram. Result: 32.1427 <= 85
2016-05-03 00:28:14,990 - sma - INFO    - Trigger: [success] (system) cpu. Result: 9.57627 <= 80
2016-05-03 00:28:15,156 - sma - WARNING - Trigger: [warning] (hdds) pcnt_use(sdc1). Assertion 98 <= 80 failed.
Extra info: Space: 23G/25G
2016-05-03 00:28:15,157 - sma - WARNING - Trigger: [warning] (hdds) pcnt_use(md0). Assertion 100 <= 80 failed.
Extra info: Space: 5,4T/5,5T

要测试您可以使用的警报:

$ sma alerts --test

我的第一个监视器

SMA通过检查监视器脚本的输出来工作。监视器可以观察到。每个可观测到的有两个主要的 部分:期望值和获得的值:

observable1.expected = yes
observable1.value = yes
observable2.expected = yes
observable2.value = no

在这个例子中,第一个观测值是好的,第二个是有误差的。你的程序应该返回一些 类似的。下面的示例检查文件是否存在:

#!/usr/bin/env bash
echo "file_exists.expected = yes"
if [ -f "/path/to/file" ]; then value="yes"; else value="no"; fi
echo "file_exists.value = $value"

输出:

$ /etc/simple-monitor-alert/monitors-available/example-1.sh
file_exists.expected = yes
file_exists.value = no

有更多的监视器选项,比如获取参数。有关更多信息,请参阅文档。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用if语句和单选按钮在Jlabel上显示文本   java Liquibase:如何识别仅变更集基础ID?   区分Java对象   java以编程方式禁止windows请求对windows的注意   我可以在excel单元格中输入Java格式的日期吗?   java用流替换for循环中的递归   java返回字符串的格式类似于信用卡号   java Android Facebook登录和Webview   安卓中java将ArrayList<String>从活动传递到片段   java Apache OpenNLP POSModel(URL)构造函数   java Android如何从sd卡动态查看图像?我的代码出错了   java Testng测试特定的异常消息   java更改spring boot&maven项目的默认目录结构   java如何将日期从yyyyMMdd格式化为yyMMdd   java在Eclipse生成的列表片段中使用XML资源   java Spark临时表不以直线显示