Prometheus
跳转到导航
跳转到搜索
Prometheus是一个TSDB。
概要
Prometheus本身是一个TSDB(Time series database),会主动到目标机器上搜集资料后写入资料库,另外Prometheus可以设定警示条件送进Alertmanager,由Alertmanager送到外部服务通知(像是Slack,或是PagerDuty)。
安装
Ubuntu 20.04系统内的Prometheus太旧(2.15),加上没有适合的PPA可以用,这边使用官方的binary安装:
export PROMETHEUS_VERSION=2.45.0; cd /tmp; wget https://github.com/prometheus/prometheus/releases/download/v${PROMETHEUS_VERSION}/prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz; tar xvf prometheus-${PROMETHEUS_VERSION}.linux-amd64.tar.gz; cd prometheus-${PROMETHEUS_VERSION}.linux-amd64; sudo cp -f prometheus promtool /usr/bin; sudo mkdir /etc/prometheus; sudo cp prometheus.yml /etc/prometheus/; sudo cp -R consoles/ console_libraries/ /etc/prometheus/; sudo useradd -r -U prometheus; sudo mkdir /var/lib/prometheus; sudo chown prometheus:prometheus /var/lib/prometheus; echo -e "[Unit]\nDescription=Prometheus Time Series Collection and Processing Server\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nUser=prometheus\nGroup=prometheus\nType=simple\nExecStart=/usr/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries\n\n[Install]\nWantedBy=multi-user.target" | sudo tee /lib/systemd/system/prometheus.service; sudo systemctl daemon-reload; sudo systemctl enable prometheus; sudo service prometheus start
另外一起装Alertmanager:
export ALERTMANAGER_VERSION=0.25.0; cd /tmp; wget https://github.com/prometheus/alertmanager/releases/download/v${ALERTMANAGER_VERSION}/alertmanager-${ALERTMANAGER_VERSION}.linux-amd64.tar.gz; tar xvf alertmanager-${ALERTMANAGER_VERSION}.linux-amd64.tar.gz; cd alertmanager-${ALERTMANAGER_VERSION}.linux-amd64; sudo cp -f alertmanager amtool /usr/bin; sudo mkdir /etc/amtool /var/lib/alertmanager; sudo chown prometheus:prometheus /var/lib/alertmanager; sudo cp alertmanager.yml /etc/amtool; echo -e "[Unit]\nDescription=Prometheus Alertmanager\nWants=network-online.target\nAfter=network-online.target\n\n[Service]\nUser=prometheus\nGroup=prometheus\nType=simple\nExecStart=/usr/bin/alertmanager --config.file /etc/amtool/alertmanager.yml --storage.path /var/lib/alertmanager\n\n[Install]\nWantedBy=multi-user.target" | sudo tee /lib/systemd/system/alertmanager.service; sudo systemctl daemon-reload; sudo systemctl enable alertmanager; sudo service alertmanager start
在Ubuntu内有内建blackbox-exporter,可以拿来监控HTTP或是SSH:
sudo apt install -y prometheus-blackbox-exporter; sudo apt clean
设定
要注意官方安装档内的prometheus.yml
中scrape_interval
与evaluation_interval
预设是15s
(但不设定时预设是1m
),正常情况下5m
应该是够用,可以考虑指定5m
降低频率。
Query
基本上一定会有的:
node_cpu_seconds_total
相关连结
外部连结
- 官方网站 (英文)