Docker搭建Prometheus监控系统

简述

对比zabbix,个人更喜欢prometheus。简单快捷,zabbix过重。 1. 安装prometheus收集数据和存储时间序列(TSDB) 2. 在目标机器上安装node-exporter提供metrics 数据给prometheus 3. 安装grafana 展示数据

目录结构

.
├── docker-compose.yml
├── exporter
│   ├── node_exporter
│   └── up.sh
└── prometheus
    └── prometheus.yml

目标机器安装 Node Exporter

下载

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

tar zxvf *.gz

进入node exporter目录,创建一个启动脚本 “up.sh” ,开放端口 9101 。

脚本内容如下

nohup ./node_exporter --web.listen-address=":9101" >/dev/null 2>&1 &

启动 Node exporter

./up.sh

Prometheus 监控配置

编辑 prometheus.yml 文件 放在 prometheus目录下

global:
  scrape_interval: 5s

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['prometheus:9090'] #同时监控服务本身
  - job_name: 'linux-exporter'
    metrics_path: /metrics
    static_configs:
      - targets: ['localhost:9101'] #node ip以及端口

Docker安装 Prometheus 和 Grafana

docker-compose.yml 文件

version: '3'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    environment:
     TZ: Europe/Paris
    restart: always
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus:/etc/prometheus
      - prometheus-data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    environment:
            TZ: Europe/Paris
    restart: always
    ports:
      - "3000:3000"
    volumes:
      - grafana-storage:/var/lib/grafana
volumes:
   grafana-storage: {}
   prometheus-data: {}

启动 docker-compose

docker-compose up -d

查看端口是否开放

nc -v ip地址 9090

配置Grafana

http://ip地址:3000 用户名密码 admin

添加数据源

http://ip地址:9090

导入一个好看的 dashborad ,可以去官网看 https://grafana.com/grafana/dashboards

http://ip地址:3000/dashboard/import

输入8919 点Load导入


158 Words

2020-04-07 22:51 +0200