prometheus-2.37.0监控平台编译部署


简单介绍

Prometheus 开源的系统监控和服务监控
AlertManager 告警插件
Node_Exporter 用来监控各节点的资源信息的插件
grafana 展示面板


环境

服务版本
系统环境CentOS Linux release 7.9.2009 (Core)
cpu/内存8核32G(最小记得是2核4G就可以安装)
Prometheus2.37.0
alertmanager0.24.0
node_exporter1.4.0
grafana9.1.2

代码包下载

官网地址

prometheus官网地址(很多插件都有)
grafana官网下载

CSDN组合包下载

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间隔为15分钟,默认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']
	# 监控alertmanager
  - job_name: 'alertmanager'
    static_configs:
    - targets: ['192.168.1.10:9093']

检查配置&重载

# 检查配置
[root@A prometheus]# ./promtool check config prometheus.yml
# 重载配置文件
[root@A prometheus]# curl -X POST 192.168.1.10:9090/-/reload

其他插件部署

mysql_exporter

总结

实践过程中有问题,可以私信下
以上是prometheus单服务器部署的,也可以拆分开来,具体后边还有其他插件的监控,以及阀值的设置以及告警,后续插件监控的链接也进行补充,尽请期待

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值