Prometheus安装部署
文章目录
- 1.Prometheus(普罗米修斯)安装部署
-
- 1.1部署环境准备
- 1.2部署prometheus
- 1.3主机数据展示
- 2.Grafana安装部署
-
- 2.1部署Grafana
- 2.2配置Grafana数据源
- 2.2配置Grafana仪表板
- 3.AlertManager安装部署
-
- 3.1部署alertmanager
- 3.2告警邮件发送配置
- 3.3测试邮件告警效果
- 3.4自定义邮件告警模板
- 3.5钉钉接收告警配置
- 3.6测试钉钉接收告警效果
- 4.Redis服务监控
-
- 4.1部署redis_exporter
- 4.2 prometheus添加监控目标
- 4.3添加Redis Grafana模板
- 5.Rabbitmq服务监控
-
- 5.1部署rabbitmq_exporter
- 5.2 prometheus添加监控目标
- 5.3添加Rabbitmq Grafana模板
- 6.mysql服务监控
-
- 6.1部署mysqld_exporter
- 6.2 prometheus添加监控目标
- 6.3添加mysql Grafana模板
- 7.Linux主机监控
-
- 7.1部署node_exporter
- 7.2 prometheus添加监控目标
- 7.3添加Linux Grafana模板
1.Prometheus(普罗米修斯)安装部署
Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上, Prometheus性能足够支撑上万台规模的集群。
官网:https://prometheus.io/
1.1部署环境准备
部署环境信息:
操作系统版本:Cetnos7.9
IP地址 | 主机名 | 身份 |
---|---|---|
192.168.0.123 | prometheus | prometheus服务器 |
192.168.0.124 | grafana | grafana服务器 |
192.168.0.125 | client | 被监控客户端 |
关闭防火墙:
3台主机都执行以下命令:
systemctl stop firewalld
关闭防火墙
systemctl disable firewalld
开机禁止防火墙启动
关闭selinux:
3台主机都执行命令:setenforce 0
然后将/etc/selinux/config里的参数SELINUX=enforcing修改为SELINUX=disabled,永久关闭selinux
修改主机名:
3台主机各自修改成对应主机名:hostnamectl set-hostname hostname
1.2部署prometheus
下载安装包:
地址:https://prometheus.io/download/
上传安装包:
将prometheus-2.40.1.linux-amd64.tar.gz安装包上传至192.168.0.123服务器
解压并启动prometheus:
以下命令按顺序执行,解压安装包 -> 修改文件夹名字 -> 启动prometheus
tar xf prometheus-2.40.1.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/prometheus-2.40.1.linux-amd64/ /usr/local/prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
检查prometheus监听是否正常,默认端口9090
netstat -an |grep 9090
1.3主机数据展示
通过http://192.168.0.123:9090/访问prometheus
默认可以查看到已监控本机
菜单Status -> Targets
通过浏览器访问http://192.168.0.123:9090/metrics可以查看监控数据
在WEB界面首页可以通过关键字搜索查询监控项
2.Grafana安装部署
Grafana是一个开源的度量分析和可视化工具,可以通过将采集的数据分析,查询,然后进行可视化的展示,并能实现报警
官网:https://grafana.com/
2.1部署Grafana
下载安装包:
地址:
https://dl.grafana.com/enterprise/release/grafana-enterprise-9.2.4-1.x86_64.rpm
上传安装包:
将grafana-enterprise-9.2.4-1.x86_64.rpm安装包上传至192.168.0.124服务器
安装grafana:
进入安装包所在目录,执行命令rpm -ivh grafana-enterprise-9.2.4-1.x86_64.rpm
完成grafana安装
注意!安装过程有可能会提示缺少依赖包,如果报错则需要先配置yum源将相关依赖包安装上再继续安装grafana-enterprise-9.2.4-1.x86_64.rpm
yum install fontconfig
yum install urw-fonts
rpm -ivh grafana-enterprise-9.2.4-1.x86_64.rpm
启动grafana:
执行命令:
systemctl start grafana-server
启动grafana服务
systemctl enable grafana-server
开机自动启动grafana
检查grafana监听是否正常,默认端口3000
netstat -an |grep 3000
2.2配置Grafana数据源
通过浏览器访问 http://192.168.0.124:3000/就到了登录界面,使用默认的admin用户,admin密码登陆。登录后需要修改默认密码
登录后把prometheus服务器收集的数据作为一个数据源添加到grafana,让grafana可以得到prometheus的数据
(1)从左侧导航栏找到Data sources菜单
(2)进入菜单后点击增加数据源,数据源选择prometheus
(3)进入prometheus配置后有两个必填的配置,分别是数据源名称和prometheus的访问地址,prometheus的ip和端口。配置完成后在页面最下方点击Save & test保存
2.2配置Grafana仪表板
配置完数据源后,grafana接收到prometheus的数据需要使用仪表板展示,仪表板可自定义或导入模板,grafana官网也有非常多类型的模板供下载
(1)从左侧导航栏找到新建仪表板,选择添加一个面板
(2)进入新建面板后选择prometheus数据源,需要展示的数据项在Metric里选择,配置完成后可在面板看到数据展示
(3)导入模板方式,从左侧导航栏找到导入,导入模板可本地上传或者直接从官网下载导入(输入模板的ID或完整的链接,但需要有互联网),以下就是模板的完整链接,标红的为模板ID。
https://grafana.com/grafana/dashboards/7362-mysql-overview/?tab=revisions
使用两种方式的其中一种导入模板后就会出现以下界面,这里演示模板名称和文件夹都为默认,数据源就选择2.2章节配置的prometheus,然后导入
从左侧导航栏找到Browse,进入后即可找到刚刚导入的模板
点击该模板可以查看仪表板效果,因为本章节仅演示模板导入,没有配置对应数据源,所以仪表板有没有数据展示
仪表板模板可以在以下地址下载
https://grafana.com/grafana/dashboards/
3.AlertManager安装部署
3.1部署alertmanager
Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email, Slack,等告警方式, 也可以通过webhook接入钉钉等国内IM工具。
下载安装包:
地址:https://prometheus.io/download/#alertmanager
按操作系统类型选择需要的安装包
上传安装包:
将alertmanager-0.24.0.linux-amd64.tar.gz安装包上传至192.168.0.123服务器
安装alertmanager:
进入安装包所在目录,执行以下命令完成alertmanager部署
tar zxf alertmanager-0.24.0.linux-amd64.tar.gz -C /usr/local/
mv /usr/local/alertmanager-0.24.0.linux-amd64/ /usr/local/alertmanager
3.2告警邮件发送配置
编辑alertamanger配置文件:
vim /usr/local/alertmanager/alertmanager.yml
global:
smtp_smarthost: 'smtp.xxx.com:25' #告警邮件发送者SMTP地址
smtp_from: 'xxx@163.com' #发件者邮箱
smtp_auth_username: 'xxx@163.com' #邮箱账号
smtp_auth_password: