Prometheus
使用集群内 Prometheus 采集 Etcd 指标
· ☕ 1 分钟
1. 跳过证书校验无法获取监控 如果指标抓取时,能跳过 TLS 认证是最便捷的。其 Prometheus 的 ConfigMap 配置如下: 1 2 3 4 5 6 7 8 9 - job_name: etcd metrics_path: /metrics scheme: https tls_config: insecure_skip_verify: true static_configs: - targets: [ '1.1.1.1:2379' ] - targets: [ '2.2.2.2:2379' ] - targets: [ '3.3.3.3:2379' ] 但 Prometheus Targets 报错 Get "https://3.3.3.3:2379/metrics": remote error: tls: bad certificate 在 targets 页面的报错如下图: 2. curl 验证抓取请求 跳过证书 1 2 3 curl https://1.1.1.1:2379/metrics -k curl: (35)

如何估算 Prometheus 的本地存储和内存消耗
· ☕ 2 分钟
1. 本地存储容量 所需磁盘大小(GB) = 数据保留时长 * 每秒获取指标数量 * 指标数据大小 / 1024 / 1024 / 1024 其中 每秒获取指标数量 rate(prometheus_tsdb_head_samples_appended_total[1d]) 一个小时内样本的平均大小 rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1d])/rate(prometheus_tsdb_compaction_chunk_samples_sum[1d]) 一天(86400 秒)的磁盘消耗,可以在 Prometheus 中直接查询: 86400 * (rate(prometheus_tsdb_head_samples_appended_total[1d]) * (rate(prometheus_tsdb_compaction_chunk_size_bytes_sum[1d]) / rate(prometheus_tsdb_compaction_chunk_samples_sum[1d]))) / 1024 /1024 / 1024 例如,返回 {instance="localhost:9090", job="prometheus"} 4.437

常用的各类资源 Prometheus 告警语句
· ☕ 4 分钟
主机 主机内存使用率超过阈值 1 - node_memory_MemAvailable_bytes{mode!="idle"} / node_memory_MemTotal_bytes 阈值:0.9 主机 CPU 使用率超过阈值 1 - avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (host_name) 阈值:0.85 主机硬盘使用率超过阈值 1 - avg without (fstype)(node_filesystem_free_bytes{fstype!='rootfs',mountpoint!~'/(run|var|snap).*'} / node_filesystem_size_bytes{fstype!='rootfs',mountpoint!~'/(run|var|snap).*'}) 阈值:0.8 Windows Windows 主机内存使用率超过阈值 1 - 1 * windows_os_physical_memory_free_bytes{job="windows_exporter",mode!="idle"} / windows_cs_physical_memory_bytes 阈值:0.9 Windows 主机 CPU 使用率超过阈值 1 - (avg by (host_ip,host_name) (irate(windows_cpu_time_total{job="windows_exporter",mode="idle"}[1m]))) 阈值:0.85

使用 Thanos 集中管理多 Prometheus 实例数据
· ☕ 6 分钟
1. 监控的分层 如上图,在建设监控系统时,会采用两种策略: 分层监控。IaaS、MySQL 中间件、App 层监控分开的好处是,系统之间具有高可用性、容错性。当 App 层监控无法工作时,IaaS 层监控立马就会体现出来。 长短期指标分离。短期指标用来提供给告警