prometheus-2.37.0监控平台编译部署

2023-05-16

文章目录

  • 简单介绍
  • 环境
  • 代码包下载
    • 官网地址
    • CSDN组合包下载
    • 服务器下载
  • Prometheus体系结构图
  • Prometheus部署
    • 安装
    • 配置为系统服务
      • prometheus.service
      • 加载配置
    • 验证
  • AlertManager部署
    • 安装
    • 配置为系统服务
      • alertmanager.service
      • 加载配置
    • 验证
  • node_exporter部署
    • 安装
    • 配置为系统服务
      • node_exporter.service
      • 加载配置
    • 验证
  • grafana部署
    • 安装
    • 配置为系统服务
      • grafana.service
      • 加载配置
    • 验证
  • 串联
    • prometheus.yaml
      • 注意事项
      • 配置文件层级
      • 示例
      • 检查配置&重载
  • 其他插件部署
  • 总结


简单介绍

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单服务器部署的,也可以拆分开来,具体后边还有其他插件的监控,以及阀值的设置以及告警,后续插件监控的链接也进行补充,尽请期待

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

prometheus-2.37.0监控平台编译部署 的相关文章

随机推荐