浏览代码

修改.gitignore文件

root 4 年之前
父节点
当前提交
5f8aff42d6

+ 0 - 4
config/development_env/dingding.yml

@@ -1,4 +0,0 @@
-# 钉钉机器人配置文件
-
-webhook: 'https://oapi.dingtalk.com/robot/send?access_token=11532b3909549951f493087e873ae603fda52011940da33c2a33992a4674bb20'
-secret: 'SECf2d2b723c60120b1dcd66da866423e33977d1bda555124b00505067e8282b1e2'

+ 0 - 13
config/development_env/monitor.yml

@@ -1,13 +0,0 @@
-# 监控配置文件
-
-# 所监控的目录名称,目录下所有符合 filter 和 exclude的文件都自动加入supervisord管理器中
-'/root/project/yufei_supervisord/monitor_test':
-  # 需要后台执行的python脚本的解释器绝对路径
-  name: '本地测试'
-  executable: '/root/project/yufei_supervisord/venv/bin/python'
-  filter:  # 只匹配.py *.monitor.py后缀的文件
-    - '*.py'
-    - '*_monitor.py'
-  exclude:    # 排除以__, ex_开头的文件
-    - '__*'
-    - 'ex_*'

+ 0 - 7
config/development_env/redis.yml

@@ -1,7 +0,0 @@
-# redis配置信息
-
-connection:
-  host: '127.0.0.1'
-  port: 6379
-  db: 6
-  password: null

+ 0 - 4
config/production_env/dingding.yml

@@ -1,4 +0,0 @@
-# 钉钉机器人配置文件
-
-webhook: 'https://oapi.dingtalk.com/robot/send?access_token=11532b3909549951f493087e873ae603fda52011940da33c2a33992a4674bb20'
-secret: 'SECf2d2b723c60120b1dcd66da866423e33977d1bda555124b00505067e8282b1e2'

+ 0 - 3
config/production_env/monitor.yml

@@ -1,3 +0,0 @@
-# 监控配置文件
-
-

+ 0 - 7
config/production_env/redis.yml

@@ -1,7 +0,0 @@
-# redis配置信息
-
-connection:
-  host: '127.0.0.1'
-  port: 6379
-  db: 6
-  password: null

+ 0 - 1
config/run_mode

@@ -1 +0,0 @@
-development

+ 75 - 0
使用说明.txt

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