zoukankan      html  css  js  c++  java
  • Prometheus搭建

    注:本文基于CentOS 7.2编写

    1、下载prometheus安装包

    我们以官网最新版本为例,官网地址,https://prometheus.io/download/

    wget https://github.com/prometheus/prometheus/releases/download/v2.16.0/prometheus-2.16.0.linux-amd64.tar.gz

    如果觉得官网下载实在慢,可以通过以下链接下载,
    prometheus-2.16.0.linux-amd64.tar.gz

    下载完压缩包后我们直接解压,并放到/usr/local/prometheus目录,便于管理,

    [root@centos7 prometheus]# tar -xf prometheus-2.16.0.linux-amd64.tar.gz
    [root@centos7 prometheus]# ls
    prometheus-2.16.0.linux-amd64 prometheus-2.16.0.linux-amd64.tar.gz
    [root@centos7 prometheus]# mkdir -p /usr/local/prometheus
    [root@centos7 prometheus]# mv prometheus-2.16.0.linux-amd64/* /usr/local/prometheus
    [root@centos7 prometheus]# cd /usr/local/prometheus
    [root@centos7 prometheus]# ./prometheus --version
    prometheus, version 2.16.0 (branch: HEAD, revision: b90be6f32a33c03163d700e1452b54454ddce0ec)
    build user: root@7ea0ae865f12
    build date: 20200213-23:50:02
    go version: go1.13.8

    2、配置Prometheus

    [root@centos7 prometheus]# grep -vE "^$|^[ | ]*#" prometheus.yml
    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:
    rule_files:
    scrape_configs:
    - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

    主要有四个字段,

    • global:全局配置
      scrape_interval:设置prometheus守护进程拉取agent信息时间间隔
      evaluation_interval:设置根据后面rule_files字段定义的规则计算的时间间隔

    • alerting:告警配置
      用于配置告警信息,需要通过alertmanagers插件实现,这里暂时未配置

    • rule_files:规则配置
      主要用于触发告警,这里也暂未配置

    • scrape_configs:抓取目标机器配置
      job_name:标识这条记录,也就是这个配置内的记录都会添加上该字段
      targets:设置目标机地址

    3、启动服务

    鉴于安装是通过二进制文件安装,没有service文件,因此,为了便于管理,我们增加一个对应的systemd服务这样启动和开机启动就更方便了。

    cat > /usr/lib/systemd/system/prometheus.service <<EOF
    [Unit]
    Description=prometheus
    After=network.target

    [Service]
    ExecStart=/usr/local/prometheus/prometheus
    --config.file=/usr/local/prometheus/prometheus.yml
    --storage.tsdb.path=/var/lib/prometheus
    ExecReload=/bin/kill -s HUP $MAINPID
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target
    EOF

    设置配置文件路径以及本地时序数据库数据存放路径,因为prometheus只是热更新配置,因此增加reload字段。

    然后就可以通过systemctl命令设置开机启动,并启动服务了。

    systemctl enable prometheus && systemctl start prometheus
    

    一切正常的情况下,就能在/var/log/messages中看到如下打印,

    Mar 10 10:08:55 centos7 systemd: Started prometheus.
    Mar 10 10:08:55 centos7 systemd: Starting prometheus...
    ...
    Mar 10 10:08:55 centos7 prometheus: level=info ts=2020-03-10T14:08:55.895Z caller=main.go:630 msg="Server is ready to receive web requests."

    4、访问web

    Prometheus自带一个比较简单的Web界面,访问http://your-ip:9090 即可。
    在这里插入图片描述因为默认配置里我们只监控了prometheus,因此在target页面也就只有一个项目,
    在这里插入图片描述

    5、增加服务器监控

    为了能知道本机的一些信息,比如,CPU使用率,内存,磁盘IO等,我们需要增加一个插件来帮我们收集信息——node_exporter,其实也就是一个系统信息采集的客户端。

    1. 安装node_exporter

    同样我们从官网下载二进制安装包,

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

    如果嫌弃官网下载慢,可以通过下面链接下载,
    node_exporter-0.18.1.linux-amd64.tar.gz

    同样,解压后移动到/usr/local/prometheus目录,便于管理,

    [root@centos7 prometheus]# tar -xf node_exporter-0.18.1.linux-amd64.tar.gz
    [root@centos7 prometheus]# mkdir -p /usr/local/prometheus/node_exporter
    [root@centos7 prometheus]# mv node_exporter-0.18.1.linux-amd64/* /usr/local/prometheus/node_exporter/
    [root@centos7 prometheus]# cd /usr/local/prometheus/node_exporter
    [root@centos7 node_exporter]# ls
    LICENSE node_exporter NOTICE

     
    1. 启动服务

    为了统一管理,我们仍然使用systemctl来管理,创建个systemd的服务文件,

    cat > /usr/lib/systemd/system/node_exporter.service <<EOF
    [Unit]
    Description=node_exporter
    After=network.target

    [Service]
    ExecStart=/usr/local/prometheus/node_exporter/node_exporter
    ExecReload=/bin/kill -s HUP $MAINPID
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target
    EOF

    之后就通过systemctl来设置开机启动和启动服务,

    [root@centos7 ~]# systemctl enable node_exporter
    Created symlink from /etc/systemd/system/multi-user.target.wants/node_exporter.service to /usr/lib/systemd/system/node_exporter.service.
    [root@centos7 ~]# systemctl start node_exporter

    node_exporter默认开启了很多信息的采集,主要是proc文件系统下的各种参数,详细配置可以参考该链接,https://github.com/prometheus/node_exporter

    1. 增加prometheus监控目标

    客户端配置好了,还需要服务端来拉取数据,因此我们还需要在prometheus中增加配置,主要涉及scrape_configs字段配置,原先我们只配置了监控prometheus本身,现在我们将服务器也添加进去,注意node_exporter的端口为9100,

    scrape_configs:
    - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']
    - job_name: 'my-server' #新增的配置
    static_configs:
    - targets: ['localhost:9100']

    更新了配置,自然要重新启动服务,

    systemctl restart prometheus

     这时候我们再看target页面,就能看到两个项目了,

    在这里插入图片描述

    6、web查看监控信息

    配置好后,我们就能在prometheus的web界面来查看监控信息了,比如内存使用率,
    在这里插入图片描述

    7、node_exporter指标

    node_exporter有很多指标,详细配置可以通过访问http://yourip:9100/metrics来查看具体有哪些指标,
    在这里插入图片描述

  • 相关阅读:
    SQLException:The server time zone
    Golang开发环境和环境变量搭建
    Docker Swanm集群配置
    .net 批量导出文件,以ZIP压缩方式导出
    【旧文章搬运】Windows句柄表分配算法分析(实验部分)
    【旧文章搬运】Windows句柄表分配算法分析(三)
    【旧文章搬运】Windows句柄表分配算法分析(二)
    【旧文章搬运】Windows句柄表分配算法分析(一)
    【旧文章搬运】PspCidTable攻与防
    【旧文章搬运】PspCidTable概述
  • 原文地址:https://www.cnblogs.com/wendy-0901/p/14167165.html
Copyright © 2011-2022 走看看