应用导出器 #
一、MySQL Exporter #
1.1 安装部署 #
bash
# Docker运行
docker run -d \
--name mysql-exporter \
-p 9104:9104 \
-e DATA_SOURCE_NAME="user:password@(mysql-host:3306)/" \
prom/mysqld-exporter
# 二进制安装
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
tar xvfz mysqld_exporter-0.15.0.linux-amd64.tar.gz
sudo mv mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter /usr/local/bin/
1.2 MySQL配置 #
sql
-- 创建监控用户
CREATE USER 'exporter'@'%' IDENTIFIED BY 'password';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
FLUSH PRIVILEGES;
1.3 常用指标 #
promql
# 连接数
mysql_global_status_threads_connected
# 最大连接数
mysql_global_variables_max_connections
# 连接使用率
mysql_global_status_threads_connected / mysql_global_variables_max_connections * 100
# 查询数
mysql_global_status_queries
# QPS
rate(mysql_global_status_queries[5m])
# 慢查询数
mysql_global_status_slow_queries
# 慢查询速率
rate(mysql_global_status_slow_queries[5m])
# 缓冲池大小
mysql_global_variables_innodb_buffer_pool_size
# 缓冲池使用
mysql_global_status_innodb_page_size * mysql_global_status_buffer_pool_pages_total
# 主从延迟
mysql_slave_status_seconds_behind_master
二、Redis Exporter #
2.1 安装部署 #
bash
# Docker运行
docker run -d \
--name redis-exporter \
-p 9121:9121 \
-e REDIS_ADDR="redis://redis-host:6379" \
oliver006/redis_exporter
# 带密码
docker run -d \
--name redis-exporter \
-p 9121:9121 \
-e REDIS_ADDR="redis://redis-host:6379" \
-e REDIS_PASSWORD="password" \
oliver006/redis_exporter
2.2 常用指标 #
promql
# 连接数
redis_connected_clients
# 最大连接数
redis_config_maxclients
# 内存使用
redis_memory_used_bytes
# 最大内存
redis_memory_max_bytes
# 内存使用率
redis_memory_used_bytes / redis_memory_max_bytes * 100
# 键数量
redis_db_keys
# 命令执行数
redis_commands_total
# 命令执行速率
rate(redis_commands_total[5m])
# 缓存命中率
rate(redis_keyspace_hits_total[5m]) / (rate(redis_keyspace_hits_total[5m]) + rate(redis_keyspace_misses_total[5m])) * 100
# 过期键数
redis_expired_keys_total
# 驱逐键数
redis_evicted_keys_total
# 复制偏移量
redis_replication_offset
三、PostgreSQL Exporter #
3.1 安装部署 #
bash
# Docker运行
docker run -d \
--name postgres-exporter \
-p 9187:9187 \
-e DATA_SOURCE_NAME="postgresql://user:password@postgres-host:5432/postgres?sslmode=disable" \
prometheuscommunity/postgres-exporter
3.2 常用指标 #
promql
# 连接数
pg_stat_activity_count
# 最大连接数
pg_settings_max_connections
# 连接使用率
pg_stat_activity_count / pg_settings_max_connections * 100
# 数据库大小
pg_database_size_bytes
# 事务数
pg_stat_database_xact_commit
# 事务速率
rate(pg_stat_database_xact_commit[5m])
# 死锁数
pg_stat_database_deadlocks
# 缓存命中率
pg_stat_database_blks_hit / (pg_stat_database_blks_hit + pg_stat_database_blks_read) * 100
# 复制延迟
pg_replication_lag_seconds
四、Nginx Exporter #
4.1 安装部署 #
bash
# Docker运行
docker run -d \
--name nginx-exporter \
-p 9113:9113 \
-e NGINX_STATUS_URI="http://nginx-host/nginx_status" \
nginx/nginx-prometheus-exporter
4.2 Nginx配置 #
nginx
# nginx.conf
server {
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
}
4.3 常用指标 #
promql
# 请求数
nginx_http_requests_total
# 请求速率
rate(nginx_http_requests_total[5m])
# 活跃连接数
nginx_connections_active
# 读取连接数
nginx_connections_reading
# 写入连接数
nginx_connections_writing
# 等待连接数
nginx_connections_waiting
# 接受连接数
nginx_connections_accepted
# 处理连接数
nginx_connections_handled
五、Kafka Exporter #
5.1 安装部署 #
bash
# Docker运行
docker run -d \
--name kafka-exporter \
-p 9308:9308 \
danielqsj/kafka-exporter \
--kafka.server=kafka-host:9092
5.2 常用指标 #
promql
# 分区数
kafka_topic_partition_count
# 副本数
kafka_topic_partition_replicas
# 消息数
kafka_topic_partition_current_offset
# 消费者组延迟
kafka_consumergroup_lag
# 消费者组成员数
kafka_consumergroup_members
# Broker数
kafka_brokers
六、Elasticsearch Exporter #
6.1 安装部署 #
bash
# Docker运行
docker run -d \
--name elasticsearch-exporter \
-p 9114:9114 \
-e ES_URI="http://elasticsearch-host:9200" \
quay.io/prometheuscommunity/elasticsearch-exporter
6.2 常用指标 #
promql
# 集群健康状态
elasticsearch_cluster_health_status
# 节点数
elasticsearch_cluster_health_number_of_nodes
# 数据节点数
elasticsearch_cluster_health_number_of_data_nodes
# 索引数
elasticsearch_indices_docs_total
# 索引大小
elasticsearch_indices_store_size_bytes_total
# 搜索请求数
elasticsearch_indices_search_query_total
# 搜索速率
rate(elasticsearch_indices_search_query_total[5m])
# JVM堆内存使用
elasticsearch_jvm_memory_used_bytes
# JVM堆内存最大
elasticsearch_jvm_memory_max_bytes
# JVM堆内存使用率
elasticsearch_jvm_memory_used_bytes{area="heap"} / elasticsearch_jvm_memory_max_bytes{area="heap"} * 100
七、总结 #
常用应用导出器:
| 导出器 | 端口 | 用途 |
|---|---|---|
| MySQL Exporter | 9104 | MySQL监控 |
| Redis Exporter | 9121 | Redis监控 |
| PostgreSQL Exporter | 9187 | PostgreSQL监控 |
| Nginx Exporter | 9113 | Nginx监控 |
| Kafka Exporter | 9308 | Kafka监控 |
| Elasticsearch Exporter | 9114 | ES监控 |
下一步,让我们学习自定义导出器!
最后更新:2026-03-27