工具 & 效率12 分钟阅读
Prometheus 运维命令 100 条
本文整理 Prometheus 3.x 常用的 100 条启动、配置校验、PromQL、HTTP API、规则、TSDB 和部署排障命令。示例服务地址为 http://127.0.0.1:9090,配置目录为 /etc/prometheus。
2026年8月7日阅读—点赞—收藏—
dba100prometheus墨力计划
在知识库中专注阅读,并随时返回相关工具与课程
本文整理 Prometheus 3.x 常用的 100 条启动、配置校验、PromQL、HTTP API、规则、TSDB 和部署排障命令。示例服务地址为 http://127.0.0.1:9090,配置目录为 /etc/prometheus。
本文整理 Prometheus 3.x 常用的 100 条启动、配置校验、PromQL、HTTP API、规则、TSDB 和部署排障命令。示例服务地址为 http://127.0.0.1:9090,配置目录为 /etc/prometheus。
执行 TSDB 删除、快照、配置热加载或生产查询前,应确认认证、保留策略和资源影响。PromQL 中的指标名与标签需替换为实际环境值。
1prometheus --version1prometheus --help1prometheus --config.file=/etc/prometheus/prometheus.yml1prometheus --storage.tsdb.path=/data/prometheus1prometheus --storage.tsdb.retention.time=30d1prometheus --storage.tsdb.retention.size=200GB1prometheus --web.listen-address=0.0.0.0:90901prometheus --web.external-url=https://prom.example.com/1prometheus --web.enable-lifecycle1prometheus --log.level=debug1promtool --version1promtool check config /etc/prometheus/prometheus.yml1promtool check config --syntax-only /etc/prometheus/prometheus.yml1promtool check config --lint-fatal /etc/prometheus/prometheus.yml1promtool check rules /etc/prometheus/rules/*.yml1promtool check web-config /etc/prometheus/web.yml1promtool check service-discovery --timeout=30s /etc/prometheus/prometheus.yml node1promtool test rules tests/rules_test.yml1promtool promql format 'sum(rate(http_requests_total[5m])) by (job)'1promtool promql label-matchers set 'up{job="node"}' 'cluster="prod"'1promtool check healthy --url=http://127.0.0.1:90901promtool check ready --url=http://127.0.0.1:90901curl -fsS http://127.0.0.1:9090/-/healthy1curl -fsS http://127.0.0.1:9090/-/ready1curl -s http://127.0.0.1:9090/api/v1/status/runtimeinfo | jq1curl -s http://127.0.0.1:9090/api/v1/status/buildinfo | jq1curl -s http://127.0.0.1:9090/api/v1/status/config | jq -r '.data.yaml'1curl -s http://127.0.0.1:9090/api/v1/status/flags | jq1curl -s http://127.0.0.1:9090/api/v1/status/tsdb | jq1curl -fsS -X POST http://127.0.0.1:9090/-/reload仅在启用 --web.enable-lifecycle 后可用。
1curl -s 'http://127.0.0.1:9090/api/v1/targets?state=active' | jq1curl -s 'http://127.0.0.1:9090/api/v1/targets?state=active' | jq '.data.activeTargets[] | select(.health!="up")'1curl -s http://127.0.0.1:9090/api/v1/targets/metadata | jq1curl -s http://127.0.0.1:9090/api/v1/targets | jq '.data.activeTargets[].discoveredLabels'1curl -s 'http://127.0.0.1:9090/api/v1/metadata?metric=up' | jq1curl -s http://127.0.0.1:9090/api/v1/labels | jq1curl -s http://127.0.0.1:9090/api/v1/label/job/values | jq1curl -sG http://127.0.0.1:9090/api/v1/series --data-urlencode 'match[]=up{job="node"}' | jq1scrape_duration_seconds1scrape_samples_scraped1promtool query instant http://127.0.0.1:9090 'up'1promtool query instant http://127.0.0.1:9090 'up{job="node"}'1sum(up)1sum by (job) (up == 0)1sum by (job) (rate(http_requests_total[5m]))1sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))1100 * (1 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])))1100 * (1 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)1100 * (1 - node_filesystem_avail_bytes{fstype!~"tmpfs|overlay"} / node_filesystem_size_bytes)1topk(10, rate(http_requests_total[5m]))1promtool query range --start='2026-07-27T00:00:00Z' --end='2026-07-27T01:00:00Z' --step=1m http://127.0.0.1:9090 'up'1curl -sG http://127.0.0.1:9090/api/v1/query --data-urlencode 'query=sum(up)' | jq1curl -sG http://127.0.0.1:9090/api/v1/query --data-urlencode 'query=up' --data-urlencode 'time=2026-07-27T00:00:00Z' | jq1curl -sG http://127.0.0.1:9090/api/v1/query_range --data-urlencode 'query=up' --data-urlencode 'start=2026-07-27T00:00:00Z' --data-urlencode 'end=2026-07-27T01:00:00Z' --data-urlencode 'step=60s' | jq1predict_linear(node_filesystem_avail_bytes[6h], 24 * 3600)1histogram_quantile(0.95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))1increase(http_requests_total[1h])1changes(process_start_time_seconds[1h])1last_over_time(up[10m])1absent(up{job="node"})1curl -s http://127.0.0.1:9090/api/v1/rules | jq1curl -s 'http://127.0.0.1:9090/api/v1/rules?type=alert' | jq1curl -s 'http://127.0.0.1:9090/api/v1/rules?type=record' | jq1curl -s http://127.0.0.1:9090/api/v1/alerts | jq1curl -s http://127.0.0.1:9090/api/v1/alerts | jq '.data.alerts[] | select(.state=="firing")'1promtool debug all --host=http://127.0.0.1:90901promtool test rules --help1prometheus_rule_evaluation_failures_total1prometheus_rule_group_last_duration_seconds1prometheus_notifications_alertmanagers_discovered1promtool tsdb analyze /data/prometheus1promtool tsdb analyze /data/prometheus 01JXXXXXXXXXXXX1promtool tsdb list /data/prometheus1promtool tsdb create-blocks-from openmetrics metrics.txt /data/import1promtool tsdb create-blocks-from rules --start=2026-07-26T00:00:00Z --end=2026-07-27T00:00:00Z http://127.0.0.1:9090 rules.yml1curl -fsS -X POST 'http://127.0.0.1:9090/api/v1/admin/tsdb/snapshot?skip_head=false' | jq1curl -fsS -X POST -G http://127.0.0.1:9090/api/v1/admin/tsdb/delete_series --data-urlencode 'match[]={job="test"}'1curl -fsS -X POST http://127.0.0.1:9090/api/v1/admin/tsdb/clean_tombstones1prometheus_tsdb_head_series1journalctl -u prometheus | grep -Ei 'wal|corrupt|repair'1systemctl status prometheus --no-pager1journalctl -u prometheus -n 200 --no-pager1sudo systemctl restart prometheus1pgrep -af prometheus1ss -lntp '( sport = :9090 )'1docker run -d --name prometheus -p 9090:9090 -v "$PWD/prometheus.yml:/etc/prometheus/prometheus.yml:ro" prom/prometheus1docker logs --tail 200 prometheus1kubectl -n monitoring get pods -l app.kubernetes.io/name=prometheus -o wide1kubectl -n monitoring port-forward svc/prometheus 9090:90901kubectl -n monitoring logs -l app.kubernetes.io/name=prometheus --tail=2001prometheus_config_last_reload_successful1prometheus_config_last_reload_success_timestamp_seconds1prometheus_engine_queries1prometheus_engine_queries_concurrent_max1increase(prometheus_target_scrapes_exceeded_sample_limit_total[1h])1rate(prometheus_tsdb_head_samples_appended_total[5m])1process_resident_memory_bytes{job="prometheus"}1go_goroutines{job="prometheus"}1histogram_quantile(0.99, sum by (le) (rate(prometheus_http_request_duration_seconds_bucket[5m])))1promtool debug all --host=http://127.0.0.1:9090 --output=prometheus-debug.tar.gzPrometheus 运维应围绕配置校验、目标健康、规则正确性、查询成本和 TSDB 容量展开。管理 API 默认不应暴露到公网,删除序列和清理墓碑必须先备份并确认匹配范围。