Docker+Prometheus+Grafana监控VPS运行状态

Prometheus是一个灵活的时间序列数据库和监控系统,有多个监控组件可用。Grafana是用于展示数据的平台。

这几个工具我之前介绍过,不过当时我是用来做VPS的三网监控。实际上Prometheus能做的事情很多,就比如今天要介绍的全方位监控VPS主机运行状态。

prometheus和grafana为简化安装步骤,这里直接使用docker,首先你要安装docker/docker-compose:

apt -y update  apt -y install curl  curl -sSL https://get.docker.com/ | sh  systemctl start docker  systemctl enable docker  curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose  chmod +x /usr/local/bin/docker-compose

然后新建一个docker-compose.yml:

mkdir -p /opt/monitor && cd /opt/monitor && nano docker-compose.yml

写入下面的配置:

version: '3.5'    volumes:      prometheus-data:      grafana-data:    services:      prometheus:          image: prom/prometheus          container_name: prometheus          ports:              - 9090:9090          volumes:              - prometheus-data:/prometheus              - ./prometheus.yml:/etc/prometheus/prometheus.yml          command:              - '--config.file=/etc/prometheus/prometheus.yml'              - '--web.enable-admin-api'              - '--web.enable-lifecycle'        grafana:          image: grafana/grafana          container_name: grafana          ports:              - 3000:3000          volumes:              - grafana-data:/var/lib/grafana

接着新建prometheus的配置文件:

nano prometheus.yml

写入如下配置:

global:      scrape_interval: 5s      external_labels:          monitor: 'imlala'    scrape_configs:      - job_name: 'prometheus'        static_configs:            - targets:                  - 'localhost:9090'              labels:                  instance: prometheus         - job_name: 'VPS监控'        static_configs:            - targets:                  - '你小鸡的VPS公网IP:9100'              labels:                  instance: localhost            - targets:                  - '你的另一只小鸡的公网IP:9100'              labels:                  instance: ikoula

有多少台VPS就写多少个targets,labels是用于区分。

确认无误后up起来即可:

docker-compose up -d

如果后续你更改了prometheus.yml配置文件内容,可以直接执行下面的命令让prometheus热加载配置,不用重启prometheus容器:

curl -s -XPOST localhost:9090/-/reload

接下来我们需要在每台被监控的小鸡上安装node_exporter,node_exporter是prometheus的数据采集器。

node_exporter设计是用于监控主机系统的,因为它需要访问主机系统,所以官方也不推荐将node_exporter容器化,建议是直接部署在宿主机上。

下载解压移动到usr/bin目录下:

wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz  tar -xzvf node_exporter-0.18.1.linux-amd64.tar.gz  cd node_exporter-0.18.1.linux-amd64/  cp node_exporter /usr/bin

新建systemd服务文件:

nano /etc/systemd/system/node_exporter.service

写入如下配置:

[Unit]  Description=Node Exporter    [Service]  User=root  ExecStart=/usr/bin/node_exporter    [Install]  WantedBy=multi-user.target

启动/设置开机自启:

systemctl start node_exporter.service  systemctl enable node_exporter.service

访问你的VPSIP:3000应该能看到grafana的WEBUI,默认的管理员账号密码都是admin。登录进去之后,你需要添加数据源:

Docker+Prometheus+Grafana监控VPS运行状态

如果你之前没有改动过docker-compose.yml内的服务名,那么这里应该填写:

Docker+Prometheus+Grafana监控VPS运行状态

其他的保持默认即可,然后点击Save & Test,测试没问题的话就OK了。

现在你需要新建或者导入模板,自己新建的没有人家现成做的好,这里直接导入别人的模板就行:

Docker+Prometheus+Grafana监控VPS运行状态

一些预览:

Docker+Prometheus+Grafana监控VPS运行状态

预览2:

Docker+Prometheus+Grafana监控VPS运行状态

评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注