您的位置:首页 > 娱乐 > 八卦 > 上海企业登记在线平台_b2b2c商城的服务商_爱站长尾词_营销型企业网站制作

上海企业登记在线平台_b2b2c商城的服务商_爱站长尾词_营销型企业网站制作

2024/12/22 5:40:11 来源:https://blog.csdn.net/xyyy060908/article/details/144574662  浏览:    关键词:上海企业登记在线平台_b2b2c商城的服务商_爱站长尾词_营销型企业网站制作
上海企业登记在线平台_b2b2c商城的服务商_爱站长尾词_营销型企业网站制作

  • 作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 •
  • 座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  • 个人主页:团儿.-CSDN博客

目录

前言:

正文:

Prometheus(普罗米修斯)

实验环境:

需要部署的组件:

##### 1)3个节点,全部部署node-EXporter,和cAdvisor.

//部署node-EXporter,收集硬件和系统信息。

验证:打开浏览器验证结果。

//部署安装cAdvisor,收集节点容器信息。

部署完成之后,打开浏览器验证。

##### 2)在docker01上部署Prometheus Server服务。

//重新运行prometheus容器。

浏览器访问验证。

##### 3)在docker01上,部署grafana服务,用来展示prometheus收集到的数据。

浏览器访问验证:

设置Grafana,添加数据来源(prometheus)

点击“DATA SOURCES”

选择“Prometheus”

选中一款模板,然后,我们有2种方式可以套用这个模板。

​**第一种方式:通过JSON文件使用模板。**

**第二种导入模板的方式**:

grafana常用监控模板

1、监控物理机/虚拟机ID(Linux)

2、监控物理机/虚拟机ID(windows)

3、监控容器ID

4、监控数据库ID

5、监控网站或者协议端口ID

配置AlertManager

简单介绍一下主要配置的作用:

配置如下:

[root@docker1 ~]#

修改 AlertManager 启动命令,将本地 alertmanager.yml 文件挂载到容器内指定位置

### Prometheus 配置 AlertManager 告警规则

PS:该 rules 目的是监测 node 是否存活

然后,修改 prometheus.yml 配置文件,添加 rules 规则文件

此时在prometheus主页上可以看到相应规则

关闭某个node触发报警发送 Email


很开心和大家分享Prometheus的相关内容哦~

本实验所要用到的镜像在  ↓↓↓

通过网盘分享的文件:prometheus111
链接: https://pan.baidu.com/s/13v3efJo1QigSrWSVyvT6Ag 提取码: wudd


前言:

随着云计算和容器化技术的飞速发展,Docker已经成为现代软件开发和部署不可或缺的一部分。然而,随着Docker容器的广泛应用,如何高效地监控和管理这些容器成为了新的挑战。

在众多监控工具中,Prometheus凭借其强大的监控能力、灵活的告警机制以及丰富的数据可视化功能,逐渐成为Docker监控领域的佼佼者。Prometheus不仅可以实时监控Docker容器的运行状态、资源使用情况等关键信息,还可以对异常情况进行及时告警,为运维人员提供了极大的便利。

本文档将详细介绍如何使用Prometheus对Docker进行高效监控。我们将从Prometheus的基本概念入手,逐步深入讲解其安装、配置、使用以及与其他工具的集成方法。同时,我们还将结合实际应用场景,分享一些实用的监控技巧和最佳实践,帮助读者更好地掌握Prometheus在Docker监控中的应用。

希望本文档能够为广大Docker运维人员提供一份实用的指南,助力大家更好地应对Docker监控的挑战,提升系统的稳定性和可靠性。


正文:

Prometheus(普罗米修斯)

prometheus官方网站:https://prometheus.io/

Prometheus是由SoundCloud开发的开源监控系统的开源版本。2016年,由Google发起的Linux基金会(Cloud Native Computing Foundation,CNCF)将Prometheus纳入其第二大开源项目。Prometheus在开源社区也十分活跃

易管理性:

Prometheus: Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。
Nagios: 需要有专业的人员进行安装,配置和管理,并且过程很复杂。

业务数据相关性:

Prometheus:监控服务的运行状态,基于Prometheus丰富的Client库,用户可以轻松的在应用程序中添加对Prometheus的支持,从而让用户可以获取服务和应用内部真正的运行状态。
Nagios:大部分的监控能力都是围绕系统的一些边缘性的问题,主要针对系统服务和资源的状态以及应用程序的可用性。

另外Prometheus还存在以下优点:

