prometheus 是一套开源的系统监控报警框架。
Prometheus 生态圈中包含了多个组件,其中许多组件是可选的:
从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。它大致使用逻辑是这样:
服务端:https://prometheus.io/download/#prometheus
客户端:https://prometheus.io/download/#node_exporter
cd /usr/src/
wget https://github.com/prometheus/prometheus/releases/download/v2.31.1/prometheus-2.31.1.linux-amd64.tar.gz
tar -xf prometheus-2.31.1.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv prometheus-2.31.1.linux-amd64 prometheus
配置共分为三部分,分别是全局配置、告警配置、收集数据配置
vim /usr/local/prometheus/prometheus.yml
#全局配置
global:
scrape_interval: 15s #每隔15秒向目标抓取一次数,默认为一分钟
evaluation_interval: 15s #每隔15秒执行一次告警规则,默认为一分钟
# scrape_timeout: 600s #抓取数据的超时时间,默认为10s
#告警配置
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093 #alertmanager所部署机器的ip和端口
#定义告警规则和阈值的yml文件
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
#收集数据配置
#以下是Prometheus自身的一个配置.
scrape_configs:
#这个配置是表示在这个配置内的时间序例,每一条都会自动添加上这个{job_name:"prometheus"}的标签.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs: #静态配置
- targets: ["localhost:9090"]
#校验配置文件
/usr/local/prometheus/promtool check config ./prometheus.yml
#启动
/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml &
##启动参数介绍
--config.file #加载prometheus的配置文件
--web.listen-address #监听prometheus的web地址和端口
--web.enable-lifecycle #热启动参数,可以在不中断服务的情况下重启加载配置文件
--storage.tsdb.retention #数据持久化的时间
--storage.tsdb.path #数据持久化的保存路径
cat > /usr/lib/systemd/system/prometheus.service <
通过浏览器访问 http://IP:9090 即可
cd /usr/src
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz
tar -xf node_exporter-1.3.0.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv node_exporter-1.3.0.linux-amd64 node_exporter
#启动
/usr/local/node_exporter/node_exporter
##启动参数介绍
注意:相关启动的参数
--web.listen-address #node_expoetrt暴露的端口
--collector.systemd #从systemd中收集
--collector.systemd.unit-whitelist ##白名单,收集目标
".+" #从systemd中循环正则匹配单元
"(docker|sshd|nginx).service" #白名单,收集目标,收集参数node_systemd_unit_state
cat > /usr/lib/systemd/system/node_exporter.service <
#修改配置文件,连接客户端
vim /usr/local/prometheus/prometheus.yml
......
static_configs:
- targets: ["192.168.153.155:9100"] #修改为node_exporter客户端IP地址和端口号
#重启服务
systemctl restart prometheus.service
使用Prometheus主机IP地址和端口号查看目标 http://192.168.153.153:9090/targets