• 尊龙时凯

    热门搜索 Zabbix技术资料 Zabbix常见问、答讨论 成功案例 Zabbix交流区 Prometheus交流区

    Prometheus技术分享——如何监控宿主机和容器

    这一期主要来跟大家聊一下,使用node_exporter工具来暴露主机和因公程序上的指标,利用prometheus来监控宿主机;以及通过通过Cadvisor监控docker容器。

    一、部署node_exporter监控宿主机

    # 1 下载软件包 wget http://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz # 创建node exporter运行目录 mkdir -p /usr/local/node_exporter tar -xf node_exporter-1.4.0.linux-amd64.tar.gz cd node_exporter-1.4.0.linux-amd64 && mv ./* /usr/local/node_exporter #验证 ./node_exporter --version

    查看node_exporter配置

    ./node_expoter –help

    #默认运行端口

    –web.listen-address=”:9100″

    # 暴露指标的路径

    –web.telemetry-path=”/metrics”

    #注意:通过配置参数,可以决定启用哪些收集器。

    #启动node_exporter,可以指定参数进行覆盖

    nohup ./node_exporter –web.listen-address=”:9600″

    –web.telemetry-path=”/metrics” &

    #查看是否启动完成 ps -ef | grep node_exporter

    部署配置textfile收集器

    说明: textfile收集器允许我们暴露自定义指标,这些自定义指标可能是批处理或cron作业无法抓取的,或者是没有可用的exporter

    原理:收集器通过扫描指定目录中的问津,提取所有格式为prometheus指标的字符串,然后暴露他们以便被prometheus sever抓取

    1) 创建收集器目录

    mkdir /usr/local/node_exporter/textfile_collector

    2) 创建新指标,注意指标在以.prom结尾的文件内定义

    echo ‘metadata{role=”docker”,data_center=”ShangHai”} 2’ >metadata.prom

    3) 启动textfile收集器

    textfile收集器不需要配置参数,默认就会被加载,我们在启动node_exporter的时候,指定textfile收集器的目录即可

    参数:

    collector.textfile.directory

    启动

    nohup ./node_exporter –web.listen-address=”:9600″ –web.telemetry-path=”/metrics” –collector.textfile.directory=”/usr/local/node_exporter/textfile_collector” &

    部署配置systemd收集器

    说明: systemd收集器记录了systemd管理的服务,通过–collector.systemd.unit-whitelist参数指定需要收集的服务,按需收集

    启动:

    nohup ./node_exporter –web.listen-address=”:9600″ –web.telemetry-path=”/metrics” –collector.textfile.directory=”/usr/local/node_exporter/textfile_collector” –collector.systemd –collector.systemd.unit-whitelist=”(docker|sshd|rsyslog).service” &

    配置prometheus对node_exporter进行指标采集

      – job_name: “node_exporter”
        static_configs:
          – targets: [“192.168.161.118:9600”]        #这个端口尽量使用默认端口9100,方便辨认

    二、部署Cadvisor监控容器

    docker run

    -v /:/rootfs:ro

    -v /var/run:/var/run/:rw

    -v /sys:/sys:ro

    -v /dev/disk:/dev/disk:ro

    -v /home/docker:/var/lib/docker:ro

    -p 8080:8080

    –detach=true –name=cadvisor –net=host google/cadvisor

    #注意:/home/docker为实际部署的docker数据目录,默认应该为/var/lib/docker

     验证:

     查看指标:

    http://192.168.161.118:8080/metrics

    配置prometheus server抓取CAdvisor

    配置prometheus.yml配置文件

    • job_name: “docker” static_configs:
      • targets: [“192.168.161.118:8080”]

    热重启prometheus

    #prometheus server启动开启热更新配置

    参数:–web.enable-lifecycle

    nohup ./prometheus –web.enable-lifecycle –config.file=prometheus.yml &

    #热重启prometheus

    curl -X POST http://192.168.161.118:9090/-/reload

    查看prometheus 的targets,即可发现,docker容器监控完成,到此本期的分享就结束了,更多关于prometheus的干货分享,可以持续关注尊龙时凯社区,或者尊龙时凯官网的prometheus技术分享专栏

    尊龙时凯社区


    The prev: The next:

    Related recommendations

    Expand more!

    快速导航

    成功案例

    View all