zoukankan      html  css  js  c++  java
  • Prometheus完整的部署方案+实战实例

    Prometheus简介是一套开源的系统监控报警框架。Prometheus作为新一代的云原生监控系统,相比传统监控监控系统(Nagios或者Zabbix)拥有如下优点

    易管理性:Prometheus核心部分只有一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储

    高效性:单一Prometheus可以处理数以百万的监控指标;每秒处理数十万的数据点

    易于伸缩性:通过使用功能分区(sharing)+联邦集群(federation)可以对Prometheus进行扩展,形成一个逻辑集群

    丰富的看板:多种可视化图表及仪表盘支持

    针对容器监控:对docker,k8S监控有成熟解决方案

    Prometheus架构图

    Prometheus  Server:  收集指标和存储时间序列数据,并提供查询接口
    ClientLibrary:客户端库
    Push Gateway: 短期存储指标数据。主要用于临时性的任务
    Exporters:采集已有的第三方服务监控指标并暴露metrics
    Alertmanager:告警
    Web  UI :简单的web控制台

    官方安装说明

    https://prometheus.io/docs/prometheus/latest/installation/

    准备两台服务器

    192.168.106.101   #Prometheus服务端
    192.168.106.100   #被监控服务器

    101下载prometheus.yml主配置文件

    # 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']

    下载镜像

    docker pull   prom/prometheus 

    开启内核路由转发

    echo -e "net.ipv4.ip_forward = 1
    net.ipv4.conf.default.rp_filter = 0 
    net.ipv4.conf.all.rp_filter = 0" >> /etc/sysctl.conf
    sysctl -p

    启动镜像,将主配置文件挂载到容器内

    docker run -d  --name=prometheus   -p 9090:9090   -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml    prom/prometheus

    http://192.168.106.101:9090/  #访问该地址,出现一个简单ui界面,说明部署成功

    实战一:监控一个容器服务(常用的监控指标有: 内存,CPU,硬盘,网络,状态)

    非交互获取容器的监控指标
    `docker stats  --no-stream  lnmp_nginx 


    cAdvisor (Container Advisor) 用于收集正在允许的容器资源使用和性能信息。相当于zabbix-agent一样提供一个数据采集的接口

    docker部署cAdvisor:

    100被监控服务器安装

    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://192.168.106.100:8080/containers/  

     

    去101上修改prometheus的配置文件,复制一个job文件,job_name 指名称,targets为cAdvisor服务器地址ip和端口

    vim    /tmp/prometheus.yml
     

    docker  restart  prometheus  #重启服务

    http://192.168.106.101:9090/  可以看到监控指标说明获取数据成功

     

    101服务器上安装grafana
    docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

    http://192.168.106.101:3000/   #p配置数据源,配置完成点击保存

    https://grafana.com/grafana/download    #该地址下载grafana模板

    保存,选择Prometheus数据源后可以看到如下图所示

    可以看到100上所有容器都被监控到了,至此监控容器完成!

    实战二:监控Linux主机

    编写了一个采集linux主机metrics的脚本

     cat   node_exporter.sh
     #!/bin/bash

    wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz

    tar zxf node_exporter-0.17.0.linux-amd64.tar.gz
    mv node_exporter-0.17.0.linux-amd64 /usr/local/node_exporter

    cat <<EOF >/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
    EOF

    systemctl daemon-reload
    systemctl enable node_exporter
    systemctl restart node_exporter

    运行这个脚本就能监控Linux主机

    测试 访问

    http://192.168.106.100:9100/metrics

    说明采集信息成功

    修改101服务上的配置文件/tmp/prometheus.yml

    docker restart prometheus

    检测方法:http://192.168.106.101:9090/classic/targets,up说明采集成功

    然后配置grafana仪表盘,本次导入9276模板,和刚才导入模板的方式一致。导入完成即可看到如图所示模板

    至此实战监控Linux部署完成

  • 相关阅读:
    list tuple dict 方法
    字典的方法
    看不懂的缩写
    canvas画图
    DOM2和DOM3
    表单脚本
    事件
    DOM扩展
    DOM
    BOM
  • 原文地址:https://www.cnblogs.com/llddhh/p/14383903.html
Copyright © 2011-2022 走看看