使用说明.txt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. 云飞监控
  2. 主程序:负责每分钟自动读取配置文件,将监控目录下符合要求的文件自动加入supervisor
  3. 异常警告事件监控脚本:supervisor程序异常中止时候自动发送异常警告消息到redis中
  4. 内置监控程序:
  5. redis监控:监控redis运行
  6. 钉钉推送:从redis中获取信息,并自动推送到钉钉
  7. 系统监控:监控服务器运行状态,内存,磁盘,每间隔1秒,自动存储到redis中
  8. 配置文件:
  9. 配置文件采用 ymal格式的文本文件
  10. development_env 测试环境配置文件目录
  11. production_env 正式环境配置文件目录
  12. 两个目录中的文件名称和格式都一致,如下
  13. monitor.yml 负责配置指定监控目录配置
  14. 格式如下:
  15. # 所监控的目录名称,目录下所有符合 filter 和 exclude规则的文件都自动加入supervisord管理器中
  16. '/root/project/yufei_supervisord/monitor_test':
  17. # 需要后台执行的python脚本的解释器绝对路径
  18. name: '本地测试' # 此参数必须存在
  19. executable: '/root/project/yufei_supervisord/venv/bin/python' # 此参数必须存在
  20. filter: # 只匹配.py *.monitor.py后缀的文件, 此参数必须存在
  21. - '*.py'
  22. - '*.monitor.py'
  23. exclude: # 排除以__, ex_开头的文件, 此参数为可选,可以不需要
  24. - '__*'
  25. - 'ex_*'
  26. redis.yml
  27. 负责配置redis相关配置
  28. 格式如下:
  29. connection:
  30. host: '127.0.0.1'
  31. port: 6379
  32. db: 6
  33. password: null # 没有密码填写 null
  34. dingding.yml
  35. 负责配置钉钉机器配置
  36. 格式如下:
  37. webhook: 'https://oapi.dingtalk.com/robot/send?access_token=11532b3909549951f493087e873ae603fda52011940da33c2a33992a4674bb20'
  38. secret: 'SECf2d2b723c60120b1dcd66da866423e33977d1bda555124b00505067e8282b1e2'
  39. 1. 首先需要安装redis数据库,配置文件存在/etc/redis.conf
  40. 如果已有redis,则需要停止已有redis,云飞监控将托管redis,负责监控redis的运行状态与异常自动重启
  41. redis负责存储需要推送到钉钉的消息
  42. redis库采用 默认采用6号数据库
  43. key名 数据类型 描述信息 需要跟随主题同时发送的系统监控信息。
  44. yf_dingding list 负责存储需要发送到钉钉的消息信息 储存内容为json.dump后的对象 {'content': '消息主体', 'monitor_list': ['disk', 'memory']}
  45. yf_sys_monitor hash 负责储存系统监控信息,其中 disk key名 表示 磁盘监控信息, memory key名 表示 内存监控信息
  46. 2. 在python虚拟环境中安装依赖库
  47. 3. 配置对应的配置文件
  48. development_env 测试环境配置文件目录
  49. production_env 正式环境配置文件目录
  50. 4. 查看使用帮助 python start.py --help
  51. 4. 使用刚才配置好的虚拟环境中的python运行start.py 启动监控
  52. 5. 需要推送到钉钉群的其他程序
  53. 其他程序如果需要推送钉钉群,只需要将需要推送的消息按照指定格式存入redis,即可实时推送。
  54. content : 消息主题
  55. monitor_list: 表示发送钉钉消息时候,自动获取对应的系统监控信息, 不需要的话可以填写 空列表 []
  56. disk 表示磁盘信息
  57. memory 表示内存信息
  58. 例如:
  59. content = {'content': '消息主体', 'monitor_list': ['disk', 'memory']}
  60. data = json.dumps(content)
  61. con = redis.Redis(host=host, port=port, db=db, password=password, decode_responses=True)
  62. con.rpush('yf_dingding', data)
  63. decode_responses=True 一定要开!!!!!