Prometheus+Grafana监控部署

本文档详细记录了Prometheus+Grafana监控系统的部署过程,包括Go环境、Prometheus服务端和监控节点、Grafana的安装,以及Alertmanager和Mysql监控的设置。通过这些步骤,你可以建立一个完整的监控和告警系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Prometheus+Grafana监控部署

(个人部署记录,仅供参考)
软件准备:
在这里插入图片描述

一、安装go环境

1.1 下载go软件包

网址https://golang.google.cn/dl/,下载后上传至服务器。
在这里插入图片描述

1.2 安装go

tar -xvf go1.19.3.linux-amd64.tar.gz

mv go /usr/local/

vim /etc/profile
在最后一行添加
export GOROOT=/usr/local/go
export PATH= P A T H : PATH: PATH:GOROOT/bin

source /etc/profile
执行go version,如果显示版本号,则Go环境安装成功。
在这里插入图片描述

二、安装Prometheus服务端

2.1 下载Prometheus包

网址https://prometheus.io/download/#prometheus,下载后上传至服务器。
在这里插入图片描述

2.2 安装Prometheus

tar -xvf prometheus-2.40.2.linux-amd64.tar.gz

mv prometheus-2.40.2.linux-amd64 /usr/local/

cd /usr/local/

mv prometheus-2.40.2.linux-amd64/ prometheus

创建Prometheus服务
cd /etc/systemd/system/

vim prometheus.service

