Prometheus+Grafana部署

环境:Linux
发行版:CentOS7.6
Core:3.10
配置:2C4M
部署方式:二进制

注:本次实验只针对监控物理机资源和物理机上的容器资源

# 请提前准备好以下二进制文件
# 环境准备
prometheus-2.28.0.linux-amd64.tar.gz
node_exporter-1.2.2.linux-amd64.tar.gz
grafana-enterprise-8.3.3.linux-amd64.tar.gz
alertmanager-0.23.0.linux-amd64.tar.gz
pushgateway-1.4.1.linux-amd64.tar.gz
cadvisor-0.44.0.tar.gz

# 链接地址
# 建议在Windows下载好再上传Linux系统
https://github.com/prometheus/prometheus/releases/download/v2.28.0/prometheus-2.28.0.linux-amd64.tar.gz
https://github.com/prometheus/node_exporter/releases/download/v1.2.2/node_exporter-1.2.2.linux-amd64.tar.gz
https://dl.grafana.com/enterprise/release/grafana-enterprise-8.3.3.linux-amd64.tar.gz
https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
https://github.com/prometheus/pushgateway/releases/download/v1.4.1/pushgateway-1.4.1.linux-amd64.tar.gz
https://github.com/google/cadvisor/archive/refs/tags/v0.44.0.tar.gz

规划

1、所有配置都在(/data)目录下
2、所有服务都添加systemd管理
3、所有机器都采用同样的配置
4、所有服务都配置开机自启动
5、所有服务器必须使用ntp时间同步,因为prometheus T_S对系统时间的准确性要求极高,必须保证本机时间实时同步

一、prometheus server部署

# 创建服务配置文件存放位置
mkdir -p /data/prometheus

# 解压二进制文件并改名
tar xvf prometheus-2.28.0.linux-amd64.tar.gz -C /data/prometheus
cd /data/prometheus
mv prometheus-2.28.0.linux-amd64 prometheus-2.28

# 添加systemd管理
cat > /usr/lib/systemd/system/prometheus.service <<EOF
[Unit]
Description=prometheus
[Service]
ExecStart=/data/prometheus/prometheus-2.28/prometheus --config.file=/data/prometheus/prometheus-2.28/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
# 加载配置并启动
systemctl daemon-reload && systemctl enable prometheus.service --now

修改prometheus.yml配置
prometheus.yml配置
热加载配置文件
查看prometheus进程

  • kill -1 32360或kill -HUP 32360

根据约定,当您发送一个挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件

访问prometheus自带的web页面:
访问方式:ip+端口
http://172.31.10.11:9090
prometheus主页面
被监控的目标

二、node exporter部署

注:此步骤在需要被监控的主机上部署,部署完后在prometheus.yml配置文件中添加相应的目标,然后热加载配置

# 创建服务配置文件存放位置
mkdir -p /data/node_exporter

# 解压二进制文件并改名
tar xvf node_exporter-1.2.2.tar.gz -C /data/node_exporter/
cd /data/node_exporter
mv node_exporter-1.2.2.linux-amd64/ node_exporter-1.2.2

# 添加systemd管理
cat > /usr/lib/systemd/system/node_exporter.service <<EOF
[Unit]
Description=node_exporter
[Service]
ExecStart=/data/node_exporter/node_exporter-1.2.2/node_exporter --collector.systemd --collector.systemd.unit-include=(docker|sshd|nginx).service
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

# 加载配置并启动
systemctl daemon-reload && systemctl enable node_exporter.service --now

访问测试:
被监控的节点

三、Grafana部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置
mkdir -p /data/grafana

# 解压二进制文件并改名
tar xvf grafana-enterprise-8.3.3.linux-amd64.tar.gz -C /data/grafana/

# 添加systemd管理
cat > /usr/lib/systemd/system/grafana.service <<EOF
[Unit]
Description=grafana
[Service]
ExecStart=/data/grafana/grafana-8.3.3/bin/grafana-server -homepath=/data/grafana/grafana-8.3.3
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

# 加载配置并启动
systemctl daemon-reload && systemctl enable grafana.service --now
访问测试:
ip+端口
默认用户密码:admin+admin
# grafana模板下载地址
https://grafana.com/grafana/dashboards

常用模板
193  docke监控r模板
9276  node节点监控模板
7362  mysql监控模板

grafana图形界面
成功登录grafana

四、Alertmanager部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置
mkdir -p /data/alertmanager

