# files_update_status_exporter **Repository Path**: tensorflow/files_update_status_exporter ## Basic Information - **Project Name**: files_update_status_exporter - **Description**: Prometheus监控客户端 检查指定文件上次更新时间到检查时间的差值 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-13 - **Last Updated**: 2022-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # files_update_status_exporter #### 介绍 Prometheus监控客户端 检查指定文件上次更新时间到检查时间的差值 适用场景: 监控日志文件是否更新 检查不应该更新的文件是否更新 #### 软件架构 flask + prometheus_client + gunicorn #### 安装教程 1. 打包部署 ``` # python3环境 # 安装依赖 pip3 install -r requirements.txt # 打包生成可执行文件(windows暂不支持: 需要微改gunicorn) pyinstaller -F startup.py -n customize_exporter --hidden-import gunicorn.glogging --hidden-import gunicorn.workers.sync ``` 1. 直接部署到服务器 ``` # 上传到执行目录 # 设置监听 (默认值:0.0.0.0:9123) export CHECK_FILE_EXPORTER_BIND="0.0.0.0:8090" # 设置日志文件 # 默认值(./access.log) export CHECK_FILE_EXPORTER_ACCESSLOG="./wy.log" # 默认值(./error.log) export CHECK_FILE_EXPORTER_ERRORLOG="./wy.error.log" # 设置需要监控的文件和主机 # 默认值(./main.py) export CHECK_FILE_EXPORTER_FILE_NAMES="./test.py,./README2.md" # 默认值(localhost) export CHECK_FILE_EXPORTER_HOST_IP="192.168.1.1" # 启动执行 ./customize_exporter ``` 1. 部署成systemctl模式 ``` # 上传打包好的文件customize_exporter mkdir -p /usr/local/customize_exporter cp customize_exporter.service /etc/systemd/system/customize_exporter.service systemctl daemon-reload systemctl start customize_exporter ``` #### 使用说明 1. 在Prometheus.xml中添加新job配置 ``` #----------------- 文件更新检查监控 - job_name: 'check files updated time' scrape_interval: 60s static_configs: - targets: - 10.0.2.7:8090 - 10.0.2.20:8090 ``` 2. 默认访问:http://yourhosts:8090/metrics ``` # HELP file_updated_time file_updated_time # TYPE file_updated_time gauge file_updated_time{exporter_name="check_file_exporter",file_name="/tmp",host_ip="1.1.1.1"} 223.0 file_updated_time{exporter_name="check_file_exporter",file_name="/etc/passwd",host_ip="1.1.1.1"} 5.0 ``` 3. 配置grafana 导入文件:file_updated_checking.json