prometheus-2.37.0监控平台部署
装: https://blog.csdn.net/weixin_42434700/article/details/126708457
文章目录
简单介绍
Prometheus 开源的系统监控和服务监控
AlertManager 告警插件
Node_Exporter 用来监控各节点的资源信息的插件
grafana 展示面板
环境
服务 | 版本 |
---|---|
系统环境 | CentOS Linux release 7.9.2009 (Core) |
cpu/内存 | 8核32G(最小记得是2核4G就可以安装) |
Prometheus | 2.37.0 |
alertmanager | 0.24.0 |
node_exporter | 1.4.0 |
grafana | 9.1.2 |
代码包下载
官网地址
prometheus官网地址(很多插件都有)
grafana官网下载
CSDN组合包下载
服务器下载
wget https://github.com/prometheus/prometheus/releases/download/v2.37.0/prometheus-2.37.0.linux-amd64.tar.gz
wget https://github.com/prometheus/alertmanager/releases/download/v0.24.0/alertmanager-0.24.0.linux-amd64.tar.gz
wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0-rc.0/node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
wget https://dl.grafana.com/enterprise/release/grafana-enterprise-9.1.2.linux-amd64.tar.gz
Prometheus体系结构图
暂略
Prometheus部署
安装
[root@A bag]# useradd -M -s /sbin/nologin prometheus
[root@A bag]# tar xf prometheus-2.37.0.linux-amd64.tar.gz
[root@A bag]# mv prometheus-2.37.0.linux-amd64 /data/app/prometheus
[root@A bag]# cd /data/app/prometheus
[root@A prometheus]# cp prometheus.yml prometheus.yml`date +%Y%m%d`
[root@A prometheus]# chown -R prometheus:prometheus /data/app/prometheus
配置为系统服务
prometheus.service
[root@A prometheus]# cat /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
After=network.target
[Service]
Type=simple
Environment="GOMAXPROCS=4"
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/data/app/prometheus/prometheus \
--config.file=/data/app/prometheus/prometheus.yml \
--storage.tsdb.path=/data/app/prometheus/data \
--storage.tsdb.retention=30d \
--web.console.libraries=/data/app/prometheus/console_libraries \
--web.console.templates=/data/app/prometheus/consoles \
--web.listen-address=0.0.0.0:9090 \
--web.read-timeout=5m \
--web.max-connections=10 \
--query.max-concurrency=20 \
--query.timeout=2m \
--web.enable-lifecycle
PrivateTmp=true
PrivateDevices=true
ProtectHome=true
NoNewPrivileges=true
LimitNOFILE=infinity
ReadWriteDirectories=/data/app/prometheus/data
ProtectSystem=full
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
[root@A prometheus]#
加载配置
# 加载配置
[root@A prometheus]# systemctl daemon-reload
# 开启自启&启动
[root@A prometheus]# systemctl enable prometheus --now
# 查看状态
[root@A prometheus]# systemctl status prometheus
验证
浏览器访问http://ip:9090
AlertManager部署
安装
我是部署再一台服务器上,所以prometheus账户就不创建了
[root@A bag]# tar xf alertmanager-0.24.0.linux-amd64.tar.gz
[root@A bag]# mv alertmanager-0.24.0.linux-amd64 /data/app/alertmanager
[root@A bag]# cd /data/app/alertmanager
[root@A alertmanager]# cp alertmanager.yml alertmanager.yml`date +%Y%m%d`
[root@A alertmanager]# chown -R prometheus:prometheus /data/app/alertmanager
配置为系统服务
alertmanager.service
[root@A alertmanager]# cat /usr/lib/systemd/system/alertmanager.service
[Unit]
Description=Alertmanager
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/data/app/alertmanager/alertmanager \
--config.file=/data/app/alertmanager/alertmanager.yml \
--storage.path=/data/app/alertmanager/data \
--web.listen-address=0.0.0.0:9093 \
--cluster.listen-address=0.0.0.0:9094 \
--log.level=info \
--log.format=logfmt
Restart=always
[Install]
WantedBy=multi-user.target
[root@A alertmanager]#
加载配置
[root@A alertmanager]# systemctl daemon-reload
[root@A alertmanager]# systemctl enable alertmanager --now
[root@A alertmanager]# systemctl status alertmanager
[root@A alertmanager]# netstat -nltp | grep 9093
验证
浏览器访问http://ip:9093/metrics
node_exporter部署
安装
我是部署再一台服务器上,所以prometheus账户就不创建了
[root@A bag]# tar xf node_exporter-1.4.0-rc.0.linux-amd64.tar.gz
[root@A bag]# mv node_exporter-1.4.0-rc.0.linux-amd64 /data/app/node_exporter
[root@A bag]# cd /data/app/node_exporter
[root@A node_exporter]# chown -R prometheus:prometheus /data/app/node_exporter
配置为系统服务
node_exporter.service
[root@A node_exporter]# cat /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
After=network.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecStart=/data/app/node_exporter/node_exporter \
--web.listen-address=0.0.0.0:9100 \
--web.telemetry-path=/metrics \
--log.level=info \
--log.format=logfmt
Restart=always
[Install]
WantedBy=multi-user.target
[root@A node_exporter]#
加载配置
[root@A node_exporter]# systemctl daemon-reload
[root@A node_exporter]# systemctl enable node_exporter --now
[root@A node_exporter]# systemctl status node_exporter
[root@A node_exporter]# netstat -nltp | grep 9100
验证
浏览器访问http://ip:9100/metrics
grafana部署
安装
我是部署再一台服务器上,所以prometheus账户就不创建了
[root@A bag]# tar xf grafana-enterprise-9.1.2.linux-amd64.tar.gz
[root@A bag]# mv grafana-enterprise-9.1.2.linux-amd64 /data/app/grafana
[root@A bag]# cd /data/app/grafana
[root@A grafana]# chown -R prometheus:prometheus /data/app/grafana
配置为系统服务
grafana.service
[root@A grafana]# cat /usr/lib/systemd/system/grafana.service
[Unit]
Description=grafana
[Service]
User=prometheus
Group=prometheus
ExecStart=/data/app/grafana/bin/grafana-server -homepath=/data/app/grafana
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
[root@A grafana]#
加载配置
[root@A grafana]# systemctl daemon-reload
[root@A grafana]# systemctl enable grafana --now
[root@A grafana]# systemctl status grafana
[root@A grafana]# netstat -nltp | grep 3000
验证
浏览器访问http://ip:3000
初始账号密码为admin、admin
串联
prometheus、alertManager、node_exporter、grafana部署完毕,接下来进行串联起来
prometheus.yaml
注意事项
- 大小写敏感
- 缩进层级关系严谨,只允许使用空格缩进,缩进的空格数不重要,但是相同层级的元素左对齐即可
- ’#'表示注释
- 对象键值对使用冒号结构表示 key: value 以 - 开头的行表示构成一个数组
配置文件层级
- global 全局配置
- alerting 告警配置
- rule_files 阀值规则文件配置
- scrape_configs 拉取配置
示例
# 全局配置
global:
scrape_interval: 15s # 监控数据间隔15s抓取一次,默认1分钟
evaluation_interval: 15s # 检测ruls间隔为15s,默认1分钟
# 关联Alertmanager配置
alerting:
alertmanagers:
- static_configs:
- targets:
- 192.168.1.10:9093
# rule配置(阀值设置)
rule_files:
- "/data/app/prometheus/cbc/rules/*.yml"
- "/data/app/prometheus/cbe/rules/*.yml"
# 抓取监控数据配置
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["192.168.1.10:9090"]
# 监控node_exporter
- job_name: 'node'
static_configs:
- targets: ['192.168.1.10:9100']
检查配置&重载
# 检查配置
[root@A prometheus]# ./promtool check config prometheus.yml
# 重载配置文件
[root@A prometheus]# curl -X POST 192.168.1.10:9090/-/reload