[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System

[Service]
ExecStart=/usr/local/prometheus/prometheus \
  --config.file=/usr/local/prometheus/prometheus.yml \
  --web.listen-address=:9090

[Install]
WantedBy=multi-user.target

启动Prometheus服务
systemctl start prometheus.service

systemctl enable prometheus.service(开机自启)

2.3添加防火墙端口9090

firewall-cmd --zone=public --add-port=9090/tcp --permanent
重启防火墙服务

查看防火墙开启的端口
iptables -L -n

浏览器打开http://IP:9090,即可打开普罗米修斯自带的监控页面。
在这里插入图片描述

三、安装Prometheus监控节点

3.1下载node包

网址https://prometheus.io/download/#prometheus,下载后上传至被监控服务器。
在这里插入图片描述

3.2 安装node

tar zxvf node_exporter-1.4.0.linux-amd64.tar.gz

mv node_exporter-1.4.0.linux-amd64 /usr/local/

cd /usr/local/

mv node_exporter-1.4.0.linux-amd64/ node_exporter

创建node节点服务
cd /etc/systemd/system/

vim node_exporter.service

[Unit]
Description=node_exporter
Documentation=node_exporter

[Service]
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target

启动node节点服务
systemctl start node_exporter.service

systemctl enable node_exporter.service(开机自启)

3.3 添加防火墙端口9100

firewall-cmd --zone=public --add-port=9100/tcp --permanent
重启防火墙服务
systemctl restart firewalld.service

回到Prometheus服务端服务器,修改prometheus.yml配置文件
cd /usr/local/prometheus/

vim prometheus.yml
依次按格式添加node
在这里插入图片描述

重启prometheus服务
systemctl restart prometheus.service

3.4 查看node节点

浏览器打开http://IP:9090,访问普罗米修斯监控页面,查看node节点状态为UP即可正常监控。
在这里插入图片描述

3.5 定义主机监控报警规则

示例:
创建告警规则
cd /usr/local/prometheus/

vim alert.rules

groups:
- name: hostStatsAlert
  rules:
  - alert: hostCpuUsageAlert
    expr: sum(avg without (cpu)(irate(node_cpu_seconds_total{mode!='idle'}[1m]))) by (instance) > 0.85
    for: 1m
    labels:
      severity: page
    annotations:
      summary: "Instance {{ $labels.instance }} CPU usgae high"
      description: "{{ $labels.instance }} CPU usage above 85% (current value: {{ $value }})"
  - alert: hostMemUsageAlert
    expr: (node_memory_MemTotal - node_memory_MemAvailable)/node_memory_MemTotal > 0.85
    for: 1m
    labels:
      severity: page
    annotations:
      summary: "Instance {{ $labels.instance }} MEM usgae high"
      description: "{{ $labels.instance }} MEM usage above 85% (current value: {{ $value }})"

修改prometheus.yml
vim prometheus.yml
增加如下配置
在这里插入图片描述

重启prometheus服务
systemctl restart prometheus.service
访问http://IP:9090/rules可以查看当前以加载的规则文件。
在这里插入图片描述

切换到Alerts标签http://IP:9090/alerts可以查看当前告警的活动状态。
在这里插入图片描述

四、安装Grafana

4.1 安装Grafana

vim /etc/yum.repos.d/grafana.repo //添加Grafana安装源

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

yum makecache

yum install grafana -y

4.2 启动Grafana

systemctl start grafana-server.service

systemctl enable grafana-server.service (开机自启)

添加防火墙端口3000
firewall-cmd --zone=public --add-port=3000/tcp --permanent
重启防火墙服务
systemctl restart firewalld.service

4.3 访问Grafana

网址为http://ip:3000,初始账号密码均为admin,首次登陆需修改密码。
在这里插入图片描述

4.4 导入Prometheus数据

Configuration → Data Sources → Prometheus → Select,填入http://ip:9090,保存即可
在这里插入图片描述

4.5 导入dashboard

官方dashboard模板:https://grafana.com/grafana/dashboards/

选择排行第一的中文模板:1 Node Exporter for Prometheus Dashboard CN v20200628,模板ID是8919。
Manage → Import,填入模板ID,导入
在这里插入图片描述
在这里插入图片描述

自定义dashboard名称,选择数据源Prometheus
在这里插入图片描述
在这里插入图片描述

至此,Prometheus + Grafana 部署完成

五、安装Alertmanager告警功能

5.1 下载alertmanager包

网址https://prometheus.io/download/#prometheus,下载后上传至alertmanager服务器(此处为省事我们直接部署在Prometheus服务器)。
在这里插入图片描述

5.2 安装alertmanager

tar zxvf alertmanager-0.24.0.linux-amd64.tar.gz

mv alertmanager-0.24.0.linux-amd64 /usr/local/

cd /usr/local/

mv alertmanager-0.24.0.linux-amd64/ alertmanager

设置软链接
ln -s /usr/local/alertmanager/alertmanager /usr/bin/alertmanager
ln -s /usr/local/alertmanager/amtool /usr/bin/amtool

配置systemd管理alertmanager
useradd -M -s /sbin/nologin prometheus
chown -R prometheus:prometheus /usr/local/alertmanager

创建alertmanager服务
cd /etc/systemd/system/

vim alertmanager.service

[Unit]
Description=Alertmanager
Documentation=https://github.com/prometheus/alertmanager/releases/
After=network.target

[Service]
WorkingDirectory=/usr/local/alertmanager/
ExecStart=/usr/local/alertmanager/alertmanager
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -KILL $MAINPID
Type=simple
KillMode=control-group
Restart=on-failure
RestartSec=15s

[Install]
WantedBy=multi-user.target

启动alertmanager服务
systemctl start alertmanager.service

systemctl enable alertmanager.service(开机自启)

添加防火墙端口9093
firewall-cmd --zone=public --add-port=9093/tcp --permanent
重启防火墙服务
systemctl restart firewalld.service

5.3 修改prometheus.yml配置文件

cd /usr/local/prometheus/

vim prometheus.yml
在这里插入图片描述

重启prometheus服务
systemctl restart prometheus.service

5.4 访问prometheus页面

访问prometheus页面,Status → Targets,
在这里插入图片描述

可以看到,之前部署的alertmanager状态是UP,说明运行正常。
至此,alertmanager部署完成。但alertmanager还需要进一步配置通知路由和通知接收者。

5.5 修改alertmanager配置文件

修改前先备份
cd /usr/local/alertmanager
mv alertmanager.yml alertmanager.yml.bak

新建alertmanager.yml
vim alertmanager.yml

global:
  resolve_timeout: 5m
  smtp_from: 邮箱名@163.com
  smtp_auth_username: 邮箱名@163.com
  smtp_auth_password: 密码(或授权码)
  smtp_require_tls: false
  smtp_smarthost: 'smtp.163.com:465'

route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1m
  receiver: 'Prometheus-mail'

receivers:
- name: 'Prometheus-mail'
  email_configs:
  - to: 邮箱名@163.com
    send_resolved: true

在这里插入图片描述

检查alertmanager配置文件
./amtool check-config alertmanager.yml

在这里插入图片描述

六、Mysql监控

6.1 下载Mysql监控插件包

网址https://prometheus.io/download/#prometheus,下载后上传至Mysql服务器。
在这里插入图片描述

6.2 安装Mysql插件包

tar zxvf mysqld_exporter-0.14.0.linux-amd64.tar.gz

mv mysqld_exporter-0.14.0.linux-amd64 /usr/local/

cd /usr/local/

mv mysqld_exporter-0.14.0.linux-amd64/ mysqld_exporter

6.3

登陆mysql数据库后,创建mysql数据库监控账户,因mysql_exporter部署在mysql本地,只需localhost访问即可
mysql -uroot -p
输入数据库密码

grant select,replication client,process ON . to ‘prometheus’@‘localhost’ identified by ‘自定义密码’;
在这里插入图片描述

flush privileges;
在这里插入图片描述

6.4

新增配置文件
vim /usr/local/mysqld_exporter/.my.cnf

[client]
user=prometheus
password=自定义密码

创建mysqld_exporter服务
cd /etc/systemd/system

vim mysqld_exporter.service

[Unit]
Description= mysqld_exporter
 
[Service]
Restart=on-failure
ExecStart=/usr/local/mysqld_exporter/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter/.my.cnf
 
[Install]
WantedBy=multi-user.target

启动mysqld_exporter服务
systemctl daemon-reload
systemctl start mysqld_exporter.service
systemctl enable mysqld_exporter.service(开机自启)

添加防火墙端口9104(默认mysqld_exporter服务端口)
firewall-cmd --zone=public --add-port=9104/tcp --permanent
重启防火墙服务
systemctl restart firewalld.service

6.5

回到prometheus服务端
修改prometheus.yml,增加mysqld监控项

  • job_name: “Mysql”
    static_configs:
    - targets: [“IP:9104”]
    在这里插入图片描述

重启prometheus服务
systemctl restart prometheus.service

6.6

访问prometheus页面,Status → Targets,
在这里插入图片描述

6.7

访问Grafana页面,添加监控模板,模板ID:7362

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

七、参考资料

1.https://www.cnblogs.com/zhang-xiao-shuang/p/13091250.html
2.https://zhuanlan.zhihu.com/p/434353542
3.https://www.cnblogs.com/zhaop8078/p/14007009.html
4.https://blog.youkuaiyun.com/weixin_45697293/article/details/119353915

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_Sunburst

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

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

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

打赏作者

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

抵扣说明:

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

余额充值