应用导出器 #

一、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