prometheus exporter监控部署(一)

prometheus exporter监控部署(一)

github项目

https://github.com/prometheus/prometheus

https://github.com/grafana/grafana

prometheus原理

image

  1. Prometheus server Prometheus服务器,用于抓取和存储时间序列数据。Prometheus server 由三个部分组成:Retrival,Storage,PromQL

    Retrieval:负责在活跃的target 主机上抓取监控指标数据。
    Storage:存储,主要是把采集到的数据存储到磁盘中。默认为15天(可修改)。
    PromQL:是Prometheus提供的查询语言模块。

  2. client libraries 客户端库,用于检测应用程序代码的客户端库。Prometheus本身提供了支持多种语言的SDK,用于对接 Prometheus Server, 可以查询和上报数据。目的在于为那些期望原生提供Instrumentation功能的应用程序提供便捷的开发途径。

  3. push gateway 支持短期工作的推送网关。类似一个中转站,可以理解成目标主机可以上报短期任务的数据到Pushgateway,然后Prometheus server 统一从Pushgateway拉取数据。

  4. exporters 指标暴露器,负责收集不支持内建Instrumentation的应用程序或服务的性能指标数据,并通过HTTP接口供Prometheus Server获取。用于暴露已有的第三方服务的 metrics 给 Prometheus。

  5. alertmanager 是一个独立的告警模块,从Prometheus server端接收到“告警通知”后,会进行去重、分组,并路由到相应的接收方,发出报警。

  6. Service Discovery:服务发现,用于动态发现待监控的Target,Prometheus支持多种服务发现机制,例如文件、DNS、Consul、Kubernetes等等。

  7. Grafana:是一个跨平台的开源的度量分析和可视化工具,可以将采集的数据可视化的展示,并及时通知给告警接收方。其官方库中具有丰富的仪表盘插件。

prometheus配置

# my global config
global:
  scrape_interval:     15s # 采集被监控段指标的一个周期
  evaluation_interval: 15s # 告警评估的一个周期

# 告警的配置文件,目前未涉及
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# 告警规则配置
rule_files:
  # - "first_rules.yml"
#被监控端的配置
scrape_configs:

  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

  - job_name: "docker"
    static_configs:
    - targets: ['192.168.31.62:8080']

  - job_name: "Linux"
    static_configs:
    - targets: ['192.168.31.62:9100']

prometheus grafana 安装

#grafana docker部署
docker pull grafana/grafana
docker run -itd --name=grafana --restart=always -p 3000:3000 -v /home/grafana grafana/grafana

#prometheus docker部署
docker pull prom/prometheus
docker run -d --name=prometheus --restart=always -p 9090:9090 -v /root/tmp/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

#查看docker部署是否成功
docker ps

prometheus Exporter应用

  1. 下载exporter

    https://github.com/prometheus/node_exporter

    不同操作系统使用对应的暴露器,官方暴露器监控指标覆盖不全,自定义指标可使用自研采集器

  2. 运行exporter

    下载执行程序后解压运行,其中node exporter默认监听端口9100,因此在server端配置文件中设置端口时需要对应

    linux系统设置开机自启动配置

    #1.解压exporter工具
    tar zxf node_exporter-0.17.0.linux-amd64.tar.gz
    mv node_exporter-0.17.0.linux-amd64/* /usr/local/node_exporter
    
    #2.linux系统设置开机自启动配置配置文件
    #/usr/lib/systemd/system/node_exporter.service
    [Unit]
    Description=https://prometheus.io
    
    [Service]
    Restart=on-failure
    ExecStart=/usr/local/node_exporter/node_exporter
    
    [Install]
    WantedBy=multi-user.target
    
    #3.设置系统权限
    systemctl enable node_exporter
    systemctl restart node_exporter
    
    
    #4.设备使用后台方式运行,AC使用arm版本
    iptables -I INPUT_ZONE_WAN -i br-wan+ -p tcp -m tcp --dport 9100 -j ACCEPT #放开9100端口防火墙限制
    nohup node_exporter-1.7.0.linux-arm64/node_exporter > /dev/null &
    
  3. 检查采集结果

    通过 http://[ip address]:9100/ 可查看exporter执行结果

    image

    设备可能因为防火墙导致接口无法访问,实际使用时需要注意放开相关端口

  4. 检查prometheus采集结果

    在server端查看监控状态 state显示up即为监控成功

    image

  5. 查看监控数据图表

    通过Graph页面借助PromQL指令可以查询保存的数据,可查看数据结果,PromQL指令较为繁琐,此处可直接使用grafana导入数据使用其数据表盘直观查看

    image

grafana数据展示

  1. 进入web页面添加数据源,通过http://[ip address]:3000/访问web页面并添加数据源

    ​​image​​

  2. 检查数据源是否正常,获取失败时检查prometheus server防火墙状态

     systemctl stop firewalld
     systemctl disable firewalld
    

    image

  3. 设置数据面板表盘模板格式 更多格式访问https://grafana.com/grafana/dashboards/

    image

  4. 设置完成后导入数据,查看面板展示结果如下

    以ID1860 Node Exporter Full为例

    ​​image​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值