qiufang / shellMonitor

一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

shellMonitor

一个 Linux 下基于 bash 的文件和数据库监控及备份工具。

写这个工具的原因,在于一个朋友的一个小电商网站,因为未明原因被黑了,总是会被增加超级管理员,并将收款账号改成别人的。于是有了写一个监控工具的想法。

主要功能

监控功能

  • 文件监控:主要监控网站文件,可以监控多个网站目录,也可以在配置中将 NginxPHPMySQL 等的配置文件也添加到监控中;
  • 数据库监控:可以监控指定数据库中的指定数据表;也可以对指定的表指定字段做监控;
  • 数据库备份:设定的数据库全量傻瓜式备份,无监控功能;

报警功能

  • 微信报警:设置好相关的微信公众号参数后,监控到改变会发送微信模板通知;
  • 邮件通知:详细的改变内容会通过邮件发送;

如果没有微信公众号、或者没有做认证,模版消息有限制,可以申请微信公众平台接口测试账号

使用方式

  • 克隆项目
git clone https://github.com/zsenliao/shellMonitor.git
  • 设置权限
chown -R root:root shellMonitor  #  建议在 root 权限下操作
chmod +x shellMonitor/*.sh  # 添加执行权限
  • 修改配置
vi shellMonitor/config.sh  # 根据提示修改相关的配置
  • 初始化
shellMonitor/main.sh init
  • 设置系统定时任务
crontab -e  # 进入vi编辑模式
*/5 * * * * /home/shellMonitor/main.sh  # 每 5 分钟执行一次备份脚本

或者直接执行以下操作:

echo "*/5 * * * * /home/shellMonitor/main.sh" >> /var/spool/cron/root

注意:以上的 /home/shellMonitor/main.sh 是示例,实际环境中要根据本工具所在的目录来更改。

TODO

  • 将设定系统任务添加到初始化任务中
  • 监控文件或数据库设置错误情况下的异常处理
  • 如邮件通知方式选择 mutt 但系统中并没有安装改工具下的处理
  • 增加 SSHSFTP 登录的预警通知

相关说明及风险提示

  • 本工具可作为一些个人网站,或一些小微电商类型网站做入侵检测工具用,毕竟小微团队在系统运维及安全方面的投入基弧没有;
  • 对于具备资源的团队,还是需要从运维策略上来考虑安全风险防范的问题;
  • 本工具对于系统资源的消耗,并未经测试过;不过我认为目前一般商用的服务器配置,即便是小团队的电商网站的服务器配置,都经得起这点消耗吧;
  • 如果您使用了本工具,也请不要完全依赖本工具。如有条件,想办法做系统层面、数据库层面、代码层面的加固;如条件实在不足,也请多关注您系统的异常状况。

About

一个 Linux 下基于 Bash 的文件和数据库监控及备份工具,可发送微信报警通知

License:MIT License


Languages

Language:Shell 100.0%