如何在易语言上做网站,在线生成个人网站免费观看,做家宴网站,做网站 广告费 步骤目录
一、Prometheus源码安装和动态更新配置 二、Prometheus操作面板和常见配置
三、Prometheus常用监控组件exporter配置
3.1 exporter是什么
3.2 有哪些exporter
3.3 exporter怎么用
3.4 实战 node_exporter
3.5 其它exporter都怎么用
四、Promethus整合新版Sprin…目录
一、Prometheus源码安装和动态更新配置 二、Prometheus操作面板和常见配置
三、Prometheus常用监控组件exporter配置
3.1 exporter是什么
3.2 有哪些exporter
3.3 exporter怎么用
3.4 实战 node_exporter
3.5 其它exporter都怎么用
四、Promethus整合新版SpringBoot3.X应用监控
4.1 pom.xml引入依赖
4.2 自定义健康检查
4.3 prometheus整合配置
五、可视化工具Grafana安装
5.1 什么是Grafana
5.2有哪些常用的功能
5.3快速安装部署
5.4 配置prometheus数据源
5.5 Grafana的用户和组织 5.6Grafana explore
5.7Grafana最重要的dashboard 5.8 Grafana高效导入仪表盘
八、Promethus的监控告警Alertmanager
8.1 什么是Alertmanager
8.2 Alertmanager安装
8.3 Alertmanager邮件告警配置步骤
九、Grafana的Alert监控告警
9.1 Granfana的Alert和Alertmanager比对
9.2 Grafana的告警界面
9.3 Grafana新建推送通道
十、Grafana钉钉群告警机器人
10.1 实战步骤
10.2 Grafana新建推送通道
10.3 面板Panel配置告警规则
10.4 错误信息跳转
10.5 结果验证 本文主要介绍了使用Prometheus怎么监听应用服务和中间件。当使用Grafana时怎么优雅快速的导入仪表盘以及设置阈值触发告警-将告警信息推送到邮件或者钉钉
一、Prometheus源码安装和动态更新配置
安装步骤
配置go环境变量Prometheus使用go语言开发 #解压 tar -zxvf go1.17.6.linux-amd64.tar.gz #配置环境变量 echo export PATH$PATH:/usr/local/software/temp/go/bin /etc/profile #立刻生效 source /etc/profile #测试 go是否安装成功 go version 安装Prometheus: #解压 tar -zxvf prometheus-2.43.0.linux-amd64.tar.gz #重命名 mv prometheus-2.43.0.linux-amd64 prometheus #进入目录启动 ./prometheus --config.file./prometheus.yml #查看是否启动成功默认端口9090 lsof -i:9090 #访问 prometheus ,阿里云网络安全组开放端口 指标数据 http://ip:9090/metrics 图界面 http://ip:9090/ 动态更新:
prometheus里面经常需要修改配置可以利用动态更新
启动时在参数中加入--web.enable-lifecycle (该参数默认关闭) #启动 表示需要守护进程方式运行不然退出终端则进程消失 ./prometheus --config.file./prometheus.yml --web.enable-lifecycle #动态更新配置 curl -X POST http://localhost:9090/-/reload 二、Prometheus操作面板和常见配置
操作面板 常见的配置: #全局配置默认可以被覆盖 global: scrape_interval: 15s #全局的抓取间隔 scrape_timeout: 10s #抓取超时时间 evaluation_interval: 15s #评估间隔 #告警配置 alerting: alertmanagers: #告警管理器 - follow_redirects: true #是否启用重定向 enable_http2: true #是否启用HTTP2 scheme: http timeout: 10s api_version: v2 #指定Alertmanager的API版本此处为v2 static_configs: #告诉Prometheus哪些目标是静态的即不会更改如果有多个目标则可以在targets中指定多个地址。 - targets: [] #抓取配置 scrape_configs: - job_name: prometheus #任务名称 honor_timestamps: true #指标的时间戳应该由服务器提供而不是客户端在发送指标时提供的时间戳 scrape_interval: 15s #抓取任务的时间间隔即每15秒抓取一次。 scrape_timeout: 10s #抓取任务的超时时间单位为秒即每个目标最多等待10秒钟 metrics_path: /metrics #抓取指标的路径 scheme: http #指定抓取时使用的协议默认为http follow_redirects: true #是否启用重定向。在此处启用 enable_http2: true #是否启用HTTP2 static_configs: - targets: - 120.xxx.xx.xxx:9090 #目标配置告诉Prometheus哪些目标需要抓取如果有多个目标则可以在targets中指定多个地址 #此处抓取了一个名为prometheus的任务每隔15秒抓取一次localhost:9090上的/metrics路径超时时间为10秒 三、Prometheus常用监控组件exporter配置
3.1 exporter是什么 向Prometheus提供监控样本数据的程序都可以被称为一个Exporter 它是Prometheus的指标数据收集组件负责从目标Jobs收集数据 并把收集到的数据转换为Prometheus支持的时序数据格式 只负责收集并不向Server端发送数据而是等待Prometheus Server 主动抓取 3.2 有哪些exporter Prometheus社区以及其他团队开发了大量的Exporter覆盖了许多不同类型的系统和服务 比如:Node Exporter、MySQL Exporter、Redis Exporter、MongoDB Exporter、Nginx Exporter... 3.3 exporter怎么用 在主机上安装了一个 Exporter程序该程序对外暴露了一个用于获取当前监控样本数据的HTTP访问地址 Prometheus通过轮询的方式定时从这些Target中获取监控数据样本并且存储在数据库当中 3.4 实战 node_exporter
node_exporter 用于采集类UNIX内核的硬件以及系统指标包括CPU、内存和磁盘
步骤 #解压 tar -zxvf node_exporter-1.6.0.linux-amd64.tar.gz #进到目录里面启动 nohup ./node_exporter #确认端口 lsof -i:9100 通过浏览器访问 http://IP9100/metrics可以查看到监控信息 启动后exporter后就需要将exporter的地址配置到prometheus.yml中 Prometheus服务器中添加被监控机器的配置 vim prometheus.yml, target的也可以写ip - job_name: agent-1 static_configs: - targets: [120.xxx.7.xxx:9100] 动态更新配置 curl -X POST http://localhost:9090/-/reload 查看Web UI界面的target和configuration是否有对应的数据 3.5 其它exporter都怎么用 一样的步骤 对应的机器安装exporter 启动exporter 并监听对应的程序 访问对应的exporter的metric路径看是否返回数据 Prometheus配置新的job 访问Prometheus查看target和configuration是否有数据 四、Promethus整合新版SpringBoot3.X应用监控
Promethus整合SpringBoot3.X应用监控
4.1 pom.xml引入依赖
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId
/dependency
#暴露指定端点 management.endpoints.web.exposure.includeenv,info,config,health
验证访问 http://localhost:8080/actuator/prometheus, 查看详情 4.2 自定义健康检查
检查当前服务是否存活。继承AbstractHealthIndicator类覆盖doHealthCheck方法里面可以自定义up down。具体根据业务来设置即可
Component
public class NanNanMQIndicator extends AbstractHealthIndicator {Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {//对比两个不同方法builder.up().withDetail(MQ中间件,这个自带高可用);}
}Component
public class NanNanMQIndicator extends AbstractHealthIndicator {Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {//对比两个不同方法builder.down().withDetail(DOWN MQ中间件,这个自带高可用);}
} 4.3 prometheus整合配置 !--整合prometheus--dependencygroupIdio.micrometer/groupIdartifactIdmicrometer-registry-prometheus/artifactId/dependency
编辑文件 prometheus.yml 15秒拉取一次应用服务数据 - job_name: springboot scrape_interval: 15s scrape_timeout: 10s metrics_path: /actuator/prometheus static_configs: - targets: [120.xx.7.xx8080] 热更新配置 curl -X POST http://ip:9090/-/reload 刚连接上在promethus的界面就可以看到了 界面不太好看 五、可视化工具Grafana安装
5.1 什么是Grafana 它数据可视化工具可以做数据监控和数据统计带有告警功能。 面板插件有许多不同方式的可视化指标和日志官方库中具有丰富的仪表盘插件 比如热图、折线图、图表等多种展示方式 5.2有哪些常用的功能
报警支持可视方式定义最重要指标的警报规则Grafana将不断计算并发送通知在数据达到阈值时进行告警
过滤器过滤器允许动态创建新的键/值过滤器这些过滤器将自动应用于使用该数据源的所有查询。 避免混淆各个组件主要的作用概念 Exporter 数据生产者采集需要监控的数据 Prometheus 普罗米修斯时序数据库用来存储和查询的监控数据从Exporter上拉取 Grafana 可视化工具仪表盘
5.3快速安装部署 docker run -d -p 3000:3000 --namenannanw-grafana grafana/grafana:8.1.5 通过了浏览器访问http://IP3000就能访问到登陆页面默认用户名admin密码admin 5.4 配置prometheus数据源 在这就可以看到设置后的数据源 5.5 Grafana的用户和组织
用户
Grafana 里面用户有三种角色 admin,editor,viewer admin 权限最高可以执行任何操作包括创建用户新增 Datasource、DashBoard。 editor 角色不可以创建用户不可以新增 Datasource可以创建 DashBoard。 viewer 角色仅可以查看 DashBoard
新增用户后可以分配角色 组织: 每个用户可以拥有多个 Organization用户登录后可以在不同的 Organization 之间切换 不同的 Organization 之间完全不一样包括 datasourcedashboard 等都不一样 创建一个 Organization 就相当于开了一个全新的视图所有的 datasourcedashboard 等都要再重新开始创建 5.6Grafana explore explore和prometheus中的功能很相似 5.7Grafana最重要的dashboard
最重要 UI 界面 仪表盘通过数据源定义好可视化的数据来源Dashboard 来组织和管理数据可视化图表 仪表盘可以视为一组一个或多个面板组成的一个集合来展示各种各样的面板。
第一步 第二步 再拖动到最下方点击Use query 然后就可以看到内存使用情况的图表展示 有没有发现这样虽然可以展示出来但是很麻烦而且 样式没有那么炫酷一个个调整起来也很费劲。
继续往下看~ 5.8 Grafana高效导入仪表盘
Grafana应用市场 地址https://grafana.com/grafana/dashboards/
是Grafana社区和其他用户分享的可装载的仪表板和面板集合 Grafana模板使得共享可装载的仪表板变得容易从而帮助用户减少了工作量并促进了最佳设置和最佳配置的使用
举例JVM相关监控仪表盘 点击 Copy ID to clipboard 点击Import 在文本框中输入上一步的ID 点击load 然后就可以看到炫酷的仪表盘拉 根据上面的步骤后续可以根据需要从应用市场中获取各个中间件的仪表数据进行展示
八、Promethus的监控告警Alertmanager
8.1 什么是Alertmanager
Prometheus的一个组件用于定义和发送告警通知内置多种第三方告警通知方式同时还提供了对Webhook通知的支持 基于警报规则对规则产生的警报进行分组、抑制和路由并把告警发送给合适的接收端例如邮件、钉钉或Webhook 关键特点 分组将详细的告警信息合并成一个通知某些情况下如由于系统宕机导致大量的告警被同时触发 抑制当某一告警发出后可以停止重复发送由此告警引发的其它告警的机制避免告警轰炸 静默根据标签对告警进行静默处理如果接收到的告警符合静默的配置 Alertmanager则不会发送告警通知 8.2 Alertmanager安装 源码安装默认端口9093 #解压 tar -zxvf alertmanager-0.24.0.linux-amd64.tar.gz #启动 ./alertmanager --config.filealertmanager.yml #守护进程方式启动 nohup ./alertmanager --config.filealertmanager.yml 访问 ipport 比如 http://112.74.xx.xxx:9093/#/alerts 8.3 Alertmanager邮件告警配置步骤
需求:部署的shop-project服务挂了就触发邮件给开发人员
步骤:
1.Prometheus的rules.yaml编写告警规则,配置Prometheus定义在哪些情况下被告警
Prometheus的rule.yaml(需要自己新建一个)配置文件 groups: # 告警规则组 - name: server-alarm rules: #规则可以配置多个alert告警 - alert: # 告警名称 expr: # 告警表达式基于PromQL表达式告警触发条件用于计算是否有时间序列满足该条件。 for: # 评估等待时间可选用于表示只有当触发条件持续一段时间后才发送告警在等待期间新产生告警 的状态为pending。 labels: #自定义标签允许用户指定要附加到告警上的一组附加标签。 severity: # 告警严重程度 annotations: #用于指定一组附加信息比如用于描述告警详细信息的文字等 summary: # 告警摘要 description: # 告警详细描述 配置Prometheus关联Alertmanager地址和rules规则启用 vim prometheus.yml 动态更新配置 curl -X POST http://localhost:9090/-/reload 在这也可以看到 当前状态 2.配置Alertmanager 添加Email、钉钉或者短信接收程序为告警通知指定目标和通知媒介
Alertmanager的alertmanager.yml配置文件
主要包含两个部分路由(route) 接收器(receivers) 告警信息会从配置中的顶级路由(route)进入路由树根据路由规则将告警信息发送给相应的接收器 global: smtp_smarthost: smtp.126.com:25 # SMTP服务器地址和端口 smtp_from: 131131777337126.com # 显示在邮件“发件人”字段中的地址 smtp_auth_username: 131131777337126.com # STMP认证时使用的用户名 smtp_auth_password: VBZGEVZXTIEJFOHW # SMTP认证时使用的密码不是密码 smtp_require_tls: false # SMTP服务器是否需要TLS加密 route: receiver: email # 发送告警通知的收件人和下面的接受者名称匹配 group_wait: 10s # 在发送前等待各个警报的时间 group_interval: 30s # 相同警报名称的警报发送间隔 repeat_interval: 10m # 重复发送警报的时间间隔 group_by: [alertname] # 根据警报名分组告警接收者 # 告警接收者 receivers: - name: email # 接收者名称 email_configs: - to: 71111222333qq.com # 接收告警邮件的收件人 邮箱准备126.com 然后重启Alertmanager #启动 ./alertmanager --config.filealertmanager.yml #守护进程方式启动 nohup ./alertmanager --config.filealertmanager.yml 验证步骤:
停止spring boot程序停止其他服务都可以 查看prometheus 这是挂了后的 查看alertmanager 查看邮件 到这就可以收到邮件告警提示拉~
九、Grafana的Alert监控告警
Grafana也有告警功能两个组件各有优缺点 Grafana更适合于小规模或简单的监控系统而Alertmanager更适合于大规模或更复杂的告警处理场景 9.1 Granfana的Alert和Alertmanager比对
Grafana 优点简单易用Grafana的告警规则配置界面直观易懂可以方便地设置告警的触发条件、持续时间和通知方式等。 缺点不支持高级告警逻辑。Grafana只能识别基于简单算术或表达式的逻辑无法支持更复杂的逻辑。 Alertmanager 优点提供高级告警逻辑功能支持许多常用的高级告警逻辑如静默、抑制和聚合等。 支持多通道分发告警支持将告警通知分发到多个通道如电子邮件短信等能够满足不同场景下的需求。 缺点复杂和难以部署Alertmanager的配置比Grafana更复杂需要深入了解监控系统和告警系统。 学习成本高Alertmanager需要学习更多的知识和技能才能掌握
9.2 Grafana的告警界面 9.3 Grafana新建推送通道 十、Grafana钉钉群告警机器人
需求使用Grafana的alert告警模块检测应用是否存活 配置自动告警机器人如果应用宕机超过1分钟推送到钉钉群
10.1 实战步骤
先进一个钉钉群然后添加机器人 选择自定义
、
IP地址段设置的意义就是设置后 只有这个地址的才能往钉钉中推送消息。也可以自定义关键词AND的关系。当自定义的关键词命中的时候也可以往钉钉群里推送消息。三个复选框是AND的关系。
复制地址 10.2 Grafana新建推送通道 10.3 面板Panel配置告警规则 需要选中想要检测的服务 然后再创建Alert IS ABOVE 填1。最新值在1之下的数据.选择 IS BELOW才可以0表示服务挂了。 save后点击Test Rule 10.4 错误信息跳转
配置钉钉错误信息详情跳转连接: docker exec -u 0 -it nannanw-grafana /bin/bash
需要修改容器中grafana的defaults.ini 将配置中domain localhost 改成grafana部署的服务器IP地址即可 保存后需要退出容器。然后再重启容器 重启容器 10.5 结果验证
关闭服务 查看grafana alerting 然后钉钉群就收到告警提示拉 点击连接之后就可以直接跳转到Grafana的详细告警页面 到这本文就更新结束拉~主要介绍prometheus怎么和应用服务关联 以及 其它相关exporter关联起来包括grafana中如何优雅的导入仪表盘 以及2种告警的配置~