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-compose.yml内的服务名,那么这里应该填写:
其他的保持默认即可,然后点击Save & Test,测试没问题的话就OK了。
现在你需要新建或者导入模板,自己新建的没有人家现成做的好,这里直接导入别人的模板就行:
一些预览:
预览2: