监控神奇Prometheus+Grafana+cAdvisor搭建

**Prometheus+Grafana+cAdvisor+node_exporter+Alertmanager 监控docker容器和配置钉钉报警java

1、prometheus介绍

特色:node

多维数据模型(有metric名称和键值对肯定的时间序列)
    灵活的查询语言
    不依赖分布式存储
    支持图表和dashboard等多种方式 
    经过pull方式采集时间序列,经过http协议传输
    监控数据经过服务或者静态配置来发现
    支持经过中介网关的push时间序列的方式

功能:python

在业务层用做埋点系统:
Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其余语言有第三方开源客户端)。咱们能够经过客户端方面的对核心业务进行埋点。以下单流程、添加购物车流程。mysql

在应用层用做应用监控系统:linux

一些主流应用能够经过官方或第三方的导出器,来对这些应用作核心指标的收集。如redis,mysql。git

在系统层用做系统监控:
除了经常使用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。github

集成其余的监控:golang

prometheus还能够经过各类exporte,集成其余的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等web

Prometheus架构:
prometheus是一个用Go编写的时序数据库,能够支持多种语言客户端,redis

2、部署prometheus监控

安装go 语言环境
    在监控服务器上安装prometheus
    在被监控环境上安装export
    安装grafana

一、安装go 语言环境

wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
    tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
    vim  /etc/profile

    在文件的最后添加以下内容:

    export PATH=$PATH:/usr/local/go/bin

    保存退出后,接着让配置文件马上生效:
    source  /etc/profile

    验证一下是否成功,用go version 来验证
    go  version

监控神奇Prometheus+Grafana+cAdvisor搭建
2:安装prometheus

官网下载地址:https://prometheus.io/download/
    wget -c https://github.com/prometheus/prometheus/releases/download/v2.21.0-rc.0/prometheus-2.21.0-rc.0.linux-amd64.tar.gz
    tar  -vxf prometheus-2.21.0-rc.0.linux-amd64.tar.gz -C /usr/local/
    mv prometheus-2.21.0.linux-amd64/ prometheus

监控神奇Prometheus+Grafana+cAdvisor搭建

ln  -sv /usr/local/prometheus-2.21.0-rc.0.linux-amd64/ /usr/local/prometheus

    默认方式启动:
    ./prometheus &

    更换其余端口启动:

    ./prometheus --config.file=prometheus.yml --web.listen-address=:9010 &

浏览器输入IP 默认端口9090
监控神奇Prometheus+Grafana+cAdvisor搭建

三、设置用户

添加用户,后期用此帐号启动服务

groupadd prometheus
    useradd -g prometheus -s /sbin/nologin prometheus

赋权

cd ~
    chown -R prometheus:prometheus /usr/local/prometheus/

建立prometheus运行数据目录

mkdir -p /var/lib/prometheus
    chown -R prometheus:prometheus /var/lib/prometheus/

四、设置开机启动

touch /usr/lib/systemd/system/prometheus.service 
    chown prometheus:prometheus /usr/lib/systemd/system/prometheus.service

    vim /usr/lib/systemd/system/prometheus.service

            [Unit]
            Description=Prometheus
            Documentation=https://prometheus.io/
            After=network.target

            [Service]
            # Type设置为notify时,服务会不断重启

            Type=simple
            User=prometheus   # --storage.tsdb.path是可选项,默认数据目录在运行目录的./dada目录中
            ExecStart=/usr/local/prometheus/prometheus  --config.file=/usr/local/prometheus/prometheus.yml  --storage.tsdb.path=/var/lib/prometheus
            Restart=on-failure
        [Install]
        WantedBy=multi-user.target

设置开机启动

systemctl enable Prometheus
    systemctl start prometheus

绘图:

http://192.168.10.117:9090/metrics ,查看从exporter具体能抓到的数据,以下:

监控神奇Prometheus+Grafana+cAdvisor搭建

访问:prometheus,在输入框中任意输入1个exporter能抓取得值,点
    击"Execute"与"Execute"按钮,便可见相应抓取数据的图形,同时可对
    时间与unit作调整,

3、部署node_exporter

Node_exporter收集机器的系统数据,这里采用prometheus官方提供的exporter