高效:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点。
易于伸缩:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群;Prometheus提供多种语言的客户端SDK,这些SDK可以快速让应用程序纳入到Prometheus的监控当中。
良好的可视化:Prometheus除了自带有Prometheus UI,Prometheus还提供了一个独立的基于Ruby On Rails的Dashboard解决方案Promdash。另外最新的Grafana可视化工具也提供了完整的Proetheus支持,基于Prometheus提供的API还可以实现自己的监控可视化UI。

实验环境:

| 主机名称 | IP地址         | 安装组件                                            |
| -------- | ------------- | -------------------------------------------------- |
| docker1  | 192.168.8.10 | NodeEXporter、cAdvisor、Prometheus Server、Grafana |
| docker2  | 192.168.8.20 | NodeEXporter、cAdvisor                             |
| docker3  | 192.168.8.30 | NodeEXporter、cAdvisor                             |

全部关闭防火墙,禁用selinux。

需要部署的组件:

Prometheus Server: 普罗米修斯的主服务器。

NodeEXporter: 负责收集Host硬件信息和操作系统信息。

cAdvisor: 负责收集Host上运行的容器信息。

Grafana: 负责展示普罗米修斯监控界面。


##### 1)3个节点,全部部署node-EXporter,和cAdvisor.

//部署node-EXporter,收集硬件和系统信息。
docker run -d -p 9100:9100 --name exporter -v /proc:/host/proc -v /sys:/host/sys -v /:/rootfs --net=host prom/node-exporter --path.procfs /host/proc --path.sysfs /host/sys --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

PS: 注意,这里使用了--net=host,这样Prometheus Server可以直接与Node-EXporter通信。

验证:打开浏览器验证结果。
http://192.168.8.20:9100

//部署安装cAdvisor,收集节点容器信息。
docker run -v /:/rootfs:ro -v /var/run:/var/run/:rw -v /sys:/sys:ro -v /var/lib/docker:/var/lib/docker:ro -p 8080:8080 --detach=true --name=cadvisor --net=host google/cadvisor
部署完成之后,打开浏览器验证。
http://192.168.8.20:8080

##### 2)在docker01上部署Prometheus Server服务。

在部署prometheus之前,我们需要对它的配置文件进行修改,所以我们先运行一个容器,先将其配置文件拷贝出来。

docker run -d -p 9090:9090 --name prometheus --net=host prom/prometheusdocker cp prometheus:/etc/prometheus/prometheus.yml /root
vim prometheus.yml
'localhost:9090','localhost:8080','localhost:9100','192.168.8.30:8080','192.168.8.30:9100','192.168.8.40:8080','192.168.8.40:9100'

PS: 这里指定了prometheus的监控项,包括它也会监控自己收集到的数据。

修改配置文件后删除掉前面开启的prometheus容器,因为我们已经得到配置文件并按照实际修改了,后面需要重新开启新的容器

docker rm -f prometheus  
//重新运行prometheus容器。
docker run -d -p 9090:9090 --name prometheus --net=host -v /root/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
浏览器访问验证。
http://192.168.8.20:9090/targets

PS: 这里能够查看到我们各个监控项。

##### 3)在docker01上,部署grafana服务,用来展示prometheus收集到的数据。

mkdir /grafana-storage 
chmod 777 -R /grafana-storage/docker run -d -p 3000:3000 --name grafana -v /grafana-storage:/var/lib/grafana -e "GF_SECURITY_ADMIN_PASSWORD=123.com" grafana/grafana
浏览器访问验证:
http://192.168.8.20:3000/login

用户名:admin
密码:123.com


设置Grafana,添加数据来源(prometheus)
点击“DATA SOURCES”

选择“Prometheus”

Name 选择Prometheus   
URL  填写http://192.168.8.20:9090

拉到底点击  Save & Test

PS: 看到这个提示,说明prometheus和grafana服务的是正常连接的。

此时,虽然grafana收集到了数据,但怎么显示它,仍然是个问题,grafana支持自定义显示信息,不过要自定义起来非常麻烦,不过好在,grafana官方为我们提供了一些模板,来供我们使用。

grafana官网: https://grafana.com/ 

Grafana
Dashboards
Prometheus
Node Exporter for full
Download JSON

选中一款模板,然后,我们有2种方式可以套用这个模板。

​**第一种方式:通过JSON文件使用模板。**

下载完成之后,来到grafana控制台
http://192.168.8.20:3000/datasources
点击左侧“+”,import ,upload JSON file


**第二种导入模板的方式**:

​可以直接通过模板的ID 号。
11074    #监控节点信息

10619     #监控docker容器

grafana常用监控模板

1、监控物理机/虚拟机ID(Linux)

8919
9276
1860
12633

2、监控物理机/虚拟机ID(windows)

10467
10171
2129

3、监控容器ID

3146
8685
10000
8588
315

4、监控数据库ID

7362
10101

5、监控网站或者协议端口ID

http监控某个网站
icmp监控某台机器
tcp监控某个端口
dns监控dns
9965

Nginx
9614
2949


配置AlertManager

接下来,我们需要启动 AlertManager 来接受 Prometheus 发送过来的报警信息,并执行各
种方式的告警。同样以 Docker 方式启动 AlertManager,最简单的启动命令如下

docker run --name alertmanager -d -p 9093:9093 prom/alertmanager:latestdocker cp alertmanager:/etc/alertmanager/alertmanager.yml /root

这里 AlertManager 默认启动的端口为 9093,启动完成后,浏览器访问 http://<IP>:9093 可以看到默认提供的 UI 页面,不过现在是没有任何告警信息的,因为我们还没有配置报警规则来触发报警。

URL:http://192.168.8.60:9093

AlertManager 配置邮件告警

AlertManager 默认配置文件为 alertmanager.yml,在容器内路为/etc/alertmanager/alertmanager.yml


简单介绍一下主要配置的作用:

- ​    global: 全局配置,包括报警解决后的超时时间、SMTP 相关配置、各种渠道通知的 API 地址等等。
- ​    route: 用来设置报警的分发策略,它是一个树状结构,按照深度优先从左向右的顺序进行匹配。
- ​    receivers: 配置告警消息接受者信息,例如常用的 email、wechat、slack、webhook 等消息通知方式。
- ​    inhibit_rules: 抑制规则配置,当存在与另一组匹配的警报(源)时,抑制规则将禁用与一组匹配的警报(目标)。

那么,我们就来配置一下使用 Email 方式通知报警信息,这里以 QQ 邮箱为例,

当然在配置QQ邮箱之前,需要我们登录QQ邮箱,打开SMTP服务,并获取授权码。

配置如下:

[root@docker1 ~]#
vim alertmanager.yml
global:resolve_timeout: 5msmtp_from: '收件邮箱'smtp_smarthost: 'smtp.qq.com:465'smtp_auth_username: '收件邮箱'smtp_auth_password: '认证密码'smtp_require_tls: falsesmtp_hello: 'qq.com'
route:group_by: ['alertname']group_wait: 5sgroup_interval: 5srepeat_interval: 5mreceiver: 'email'
receivers:
- name: 'email'email_configs:- to: '收件邮箱'send_resolved: true
inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']

PS: 以上模板中涉及的QQ邮箱换成自己的即可,授权码也一样。


修改 AlertManager 启动命令,将本地 alertmanager.yml 文件挂载到容器内指定位置

[root@docker1 ~]#

docker rm -f alertmanager

 [root@docker01 ~]#

docker run -d --name alertmanager -p 9093:9093 -v /root/alertmanager.yml:/etc/alertmanager/alertmanager.yml prom/alertmanager

### Prometheus 配置 AlertManager 告警规则

接下来,我们需要在 Prometheus 配置 AlertManager 服务地址以及告警规则,新建报警规则文件 node-up.rules 如下

mkdir  -p /root/prometheus/rules
cd /root/prometheus/rules/

[root@docker1 rules]#

vim node-up.rules 
groups:
- name: node-uprules:- alert: node-upexpr: up{job="prometheus"} == 0for: 15slabels:severity: 1team: nodeannotations:summary: "{{ $labels.instance }} 已停止运行超过 15s!"
PS:该 rules 目的是监测 node 是否存活

expr 为 PromQL 表达式验证特定节点 job="node-exporter" 是否活着,
for 表示报警状态为 Pending 后等待 15s 变成 Firing 状态,一旦变成 Firing 状态则将报警发送到 AlertManager,
labels 和 annotations 对该 alert 添加更多的标识说明信息,所有添加的标签注解信息,以及 prometheus.yml 中
该 job 已添加 label 都会自动添加到邮件内容中,更多关于 rule 详细配置可以参考 
https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#rule

然后,修改 prometheus.yml 配置文件,添加 rules 规则文件

 vim /root/prometheus.yml
alerting:alertmanagers:- static_configs:- targets:- 192.168.8.20:9093rule_files:- "/usr/local/prometheus/rules/*.rules"

PS:这里 rule_files 为容器内路径,需要将本地 node-up.rules 文件挂载到容器内指定路径,修改 Prometheus 启动命令如下,并重启服务。

docker rm -f prometheus docker run -d -p 9090:9090 -v /root/prometheus.yml:/etc/prometheus/prometheus.yml -v /root/prometheus/rules:/usr/local/prometheus/rules --name prometheus --net=host prom/prometheus

此时在prometheus主页上可以看到相应规则

http://192.168.8.20:9090/targets

Status
Rules

关闭某个node触发报警发送 Email


期待您的关注~   

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com