13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

无痛入门Prometheus:一个强大的开源监控和告警系统,安装使用

一、前生今世

Prometheus 是完全开源的系统监控和告警工具包,它受 Google 内部的 BorgMon 监控系统启发,由前Google 工程师从 2012 年开始在 SoundCloud 以开源软件的形式进行研发,自此以后,许多公司和组织都采用了Prometheus 作为监控告警工具。Prometheus 的开发者和用户社区非常活跃,它现在是一个独立的开源项目,可以独立于任何公司进行维护。

自2012年推出以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发者和用户社区。它现在是一个独立的开源项目,独立于任何公司进行维护。为了强调这一点,并明确项目的治理结构,Prometheus 于 2016 年加入 云原生计算基金会,成为继Kubernetes之后的第二个托管项目。

Prometheus的主要特点是:

二、架构图

下图说明了 Prometheus 的架构及其一些生态系统组件:

三、安装

开启内核路由转发。

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/。

自带的WEB UI比较简单,后面会说到功能比较全面dashboard grafana。

四、使用

cAdvisor 是 Google 开源的容器监控工具,它可以收集容器的资源使用情况、网络流量、文件系统使用情况等指标数据。cAdvisor 可以部署在 Kubernetes 集群中的每个节点上,以收集集群中所有容器的监控数据。

cAdvisor 部署的目的如下:

cAdvisor 是 Kubernetes 集群中必不可少的监控工具,它可以帮助我们更好地了解和管理容器。

cAdvisor 的优势

cAdvisor 的缺点

cAdvisor 的部署

下面介绍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/。

http://xx.xx.xx.xx:8080/metrics/ 就是cAdvisor提供的数据接口。

然后修改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 可以看到监控指标说明获取数据成功。

五、监控界面

Grafana 是一个开源的监控和可视化工具,它可以连接到各种数据源,并以图表、仪表盘和报表的形式展示数据。Grafana 可以用于监控任何类型的系统,包括 Kubernetes 集群、Web 应用程序、IoT 设备等。

Grafana 的功能

Grafana 的优势

Grafana 的缺点

Grafana 的部署

下面是docker方式部署grafana。

docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

执行后,下载镜像并启动。http://xx.xx.xx.xx:3000,默认用户名/密码:admin/admin。

选择 "Add your first data source"。

进入后选择Prometheus。

填写相关信息。

添加Prometheus模板。

输入id号,193。

下拉,选择Prometheus,然后Import。

成功展示来由Prometheus数据。


本文标题:无痛入门Prometheus:一个强大的开源监控和告警系统,安装使用
标题网址:http://cdbrznjsb.com/article/dpdsjgp.html

其他资讯

让你的专属顾问为你服务