# luck-base-alert **Repository Path**: lwhou/luck-base-alert ## Basic Information - **Project Name**: luck-base-alert - **Description**: prometheus grafana告警服务 - **Primary Language**: Python - **License**: MIT - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-11 - **Last Updated**: 2024-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # luck-prometheus-grafana-alert # 介绍 告警平台服务 # 软件架构 ## 软件架构说明 - 项目名 - app - imgs 图片文件夹 - works Docker映射目录 - logs 日志文件夹 - LuckAlert.log 日志文件 - LuckAlert.db 数据库文件 - LuckAlertConfig.json 配置文件 - LuckDbMysqlHelperUtils.py MySQL数据库辅助类 - LuckDbSqliteHelperUtils.py Sqlite数据库辅助类 - LuckDingtalkService.py 钉钉逻辑服务层 - LuckAlertConstant.py 常量类 - LuckAlertMain.py 启动入口 - LuckAlertService.py 逻辑服务层 - requirements.txt 引用库管理文件 - LuckAlertMain.service Linux服务制作文件 - Dockerfile # 构建镜像文件 - README.md # 说明文件 # 安装教程 ## 1 准备工作 - 调整配置文件内容 打开LuckAlertConfig.json文件,调整下面的内容 ``` { "server_port": 5006, # 服务启动端口号 "basic_auth1": "admin", # 认证鉴权账号 "basic_auth2": "luckserver", # 认证鉴权密码 "dingtalk_agent_id": 804578772, # 钉钉ID "dingtalk_app_key": "dingkwmfrbsv0cencgb9", # 钉钉Key "dingtalk_app_secret": "_OVByoifueYAH0X6mAQjleWfgFhB0cfZ3v4MNgAHrfjYG-a_u4ULXbN9ujdpoVOe", # 钉钉密钥 "dingtalk_url": "http://10.10.10.166:32535", # 钉钉服务URL "dingtalk_url_basic_auth1": "admin", # 钉钉服务认证鉴权账号 "dingtalk_url_basic_auth2": "luckserver", # 钉钉服务认证鉴权密码 "dingtalk_robot_secret_1": "SEC108c2176b230090e8bede00717d04e8455aabb0fe5a747eddb42b17a1d385416", # 钉钉群机器人密钥 "dingtalk_robot_access_token_1": "7144ea46a2a09b877935eda8171c1e872e7ee0990fbf45b2e18d9927a3442ade", # 钉钉群机器人Token "dingtalk_robot_secret_2": "", "dingtalk_robot_access_token_2": "", "dingtalk_robot_secret_3": "", "dingtalk_robot_access_token_3": "" } ``` - 复制代码到服务器 示例目录:```/home/luckyun/luck-prometheus-grafana-alert``` ## 2 python3环境准备 ### 2.1 检测是否已安装python3 ```python3 --version``` python3安装成功,下面的步骤可忽略 ### 2.2 安装python3 - 安装Python的最新版本 ```sudo yum install python3``` - 安装完成之后,可以使用命令检测安装是否成功 ```python3 --version``` ### 2.3 设置python软链接 这里一般不需要设置,可以忽略。 >备注:如果需要设置python软链接,可按照下面的步骤操作 - 先删除默认的Python软链接: ```sudo rm -rf /usr/bin/python``` - 然后创建一个新的软链接指向需要的Python版本 ``` sudo ln -s /usr/bin/python3 /usr/bin/python sudo ln -s /usr/bin/pip3 /usr/bin/pip ``` - 如果想还原回原python2.7,不还原,下面的命令就不要执行 ``` sudo rm -rf /usr/bin/python sudo ln -s /usr/bin/ptyhon2.7 /usr/bin/python ``` ## 3 安装依赖 ### 3.1 使用命令安装依赖 ```pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple``` ### 3.2 安装不成功的,可以单独安装 psutil可能会安装不成功,这个时候不要着急,按照下面的步骤来操作 - 方案一 ``` 将psutil-5.9.6.tar.gz上传到对应的文件中 解压:tar zxvf psutil-5.9.6.tar.gz 进入目录:cd psutil-5.9.6 安装插件:yum -y install python-devel (如果提示缺少python.h头文件,执行此命令。) 安装psutil:python3 setup.py install ``` - 方案二(推荐此方案) - Ubuntu / Debian ``` sudo apt-get install gcc python3-dev pip install --no-binary :all: psutil ``` - RedHat / CentOS ``` sudo yum install gcc python3-devel pip install --no-binary :all: psutil ``` - Alpine ``` sudo apk add gcc python3-dev pip install --no-binary :all: psutil ``` ## 4 制作服务启动 ### 4.1 复制service文件至system目录下 将服务文件`LuckAlertMain.service`存放到下面的目录 `/etc/systemd/system` ### 4.2 服务文件变动,需要重新加载systemd配置,没有就不执行 ```sudo systemctl daemon-reload``` ### 4.3 启动服务 ```sudo systemctl start LuckAlertMain.service``` ### 4.4 检查服务的状态 ```sudo systemctl status LuckAlertMain.service``` ### 4.5 设置自动启动服务 ```sudo systemctl enable LuckAlertMain.service``` ### 4.6 停止服务 ```sudo systemctl stop LuckAlertMain.service``` ### 4.7 重启服务 ```sudo systemctl restart LuckAlertMain.service``` ## 5 开放端口号 按照下面的操作步骤执行命令: ``` firewall-cmd --permanent --add-port=5006/tcp firewall-cmd --reload ``` # 使用说明 1. 服务启动成功 2. 浏览器输入 http://127.0.0.1:5006/, 验证服务部署状态 >注意:127.0.0.1:5006要根据实际情况而定。 ``` { "code": 1, "data": ["/", "/check", "/createTable", "/deleteTable", "/dropTable"], "msg": "告警监控服务部署成功" } ``` 3. 浏览器输入 http://127.0.0.1:5006/check, 手动发送钉钉测试消息 >注意:127.0.0.1:5006要根据实际情况而定。 ``` { "code": 1, "msg": "手动调用成功" } ``` 4. 浏览器输入 http://127.0.0.1:5006/webhook, Webhook接口 >注意:127.0.0.1:5006要根据实际情况而定。 # 疑难杂症 ## 问题一 ## 问题二 # 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request # 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)