一、前生今世
添加图片注释,不超过 140 字(可选)
Prometheus 是完全开源的系统监控和告警工具包,它受 Google 内部的 BorgMon 监控系统启发,由前Google 工程师从 2012 年开始在 SoundCloud 以开源软件的形式进行研发,自此以后,许多公司和组织都采用了Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。
自2012年推出以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。
Prometheus的主要特点是:
- 多维数据模型,其中时间序列数据由指标名称和键/值对标识
- PromQL,一种 利用此维度的灵活查询语言
- 不依赖分布式存储;单个服务器节点是自治的
- 时间序列收集通过 HTTP 上的拉模型进行
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
二、架构图
下图说明了 Prometheus 的架构及其一些生态系统组件:
添加图片注释,不超过 140 字(可选)
三、安装
开启内核路由转发
echo -e "net.ipv4.ip_forward = 1\nnet.ipv4.conf.default.rp_filter = 0 \nnet.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf sysctl -p
创建配置文件
vim prometheus.yml # my global config global: scrape_interval: 15s # 采集被监控段指标的一个周期 evaluation_interval: 15s # 告警评估的一个周期 # 告警的配置文件 alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # 告警规则配置 rule_files: # - "first_rules.yml" # 被监控端的配置,目前只有一个节点,就是prometheus本身 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
启动镜像,将主配置文件挂载到容器内
docker run -d -p 9090:9090 \ --name prometheus \ --restart on-failure \ -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
执行后需要下载镜像文件,需要等待一会。
完全启动后可以,访问Prometheus自带的UI:http://xx.xx.xx.xx:9090/
添加图片注释,不超过 140 字(可选)
自带的WEB UI比较简单,后面会说到功能比较全面dashboard grafana。
四、使用
添加图片注释,不超过 140 字(可选)
cAdvisor 是 Google 开源的容器监控工具,它可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据。cAdvisor 可以部署在 Kubernetes 集群中的每个节点上,以收集集群中所有容器的监控数据。
cAdvisor 部署的目的如下:
- 监控容器的运行状态:cAdvisor 可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据,这些数据可以帮助我们了解容器的运行状态,并及时发现异常情况。
- 分析容器的性能瓶颈:通过分析 cAdvisor 收集的监控数据,我们可以分析容器的性能瓶颈,并采取措施进行优化。
- 提高容器的资源利用率:通过监控容器的资源使用情况,我们可以合理分配资源,提高容器的资源利用率。
cAdvisor 是 Kubernetes 集群中必不可少的监控工具,它可以帮助我们更好地了解和管理容器。
cAdvisor 的优势
- 开源:cAdvisor 是完全开源的,可以免费使用。
- 轻量级:cAdvisor 是一个轻量级的应用程序,不会给集群带来太大的负载。
- 易用:cAdvisor 的配置和使用都非常简单。
cAdvisor 的缺点
- 数据存储能力有限:cAdvisor 默认会将监控数据存储在内存中,如果数据量较大,可能会导致内存溢出。
- 可视化能力有限:cAdvisor 本身没有提供可视化工具,需要使用第三方工具来可视化监控数据。
cAdvisor 的部署
- 使用 Helm 部署:Helm 是一个 Kubernetes 包管理工具,可以使用 Helm 来部署 cAdvisor。
- 使用 Docker 部署:cAdvisor 可以作为 Docker 容器运行,可以使用 Docker 来部署 cAdvisor。
- 手动部署:可以下载 cAdvisor 的二进制文件,并手动部署到 Kubernetes 集群中。
下面介绍docker部署cAdvisor:
docker run -d \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/dev/disk/:/dev/disk:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
访问该地址,就能看到实时采集到的数据:http://xx.xx.xx.xx:8080/containers/
添加图片注释,不超过 140 字(可选)
http://xx.xx.xx.xx:8080/metrics/ 就是cAdvisor提供的数据接口。
添加图片注释,不超过 140 字(可选)
然后修改prometheus.yml
vim /data/prometheus/prometheus.yml
修改prometheus的配置文件,复制一个job文件,job_name 指名称,targets为cAdvisor服务器地址ip和端口
# global config global: scrape_interval: 15s # 采集被监控段指标的一个周期 evaluation_interval: 15s # 告警评估的一个周期 # 告警的配置文件 alerting: alertmanagers: - static_configs: - targets: # 告警规则配置 rule_files: # - "first_rules.yml" # 被监控端的配置,目前只有一个节点,就是prometheus本身 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'prometheus docker' static_configs: - targets: ['10.9.2.50:8080']
修改完成重启prometheus
docker restart prometheus
http://xx.xx.xx.xx:9090/targets 可以看到监控指标说明获取数据成功
添加图片注释,不超过 140 字(可选)
五、监控界面
添加图片注释,不超过 140 字(可选)
Grafana 是一个开源的监控和可视化工具,它可以连接到各种数据源,并以图表、仪表盘和报表的形式展示数据。Grafana 可以用于监控任何类型的系统,包括 Kubernetes 集群、Web 应用程序、IoT 设备等。
Grafana 的功能
- 连接到各种数据源:Grafana 支持连接到各种数据源,包括 Prometheus、InfluxDB、Elasticsearch、MySQL、PostgreSQL 等。
- 以图表、仪表盘和报表的形式展示数据:Grafana 提供了丰富的图表类型,可以满足不同的数据展示需求。
- 支持自定义仪表盘:Grafana 允许用户自定义仪表盘,以满足特定的监控需求。
- 支持报警:Grafana 可以将报警通知发送到 Slack、邮件等方式。
Grafana 的优势
- 开源:Grafana 是完全开源的,可以免费使用。
- 灵活:Grafana 可以连接到各种数据源,并以各种方式展示数据。
- 易用:Grafana 的配置和使用都非常简单。
Grafana 的缺点
- 数据存储能力有限:Grafana 本身没有提供数据存储功能,需要使用第三方工具来存储数据。
- 可视化能力有限:Grafana 提供的图表类型有限,可能无法满足复杂的监控需求。
Grafana 的部署
- 使用 Docker 部署:Grafana 可以作为 Docker 容器运行,可以使用 Docker 来部署 Grafana。
- 手动部署:可以下载 Grafana 的二进制文件,并手动部署到服务器上。
下面是docker方式部署grafana
docker run -d --name=grafana -p 3000:3000 grafana/grafana
执行后,下载镜像并启动。http://xx.xx.xx.xx:3000,默认用户名/密码:admin/admin
添加图片注释,不超过 140 字(可选)
选择 "Add your first data source"
添加图片注释,不超过 140 字(可选)
进入后选择Prometheus
添加图片注释,不超过 140 字(可选)
填写相关信息
添加图片注释,不超过 140 字(可选)
添加Prometheus模板
添加图片注释,不超过 140 字(可选)
输入id号,193
添加图片注释,不超过 140 字(可选)
下拉,选择Prometheus,然后Import
添加图片注释,不超过 140 字(可选)
成功展示来由Prometheus数据
添加图片注释,不超过 140 字(可选)
如果文章对你有帮助,欢迎关注+点赞,必回关!!!