目录
2.4可视化与查询:Grafana与Prometheus Web UI
4.1下载 Promethues Server和Alertmanager
1.Promethus初步认识
promethus是开源的系统告警和警报工具包,核心功能包括核心数据采集 时间序列数据库 告警管理和查询语言PromQL
2.Promethus架构图
架构图中分为四个部分
2.1Service Discovery 服务发现:
Consul动态发现:通过Consul注册中心自动发现监控目标(如微服务、容器),实时更新目标列表,无需手动维护IP地址。
File SD静态配置:对于无需动态发现的固定目标(如物理机),通过配置文件(file_sd_configs
)直接指定。
2.2指标拉取(Pull模式):
批量工作负载(Batch Workloads):容器/服务暴露/metrics
端点,Prometheus Server定期(如15秒)通过HTTP协议拉取指标(如CPU、内存)。
Push Gateway辅助采集:短期任务(如CronJob)将指标推送到Push Gateway,Prometheus再从网关拉取,解决临时任务无法长期暴露端点的问题。
2.3告警处理:Alertmanager协同工作
告警规则触发:Prometheus Server内置规则引擎(如rules.yml
),通过PromQL定义阈值(如cpu_usage > 90%
持续5分钟)。告警路由与通知:Alertmanager接收告警:对告警进行分组(如按服务)、去重(避免重复通知)、静默(维护期屏蔽)。多渠道通知:通过Slack、邮件(图中邮件图标)或xmaters(集成API)发送告警信息。
2.4可视化与查询:Grafana与Prometheus Web UI
Prometheus Web UI:内置简单图表与PromQL查询界面,用于快速验证指标(如http_requests_total{job="web"}
)。
Grafana高级可视化:对接Prometheus数据源,创建动态仪表盘(如实时流量监控),支持自定义面板与告警状态集成。
3.Prometheus的特点
Prometheus的数据模型是一种由度量名称和键值对标识的时间序列数据的多维数据模型
PromQL,一种多维的灵活查询语言
不依赖分布式存储;单个服务器节点是自主的
时间序列收集是通过HTTP上的拉取模型进行的
通过中间网关支持推送时间序列
通过服务发现或静态配置发现目标
支持多种绘图和仪表板模式
4.Prometheus的服务端安装
下载Prometheus:可以从Prometheus官方网站(https://prometheus.io/download/)下载适合你操作系统的二进制文件。
4.1下载 Promethues Server和Alertmanager
安装Prometheus Server
1)解压下载的编译后的二进制安装包
tar -xvf prometheus-2.53.3.linux-amd64.tar.gz -C /usr/local/
2)创建软链接,方便访问
ln -s /usr/local/prometheus-2.47.0.linux-amd64/ /usr/local/prometheus
3)给prometheus启动脚本加执行权限
chmod a+x /usr/local/prometheus/prometheus
3.后台启动Prometheus服务端程序
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
4.2安装Alertmanager
2.安装Alertmanager
1)解压下载的编译后的二进制安装包
tar -xvf alertmanager-0.28.0.linux-amd64.tar.gz -C /usr/local/
2)创建软链接,方便访问
ln -s /usr/local/alertmanager-0.27.0.linux-amd64/ /usr/local/alertmanager
3)给alertmanager启动脚本加执行权限
chmod a+x /usr/local/alertmanager/alertmanager
4)使用脚本检查报警yml配置是否编写正确
/usr/local/alertmanager/amtool check-config alertmanager.yml
5.Prometheus客户端安装
同样去Prometheus官网下载node_exporter组件 https://prometheus.io/download/
安装node_exporter
1)解压node_exporter组件
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz -C /usr/local/
2)创建软链接,方便访问
ln -s /usr/local/node_exporter-1.6.1.linux-amd64 /usr/local/node_exporter
3.运行node_exporter
nohup /usr/local/node_exporter/node_exporter &
6.Prometheus服务端添加被监控机器
6.1编辑prometheus.yml配置文件
vim /usr/local/prometheus/prometheus.yml
在配置文件中加入一个job,targets 后面跟的是部署监控客户端node_export的服务器的ip,端口为9100
6.2杀死进程并且重启服务
pkill prometheus
/usr/local/prometheus/prometheus --config.file="/usr/local/prometheus/prometheus.yml" &
7.访问web查看prometheus控制面板
7.1访问prometheus控制面板
输入Prometheus Server的IP:9090,访问prometheus控制面板,点击【Status】----->【Targets】查看监控资源就可以看到监控资源