# rancher-exporter **Repository Path**: pippozq/rancher-exporter ## Basic Information - **Project Name**: rancher-exporter - **Description**: 订阅rancher的事件,获取host,service状态变迁,向prometheus提供metric - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 6 - **Created**: 2018-07-04 - **Last Updated**: 2023-10-31 ## Categories & Tags **Categories**: containers **Tags**: None ## README # Rancher Exporter 1. 通过订阅rancher event 获取host,service状态变化写入redis 2. 从redis获取缓存的数据作为metric返回给prometheus 3. 支持多个rancher集群,采集的数据均获取uuid用于方式不同环境的重名服务 ## Docker 1. 容器内编译 ``` docker build -t rancher-exporter:1 . ``` 2. 本地编译放入容器 ``` docker build -t rancher-exporter:1 -f Dockerfile_busybox . ``` 3. docker运行 ``` docker run -p 19100:19100 -e "RANCHER_FILE=/conf/rancher.yml" -v /opt/rancher:/conf rancher-exporter:1 ``` ## 配置文件 1. 读取yaml文件 2. 支持环境变量和命令行参数传入conf.yml配置文件,命令行参数推荐宿主机使用,环境变量适用于docker 3. 如果采用docker部署,通过环境变量可直接注入只注入单个rancher环境,此时不注入RANCHER_FILE该环境变量,docker环境中rancher_env通过','分割 4. Docker服务的,针对一个rancher启动一个容器进行监控,可以采用在rancher中使用 [docker-compose.yml](https://gitee.com/pippozq/rancher-exporter/blob/master/docker-compose.yml) ### 配置文件环境变量 ``` RANCHER_FILE config/rancher.yml ``` ### 非配置文件 ``` RANCHER_ACCESS_KEY 3D87A1E60221EA6198E9 RANCHER_SECRET_KEY Ey7SoRS1fdXJyxLkYBGP3gR72WmbNux9SRv4XYuv RANCHER_URL http://192.168.3.40:8080 RANCHER_ENV "Default,test,staging,online" # 通过','分割,自动解析成列表 REDIS_HOST 192.168.3.40 REDIS_PORT 6379 REDIS_PASSWORD "redis" REDIS_DB 1 ``` ### 命令行参数传入 ``` ./rancher-exporter --rancher.file=config/rancher.yml ``` ### 命令行参数查看 ``` ./rancher-exporter -h ``` 3. rancher.yml 文件说明 支持列表传入 ``` redis_host: 192.168.3.40 # redis host redis_port: 6379 # redis port redis_password: "redis" # redis password,没有密码传入空string redis_db: 1 rancher_config: #支持多个rancher集群 - rancher_url: http://192.168.3.40:8080 #rancher url access_key: 3D87A1E60221EA6198E9 #access_key secret_key: Ey7SoRS1fdXJyxLkYBGP3gR72WmbNux9SRv4XYuv #secret_key rancher_env: # rancher 中的env,不会自动订阅全部env,需要手动指定,此处只是例子 - Default - Test - Staging - Online - Online1 - rancher_url: http://192.168.3.41:8080 #rancher url access_key: 3D87A1E6f22s1EA6198E9 #access_key secret_key: Ey7SoRS1fdbsfioefBGP3gR72WmbNux9SRv4XYuv #secret_key rancher_env: # rancher 中的env,不会自动订阅全部env,需要手动指定,此处只是例子 - Default - Test - Staging - Online - Online1 ``` ## Metrics 示例![image](https://gitee.com/pippozq/rancher-exporter/raw/master/doc/pic.ico) # License GNU General Public License v3.0