Linux: Prometheus-exporter
- TAGS: Linux
https://prometheus.io/docs/instrumenting/exporters/
指标导出器一些应用现实
数据库
MySQL server exporter
https://github.com/prometheus/mysqld_exporter
数据库授权
CREATE USER 'mysqld_exporter'@'%' IDENTIFIED BY 'hIhO6h_j(azn=F17' WITH MAX_USER_CONNECTIONS 10; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysqld_exporter'@'%'; flush privileges;
准备配置文件
cat <<\EOF> .my.cnf [client] user=xxx password=xxxxx [client.servers] user=mysqld_exporter password=hIhO6h_j(azn=F17 EOF
启动
cat <<\EOF> docker-compose.yml volumes: networks: vm_net: name: vm_net driver: bridge ipam: config: - subnet: 172.26.0.0/24 services: mysqld_exporter: image: prom/mysqld-exporter:v0.15.1 hostname: mysqld-exporter container_name: mysqld_exporter ports: - 9104:9104 command: - "--config.my-cnf=/opt/my.cnf" volumes: - .my.cnf:/opt/my.cnf #restart: always networks: - vm_net EOF
验证:
curl 'http://localhost:9104/probe?auth_module=client.servers&target=pc-txxx.mysql.polardb.singapore.rds.aliyuncs.com:3306' | grep mysql_version_info
pormetheus集成
- job_name: mysql
metrics_path: /probe
params:
auth_module: [client.servers]
static_configs:
- targets:
- xx:3306
labels:
project: mysql-test
- targets:
- 47.xxx:3306
labels:
project: mysql-test2
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
# The mysqld_exporter host:port
replacement: 172.xxx:9104
Redis exporter
https://github.com/oliver006/redis_exporter
准备密码文件
cat <<\EOF> redis-pwd-file { "redis://redis6:6379": "", "rediss://replica.redixxxx.com:6379": "tKZyvtON547IfnhX" } EOF
启动redis-exporter
cat <<\EOF> docker-compose.yml networks: vm_net: name: vm_net driver: bridge ipam: config: - subnet: 172.26.0.0/24 services: redis_exporter: image: oliver006/redis_exporter:v1.67.0 container_name: redis_exporter ports: - 9121:9121 command: - "--redis.password-file=/opt/sample-pwd-file.json" - '--debug' volumes: - ./redis-pwd-file:/opt/sample-pwd-file.json networks: - vm_net EOF
验证:
curl http://127.0.0.1:9121/scrape?target=redis://xxxx:6379
pormetheus集成
- job_name: redis-exporter
metrics_path: /scrape
static_configs:
- targets:
- redis://replica.redixxxx.com:6379
labels:
dbtype: "redis"
project: test
- targets:
- redis://xxx:6379
labels:
dbtype: "redis"
project: test2
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 172.xxx:9121
MongoDB exporter
https://github.com/percona/mongodb_exporter
启动redis-exporter
cat <<\EOF> docker-compose.yml networks: vm_net: name: vm_net driver: bridge ipam: config: - subnet: 172.26.0.0/24 services: mongodb-exporter: image: percona/mongodb_exporter:0.43 container_name: mongodb-exporter #environment: # MONGODB_URI: "mongodb://user:pass@host1:27017,host2:27017/admin" ports: - 9216:9216 command: - --mongodb.uri=mongodb://root:[email protected]:3717,dds-t4n9s.com:3717/admin?replicaSet=mgset-310035630,mongodb://root:dMrMPfSq0gNko14@dxxcom:3717,ddsxxx:3717/admin?replicaSet=mgset-310037394 - '--collect-all' - '--split-cluster=true' networks: - vm_net EOF
验证:
curl 127.0.0.1:9216/scrape?target=mongodb://ddsxxx:3717|grep mongodb_up
pormetheus集成
- job_name: mongodb-exporter
metrics_path: /scrape
static_configs:
- targets:
- mongodb://dxxx:3717
labels:
dbtype: "mongodb"
project: "测试1"
- targets:
- mongodb://ddxxx:3717
labels:
dbtype: "mongodb"
project: "测试2"
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 172.xxx:9216
硬件相关
问题跟踪器和持续集成
消息系统
RocketMQ exporter
https://github.com/apache/rocketmq-exporter
启动redis-exporter
cat <<\EOF> docker-compose.yml networks: vm_net: name: vm_net driver: bridge ipam: config: - subnet: 172.26.0.0/24 services: rocketmq-exporter: image: apache/rocketmq-exporter:0.0.2-SNAPSHOT container_name: rocketmq-exporter ports: - 5557:5557 entrypoint: - java - -jar - rocketmq-exporter.jar - --server.port=5557 - --rocketmq.config.namesrvAddr=127.0.0.1:9876 - --rocketmq.config.enableACL=true - --rocketmq.config.accessKey=C65GKxxxx - --rocketmq.config.secretKey=oqHc0xxxx deploy: resources: limits: cpus: '2' memory: 2048M reservations: cpus: '0.25' memory: 256M networks: - vm_net EOF
pormetheus集成
- job_name: rocketmq-exporter
static_configs:
- targets: ['172.xxx:5557']