常用指标采集 exporter
1. MySQL
https://github.com/prometheus/mysqld_exporter
可用性
表示MySQL实例是否已停机 mysql_up
表示数据库正常运行的时长,通常使用该指标配置告警,监控运行少于半小时的MySQL实例mysql_global_status_uptime
数据库连接
连接错误是数据库中的主要错误之一,通过该指标可以查看到具体连接错误信息以及错误连接次数。mysql_global_status_connection_errors_total
MySQL实例请求已经连接的线程数。mysql_global_status_threads_connected
MySQL实例请求运行中的线程数。mysql_global_status_threads_running
MySQL实例最大连接记录统计。mysql_global_status_max_used_connections
MySQL实例的最大连接数,若超过该连接数之后有新的请求到来,就会拒绝连接。mysql_global_variables_max_connections
异常中断的连接(尝试连接)。mysql_global_status_aborted_connects
异常中断的连接(超时)。mysql_global_status_aborted_clients
查询
MySQL实例慢查询统计 mysql_global_status_slow_queries
MySQL实例当前查询QPS mysql_global_status_queries
流量
入站流量 mysql_global_status_bytes_received
出站流量 mysql_global_status_bytes_sent
文件
正在打开的文件统计 mysql_global_status_opened_files
MySQL已经打开的文件统计 mysql_global_status_open_files
允许打开的文件统计 mysql_global_variables_open_files_limit
Innodb打开的文件统计 mysql_global_status_innodb_num_open_files
https://blog.csdn.net/qq_31555951/article/details/109496622
https://help.aliyun.com/zh/prometheus/use-cases/monitor-mysql-databases
2. Redis
https://github.com/oliver006/redis_exporter
Redis实例是否可用 redis_up
连接的客户端数 redis_connected_clients
内存使用率 100 * (redis_memory_used_bytes / redis_memory_max_bytes )
命令执行QPS rate(redis_commands_processed_total[1m])
cache命中QPS irate(redis_keyspace_hits_total[5m])
cache未命中QPS irate(redis_keyspace_misses_total[5m])
网络入流量 rate(redis_net_input_bytes_total[5m])
网络出流量 rate(redis_net_output_bytes_total[5m])
db中的key数量 sum(redis_db_keys) by (db)
db中的过期key数量 sum(redis_db_keys_expiring) by (db)
每一种命令的QPS topk(5, irate(redis_commands_total[1m]))
3. MongoDB
https://github.com/percona/mongodb_exporter
https://github.com/raffis/mongodb-query-exporter
服务器是否在线 mongodb_up
客户端连接数 mongodb_ss_connections{conn_type=“current”}
collection 全部文档的体积,单位 bytes mongodb_collstats_storageStats_size
collection 读操作的数量(每分钟) delta(mongodb_collstats_latencyStats_reads_ops[1m])
collection 读操作的延迟(每分钟),单位为微秒 delta(mongodb_collstats_latencyStats_reads_latency[1m])
collection 的 index 数量 mongodb_collstats_storageStats_nindexes
collection 的 index 占用的磁盘空间 mongodb_collstats_storageStats_totalIndexSize
https://www.cnblogs.com/yangmeichong/p/18156069
4. Kafka
https://github.com/danielqsj/kafka_exporter
https://github.com/prometheus/jmx_exporter
https://cloud.tencent.com/document/product/1416/111833
https://developer.aliyun.com/article/1578308
5. elasticsearch
https://github.com/prometheus-community/elasticsearch_exporter
https://www.cnblogs.com/qianyuliang/p/15410892.html
https://cloud.tencent.com/developer/article/1765046
集群健康和节点可用性
集群状态,green( 所有的主分片和副本分片都正常运行)、yellow(所有的主分片都正常运行,但不是所有的副本分片都正常运行)red(有主分片没能正常运行) elasticsearch_cluster_health_status
集群节点数/数据节点数 elasticsearch_cluster_health_number_of_nodes
活跃的主分片总数 elasticsearch_cluster_health_active_primary_shards
活跃的分片总数(包括复制分片) elasticsearch_cluster_health_active_shards
当前节点正在迁移到其他节点的分片数量,通常为0,集群中有节点新加入或者退出时该值会增加 elasticsearch_cluster_health_relocating_shards
正在初始化的分片 elasticsearch_cluster_health_initializing_shards
未分配的分片数,通常为0,当有节点的副本分片丢失该值会增加 elasticsearch_cluster_health_unassigned_shards
只有主节点能处理集群级元数据的更改(创建索引,更新映射,分配分片等),通过pending-tasks API可以查看队列中等待的任务,绝大部分情况下元数据更改的队列基本上保持为零 elasticsearch_cluster_health_number_of_pending_tasks
主机级别的系统和网络指标
CPU使用率 elasticsearch_process_cpu_percent
磁盘可用空间 elasticsearch_filesystem_data_free_bytes
ES进程打开的文件描述符 elasticsearch_process_open_files_count
ES节点之间网络入流量 elasticsearch_transport_rx_packets_total
ES节点之间网络出流量 elasticsearch_transport_tx_packets_total
JVM内存和垃圾回收
垃圾搜集数 elasticsearch_jvm_gc_collection_seconds_count
垃圾回收时间 elasticsearch_jvm_gc_collection_seconds_sum
最大使用内存限制 elasticsearch_jvm_memory_committed_bytes
内存使用量 elasticsearch_jvm_memory_used_bytes
6. Zookeeper
#比较老旧不推荐
https://github.com/dabealu/zookeeper-exporter
https://github.com/carlpett/zookeeper_exporter/
#jmx方式
https://github.com/prometheus/jmx_exporter/blob/main/example_configs/zookeeper.yaml
https://bbs.huaweicloud.com/blogs/166278
为了更加方便的集成prometheus,建议使用3.6.0以后的版本,因为这个版本以后zookeeper加入了prometheus集成监控,只需要开启zookeeper的指标配置即可。在这个版本之前的zookeeper,可能需要通过JMX进行监控。
启用以下三个属性值即可
##Metrics Providers
#https://prometheus.io Metrics Exporter
metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpPort=7000
metricsProvider.exportJvmInfo=true
7. Nginx
https://github.com/nginxinc/nginx-prometheus-exporter/
https://cloud.tencent.com/document/product/1416/111838
存活状态1正常 0异常 nginx_up
nginx已接受的连接 nginx_connections_accepted
nginx连接活动数 nginx_connections_active
nginx已处理的连接 nginx_connections_handled
nginx连接_读取 nginx_connections_reading
nginx连接_等待 nginx_connections_waiting
nginx连接_写入 nginx_connections_writing
nginx请求总数 nginx_http_requests_total
8. k8s集群node-exporter
https://github.com/prometheus/node_exporter
cpu、内存相关的指标
过去 1 分钟的系统平均负载 node_load1
系统总内存量(以字节为单位) node_memory_MemTotal_bytes
系统当前可用的内存量(以字节为单位) node_memory_MemAvailable_bytes
系统缓存使用的内存(以字节为单位) node_memory_Cached_bytes
用于缓冲使用的内存(以字节为单位) node_memory_Buffers_bytes
计算可用内存百分比 node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100
计算已用内存百分比 (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes *100
磁盘相关指标
文件系统大小(以字节为单位) node_filesystem_size_bytes
文件系统可用空间(以字节为单位 ) node_filesystem_avail_bytes
计算可用空间百分比 node_filesystem_avail_bytes / node_filesystem_size_bytes * 100
计算已用空间百分比 (node_filesystem_size_bytes - node_filesystem_avail_bytes ) / node_filesystem_size_bytes * 100
磁盘IO吞吐量相关核心指标
从给定设备读取的总字节数。(以字节为单位)。(使用irate可以得到每秒写入大小) node_disk_read_bytes_total
向给定设备写入的总字节数 node_disk_written_bytes_total
磁盘IOPS相关核心指标
磁盘设备完成的读操作总数。(使用irate可以得到每秒读操作的平均数) node_disk_reads_completed_total
磁盘设备完成的写操作总数。(使用irate可以得到每秒读操作的平均数) node_disk_writes_completed_total
网络核心指标
网络接口接收到的总字节数。(以字节为单位) node_network_receive_bytes_total
网络接口发送出去的总字节数。(以字节为单位) node_network_transmit_bytes_total
连接追踪核心指标
系统正在跟踪的网络连接的数量。这包括所有类型的连接,例如 TCP, UDP、ICMP等node_nf_conntrack_entries
系统conntrack 能够跟踪的网络连接的最大数量node_nf_conntrack_entries_limit
TCP与其他相关指标
当前已断开的TCP连接数node_tcp_connection_states{state=“time_wait”}
当前建立的TCP连接数node_tcp_connection_states{state=“established”}
https://www.volcengine.com/docs/6731/189369