摘要:
记录prometheus监控-源码编译启动与配置
代码仓库:
依赖:
go version go1.19.2 linux/amd64
yum install -y npm yamllint bzip2
编译:
#!/bin/bash
go env -w GOPROXY=https://goproxy.cn,direct
npm config set registry https://registry.npm.taobao.org/
chmod +x scripts/*.sh
cd web/ui
npm update
npm install
cd -
cd web/ui/react-app
npm update
npm install
cd -
go mod tidy
go mod download
go mod vendor
make npm_licenses
make build
# make prometheus
# make promtool
配置文件:
- 每个job_name是一个监听项
- 此处仅以sdm_master为例
-
targets配置的是对应服务的/metrics的ip:port
-
对应的 http://ip:port/metrics 返回的数据必须遵守普罗米修斯的格式的协议
---
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
evaluation_interval: 15s # By default, scrape targets every 15 seconds.
external_labels:
cluster: 'dm-sdm'
monitor: "prometheus"
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
rule_files:
- 'dm_worker.rules.yml'
alerting:
alertmanagers:
- static_configs:
- targets:
- '192.168.75.149:9093'
scrape_configs:
- job_name: "overwritten-nodes"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets:
- job_name: "tidb"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets:
- job_name: "tikv"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets:
- job_name: "pd"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets:
- job_name: "tidb_port_probe"
scrape_interval: 30s
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
labels:
group: 'tidb'
- targets:
labels:
group: 'tikv'
- targets:
labels:
group: 'pd'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: ''
- job_name: "monitor_port_probe"
scrape_interval: 30s
metrics_path: /probe
params:
module: [tcp_connect]
static_configs:
- targets:
- '192.168.75.149:3000'
labels:
group: 'grafana'
- targets:
labels:
group: 'node_exporter'
- targets:
labels:
group: 'blackbox_exporter'
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: ''
- job_name: "sdm_master"
honor_labels: true # don't overwrite job & instance labels
static_configs:
- targets:
- '192.168.75.149:8261'
启动:
#!/bin/bash
pkill prometheus
sleep 1s
exec > >(tee -i -a "./logs/prometheus.log")
exec 2>&1
exec ./prometheus \
--config.file="./conf/prometheus.yml" \
--web.listen-address=":9090" \
--web.external-url="http://192.168.30.40:9090/" \
--web.enable-admin-api \
--log.level="info" \
--storage.tsdb.path="./data/" \
--storage.tsdb.retention="30d" &
对应的浏览器访问地址:
http://192.168.75.149:9090/