• 2.prometheus安装及简单使用


    参考文档:https://prometheus.io/docs/prometheus/latest/getting_started/

    一、使用docker部署prometheus

    [root@node1 ~]# docker search prometheus
    [root@node1 ~]# docker pull prom/prometheus
    [root@node1 prometheus]# docker run --name prometheus-server -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus  #准备一份默认配置文件放到/opt/prometheus/下
    [root@node1 ~]# docker ps | grep prometheus
    浏览器访问可以获得一些基础数据:
    [root@node1 ~]# curl -X POST http://localhost:9090/-/reload #重新加载配置,默认是没有开启的,启动的时候需要加上需要--web.enable-lifecycle参数开启
    [root@node1 ~]# docker run --name prometheus-server -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus   --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/prometheus --web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/consoles --web.enable-lifecycle 
    #查看镜像里的cmd entrypoint,修改运行容器命令。也可以修改镜像。此处只是为了实验修改配置热加载方便。(没效果)
    # 由于热加载没效果,实验的时候直接重启容器会生效
    [root@node1 ~]# docker restart prometheus-server

    二、使用node_exporter监控节点

    
    
    [root@node1 prometheus]# wget https://github.com/prometheus/node_exporter/releases/download/v0.16.0/node_exporter-0.16.0.linux-amd64.tar.gz 
    [root@node1 prometheus]# tar xf node_exporter-0.16.0.linux-amd64.tar.gz
    [root@node1 prometheus]# cd node_exporter
    -0.16.0.linux-amd64
    [root@node1 node_exporter
    -0.16.0.linux-amd64]# ./node_exporter --version
    [root@node1 node_exporter
    -0.16.0.linux-amd64]# ./node_exporter --help

    1、配置文本文件采集器

    [root@node1 node_exporter]# mkdir textfile_collector
    [root@node1 node_exporter]# echo 'metadata{role="node1",datacenter="CD"} 1' > textfile_collector/metadata.prom  
    注:文本文件收集器,默认是加载的,只需要在启动时指定采集文件即可。
    [root@node1 node_exporter]# ./node_exporter --collector.textfile.directory=/opt/prometheus/node_exporter/textfile_collector/
    启动成功后默认监听端口为9100,浏览器访问: http://192.168.42.133:9100/metrics,可以搜索到在文件中写的数据

    2、启用systemd采集器

    --collector.systemd #默认是关闭的
    --collector.systemd.unit-whitelist=".+"   # 从systemd中循环正则匹配单元。白名单,收集目标。对应的也有黑名单方式。
    --collector.systemd.unit-blacklist=".+\.scope" #黑名单
    [root@node1 node_exporter]# ./node_exporter --collector.systemd --collector.systemd.unit-whitelist="(docker|sshd|nginx).service" --web.telemetry-path='/systemd_metrics'
    启动成功后默认监听端口为9100,浏览器访问:http://192.168.42.133:9100/systemd_metrics,搜索systemd,可以看到有docker和sshd对应systemd采集的数据。

    3、修改prometheus配置文件,采集node_exporter的数据

    在scrape_configs模块添加一个job:
    global:
      scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
      evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
    
    alerting:
      alertmanagers:
      - static_configs:
        - targets:
          # - alertmanager:9093
    
    rule_files:
      # - "first_rules.yml"
      # - "second_rules.yml"
    
    scrape_configs:
      - job_name: 'prometheus'
    
        static_configs:
        - targets: ['localhost:9090']
      
      
      - job_name: 'node_exporter'
        static_configs:
        - targets: ['192.168.42.133:9100','192.168.42.128:9100']
        params:
          collect[]:
            - cpu
            - meminfo
            - diskstats
    注意:prometheus默认采集点是http://ip:port/metrics,如果修改了无法采集,需要在prometheus配置文件里指明 metrics_path。
    更改配置,只采集想要的数据:
      - job_name: 'node_exporter'
        static_configs:
        - targets: ['192.168.42.133:9100','192.168.42.128:9100']
        params:
          collect[]:
            - cpu
            - meminfo
            - diskstat

    三、使用容器CAdvisor监控节点

    安装CAdvisor
    [root@node1 ~]# docker run --name cadvisor -d -p 8181:8080 google/cadvisor
    [root@node1 ~]# docker run --name cadvisor -d -p 8181:8080 --volume=/:/rootfs:ro 
    --volume=/var/run:/var/run:rw 
    --volume=/sys:/sys:ro 
    --volume=/var/lib/docker/:/var/lib/docker:ro 
    --volume=/dev/disk/:/dev/disk:ro  google/cadvisor #容器需要采集节点的一些数据,所以需要挂载节点目录到容器。
    同node_exporter一样,prometheus更改配置采集其数据即可。
    注:运行了kubelet的节点可以直接通过访问api-server获取到metric数据。单独的CAdvisor UI以及旧版使用的端口已经废弃。
    [root@master ~]# kubectl proxy
    [root@master ~]# curl http://localhost:8001/api/v1/nodes/master/proxy/metrics 【master为节点名称】
     
  • 相关阅读:
    从表达式到变量:一行scheme代码之所见
    document 文挡对象详解(JavaScript脚本语言描述)
    开源Linux系统成为微软Vista竞争对手
    Java下的框架编程(5)cglib的应用
    如何做好职业规划(乾卦)
    Asianux将成为最先进的安全Linux操作系统
    开发人员行走Unix的随身四艺
    Java中类初始化的顺序
    用Java线程获取优异性能(II)——使用同步连载线程访问关键代码部份
    prototype.js的扩展
  • 原文地址:https://www.cnblogs.com/cmxu/p/12264313.html
Copyright © 2020-2023  润新知