# 解压二进制文件并改名
tar xvf alertmanager-0.23.0.linux-amd64.tar.gz -C /data/alertmanager/
cd /data/alertmanager/
mv alertmanager-0.23.0.linux-amd64/ alertmanager-0.23

# 添加systemd管理
cat > /usr/lib/systemd/system/alertmanager.service <<EOF
[Unit]
Description=alertmanager
[Service]
ExecStart=/data/alertmanager/alertmanager-0.23/alertmanager --config.file=/data/alertmanager/alertmanager-0.23/alertmanager.yml
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF

# 加载配置并启动
systemctl daemon-reload && systemctl enable alertmanager.service --now

5、修改alertmanager配置(钉钉告警版)

[root@prometheus alertmanager]# cat alertmanager.yml
global:
  resolve_timeout: 5m

templates:
  - '/data/alertmanager/alertmanager-0.23/template/*.tmpl' 
route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 1m
  repeat_interval: 2m
  receiver: 'web.hook'
receivers:
- name: 'web.hook'
  webhook_configs:
  - url: 'http://localhost:8060/dingtalk/webhook1/send'
    send_resolved: true
inhibit_rules:
  - source_match:
      alertname: 'ApplicationDown'
      severity: 'critical'
    target_match:
      severity: 'warning'
    equal: ['alertname',"target","job","instance"]

6、修改alertmanager配置(邮件告警版)

[root@prometheus alertmanager]# cat alertmanager.yml.bak20210830 
global:
  resolve_timeout: 5m

#邮箱服务器
  smtp_smarthost: 'smtp.126.com:25'
  smtp_from: 'xxx@126.com'
  smtp_auth_username: 'xxx@126.com'
  smtp_auth_password: 'xxx' 
  smtp_require_tls: false

#配置路由树
route:
  group_by: ['alertname'] # 根据告警规则组名进行分组
  group_wait: 10s # 分组内第一个告警等待时间,10s内如有第二个告警会合并一个告警
  group_interval: 10s # 发送新告警间隔时间
  repeat_interval: 1h # 重复告警间隔发送时间
  receiver: 'mail'

 #接收人
receivers:
- name: 'mail'
  email_configs:
  - to: '1665111913@qq.com'

五、PushGateway部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置
mkdir -p /data/pushgateway

# 解压二进制文件并改名
tar xf pushgateway-1.4.1.linux-amd64.tar.gz -C /data/pushgateway/
cd /data/pushgateway/
mv pushgateway-1.4.1.linux-amd64/ pushgateway-1.4.1

# 添加systemd管理
cat > /usr/lib/systemd/system/pushgateway.service <<EOF
[Unit]
Description=pushgateway
After=network.target

[Service]
User=root
Type=simple
ExecStart=/data/pushgateway/pushgateway-1.4.1/pushgateway 
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# 加载配置并启动
systemctl daemon-reload && systemctl enable pushgateway.service --now

访问:http://XX.XX.XX.XX:9091/metrics

# 配置prometheus.yml主配置文件
  - job_name: 'pushgateway'
    honor_labels: true # 避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖
    scrape_interval: 5s # 抓取时间间隔为5秒
    static_configs:
    - targets: ['172.31.10.20:9091']
        instance: pushgateway
# 重新热加载配置文件
kill -1 prometheus服务进程

六、cAdvisor部署

注:此步骤只需在某一台主机上安装即可

# 创建服务配置文件存放位置
mkdir -p /data/cadvisor

# 解压二进制文件并改名
tar xf cadvisor-0.44.0.tar.gz -C /data/cadvisor/


# 添加systemd管理
cat > /usr/lib/systemd/system/cadvisor.service <<EOF
[Unit]
Description=cadvisor
After=network.target

[Service]
User=root
Type=simple
ExecStart=/data/pushgateway/pushgateway-1.4.1/pushgateway 
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

# 加载配置并启动
systemctl daemon-reload && systemctl enable pushgateway.service --now

访问:http://XX.XX.XX.XX:9091/metrics

# 配置prometheus.yml主配置文件
  - job_name: 'pushgateway'
    honor_labels: true # 避免收集数据本身的 job 和 instance被pushgateway实例信息覆盖
    scrape_interval: 5s # 抓取时间间隔为5秒
    static_configs:
    - targets: ['172.31.10.20:9091']
        instance: pushgateway
# 重新热加载配置文件
kill -1 prometheus服务进程
posted @ 2022-05-30 09:27  _安阳  阅读(160)  评论(0编辑  收藏  举报