为什么要监控VPS服务器
掌握服务器的运行状态,保障在用服务的正常运行
监控服务器的方案
用过的服务器监控方案有:
- Nezha,特点:实时监控服务器试试运行状态,部署容易,有报警消息推送,有主题,可以css定制主题
- Uptime Kuma,特点:监控服务器试试运行状态,部署简单,有消息推送,主题简洁大气
- Grafana+Prometheus/Zabbix:广泛应用于各类生产环境,插件丰富多样,出了监控服务器状态外,还可以监控如Docker,K8s,网络等内容。直接在Linux下部署稍显麻烦,最近研究了Docker部署方式,可一键部署,遂献给大家。
Grafana+Prometheus+NodeExporter部署步骤
部署Docker和Docker-Compose环境
Docker 部署
curl -sSL https://get.daocloud.io/docker | sh
systemctl start docker
systemctl enable docker
Docker-Compose 部署
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && chmod +x /usr/local/bin/docker-compose && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
编辑 Docker-Compose 文件
新建Grafana目录:
mkdir Grafana
进入Grafana目录,在目录下新建 docker-compose.yml 文件:
cd Grafana
nano docker-compose.yml
把下面的内容复制进 docker-compose 中:
version: '3.3'
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
depends_on:
- renderer
- prometheus
ports:
- 3000:3000
environment:
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
GF_LOG_FILTERS: rendering:debug
volumes:
- ./data/grafana/grafana_data:/var/lib/grafana
renderer:
image: grafana/grafana-image-renderer:latest
ports:
- 8081
node_exporter:
image: quay.io/prometheus/node-exporter:latest
container_name: node_exporter
hostname: node_exporter
command:
- '--path.rootfs=/host'
network_mode: host
pid: host
restart: unless-stopped
volumes:
- '/:/host:ro,rslave'
prometheus:
image: prom/prometheus:v2.26.0
restart: always
container_name: prometheus
hostname: prometheus
ports:
- 9090:9090
volumes:
- ./data/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml
command: --config.file=/etc/prometheus/prometheus.yml
新建 grafana 数据目录并修改权限:
mkdir -p data/grafana/grafana_data && chmod 777 data/grafana/grafana_data
新建 promtheus 的配置文件,并编辑内容:
mkdir -p data/prometheus/conf && nano data/prometheus/conf/prometheus.yml
把下面的内容复制进 promtheus 配置文件中:
global:
scrape_interval: 5s # pull metrics interval
scrape_configs:
- job_name: 'node_http'
static_configs:
- targets: ["127.0.0.1:9100"]
启动docker-compose:
docker-compose up -d
登录界面:
- 【prometheus】http://服务器IP:9090
- 【grafana】http://服务器IP:3000
加载监控图形界面
输入网址 http://服务器IP:3000 ,用户名 admin,密码 admin,然后登录
配置数据库:选择 Configuration -> Datasource
选择 Prometheus
在 Promethues 的配置页面中,填入URL,http://localhost:9090 ,点击 Save and Test
点选 DashBoard 中的 Browse
点击 Import
输入面板编号 8919,点击 Import
选择 Promethues数据库,点 Import
大功告成.