一、下载安装

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

    cd /usr/local
    mv node_exporter-0.18.1.linux-arm64.tar.gz /usr/local/node_exporter
  1. 设置用户

    groupadd prometheus
    useradd -g prometheus -s /sbin/nologin prometheus
    chown -R prometheus:prometheus /usr/local/node_exporter/
  2. 设置开机启动

    vim /usr/lib/systemd/system/node_exporter.service
            [Unit]
            Description=node_exporter
            Documentation=https://prometheus.io/
            After=network.target
    
            [Service]
            Type=simple
            User=prometheus
            ExecStart=/usr/local/node_exporter/node_exporter
            Restart=on-failure
    
            [Install]
            WantedBy=multi-user.target
    启动:
            systemctl enable node_exporter
            systemctl start node_exporter
    
    直接启动方式:
    修改端口添加: --web.listen-address=":9013" &
    命令:./node_exporter --web.listen-address=":9013" &
    
    prometheus.yml文件下添加:
        - job_name: 'docker'
            static_configs:
            - targets: [192.168.10.117:9012']

二、验证

访问prometheus,查看node1主机已经可被监控

监控神奇Prometheus+Grafana+cAdvisor搭建

4、安装grafana面板:

下载地址:https://grafana.com/grafana/download
    选择须要的版本和安装的系统

监控神奇Prometheus+Grafana+cAdvisor搭建

wget https://dl.grafana.com/oss/release/grafana-7.1.5-1.x86_64.rpm
    sudo yum install grafana-7.1.5-1.x86_64.rpm

监控神奇Prometheus+Grafana+cAdvisor搭建

将grafana加入到系统服务并启动

sudo /sbin/chkconfig --add grafana-server
    sudo service grafana-server start

    启动后,打开URL,默认端口为3000,http://192.168.10.117:3000/
    用户名和密码都为 admin

监控神奇Prometheus+Grafana+cAdvisor搭建

修改grafana默认访问端口 我修改成9008

一、授予grafana二进制权限
    sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server

    二、将端口9008重定向到Grafana端口3000
    iptables -t nat -A PREROUTING -p tcp --dport 9011 -j REDIRECT --to-port 3000

    三、修改配置文件/etc/grafana/grafana.ini中端口为9008,并重启

监控神奇Prometheus+Grafana+cAdvisor搭建

启动:
    service grafana-server start

监控神奇Prometheus+Grafana+cAdvisor搭建

使用8919面板:https://grafana.com/grafana/dashboards/8919

监控神奇Prometheus+Grafana+cAdvisor搭建

5、部署cAdvisor 监控docker容器

这里使用docker部署

一、 拉取镜像

    docker pull docker.io/google/cadvisor

    二、运行cadvisor容器,并配置

    docker run \
    --volume=/:/rootfs:ro \
    --volume=/var/run:/var/run:rw \
    --volume=/sys:/sys:ro \
    --volume=/var/lib/docker/:/var/lib/docker:ro \
    --publish=8080:8080 \
    --detach=true \
    --name=cadvisor \
    google/cadvisor:latest

    启动:
    docker restart 448ded02b68d

    三、启动容器:docker restart 117dc405fbf5

监控神奇Prometheus+Grafana+cAdvisor搭建

curl:ip:8080端口:

6、grafana添加数据源

一、登录
    访问:http://localhost:3000,默认帐号/密码:admin/admin

监控神奇Prometheus+Grafana+cAdvisor搭建

二、添加Premetheyus数据源:

监控神奇Prometheus+Grafana+cAdvisor搭建

三、配置Premetheyus地址和源

监控神奇Prometheus+Grafana+cAdvisor搭建

监控神奇Prometheus+Grafana+cAdvisor搭建

四、能够先测试一下

监控神奇Prometheus+Grafana+cAdvisor搭建

五、查看数据源:

监控神奇Prometheus+Grafana+cAdvisor搭建
六、进入刚才逛街的数据源中:
监控神奇Prometheus+Grafana+cAdvisor搭建
七、OK配置完成
监控神奇Prometheus+Grafana+cAdvisor搭建

九、dashboard导入

从grafana官网下载相关dashboard到本地,也能够直接导入到grafana中

https://grafana.com/dashboards/1860

    一、配置面板:

监控神奇Prometheus+Grafana+cAdvisor搭建
二、本地导入仪表盘 复制上方链接、
监控神奇Prometheus+Grafana+cAdvisor搭建

7、添加钉钉报警

一、复制钉钉群地址:

监控神奇Prometheus+Grafana+cAdvisor搭建

二、添加关键词:
        添加了以下关键字:alert、promethues、alertmanager、webhook。可自行决定添加几个。

监控神奇Prometheus+Grafana+cAdvisor搭建

三、Grafana配置:

监控神奇Prometheus+Grafana+cAdvisor搭建

监控神奇Prometheus+Grafana+cAdvisor搭建

四、报错问题:

    在打开Include image时报错 没有安装grafana-cli 
    解决方法:
    yum -y install libatk-bridge* libXss* libgtk*
    grafana-cli plugins install grafana-image-renderer

    五、重启grafana:service grafana-server restart

监控神奇Prometheus+Grafana+cAdvisor搭建

发送报警测试:报警的时候就有图片啦

监控神奇Prometheus+Grafana+cAdvisor搭建

8、配置docker图形面板

官网地址:https://grafana.com/grafana/dashboards?search=docker

    一、配置图形面板:

监控神奇Prometheus+Grafana+cAdvisor搭建

https://grafana.com/grafana/dashboards/11277
    二、查看图形内容:

监控神奇Prometheus+Grafana+cAdvisor搭建
监控神奇Prometheus+Grafana+cAdvisor搭建
监控神奇Prometheus+Grafana+cAdvisor搭建

监控神奇Prometheus+Grafana+cAdvisor搭建

https://grafana.com/dashboards/193面板:
    Prometheus监控端查docker数据
    container_cpu_load_average_10s

监控神奇Prometheus+Grafana+cAdvisor搭建

监控神奇Prometheus+Grafana+cAdvisor搭建

*9、部署Alertmanager 钉钉报警

1. 下载&安装

        wget https://github.com/prometheus/alertmanager/releases/download/v0.19.0/alertmanager-0.19.0.linux-amd64.tar.gz
        tar xzf alertmanager-0.19.0.linux-amd64.tar.gz

        mv alertmanager-0.19.0.linux-amd64 /usr/local/alertmanager
        cd /alertmanager

        cp  alertmanager.yml alertmanager.yml

        配置文件默认:
        cat alertmanager.yml

        global:
        resolve_timeout: 5m

    route:
        group_by: ['alertname']
        group_wait: 10s
        group_interval: 10s
        repeat_interval: 1h

        receiver: webhook

    receivers:
    - name: webhook
        webhook_configs:
        - url: 'http://127.0.0.1:5001/'

    inhibit_rules:
        - source_match:
                severity: 'critical'
            target_match:
                severity: 'warning'
            equal: ['alertname', 'dev', 'instance']

    三、启动alertmanager 
    ./alertmanager --config.file=alertmanager.yml 2>&1 1>altermanager.log &

    查看端口
    netstat -anpt | grep 9093

    四、报警规则
    cat dingding.yml

groups:
    - name: test-rule
    rules:
    - alert: 主机状态
     expr: up == 0
    for: 2m
    labels:
                    status: warning
    annotations:
                summary: "{{$labels.instance}}:服务器关闭"
                description: "{{$labels.instance}}:服务器关闭"

五、修改prometheus配置文件
        修改alerting和dingding
            # Alertmanager configuration
            alerting:
                    alertmanagers:
                            - static_configs:
                                    - targets: ["localhost:9093"]
                                       # - alertmanager:9093

            rule_files:
                    - "rules.yml"

    六、将钉钉接入 Prometheus AlertManager WebHook
    插件下载地址:https://github.com/timonwong/prometheus-webhook-dingtalk

安装

mkdir -p /usr/lib/golang/src/github.com/timonwong/
    cd  /usr/lib/golang/src/github.com/timonwong/
    git clone https://github.com/timonwong/prometheus-webhook-dingtalk.git
    cd prometheus-webhook-dingtalk
    make

监控神奇Prometheus+Grafana+cAdvisor搭建

启动

    不想写了
相关文章
相关标签/搜索