这篇文章上次修改于 206 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
系统结构
- Prometheus 负责收集信息
- Grafana 负责将数据图表化
- xxx-exporter 负责采集设备信息,再由 Prometheus 进行收集存储
- Alertmanager 负责监控告警,管理多台设备会很有用
我不需要监控告警功能所以只部署前三个服务,这是我不需要的原因:
要是有告警这能吵死我。
部署
对于系统监控类的软件其实不应该采取容器化部署,不过也不是不行就是了。
一个可用的 compose 配置:
services:
grafana:
image: grafana/grafana-enterprise
container_name: grafana
restart: unless-stopped
volumes:
- ./grafana-storage:/var/lib/grafana
ports:
- 3000:3000
prometheus:
image: prom/prometheus
container_name: prometheus
restart: unless-stopped
ports:
- 9090:9090
volumes:
- ./prometheus:/etc/prometheus/
- ./prometheus_data:/prometheus/
node-exporter:
image: prom/node-exporter
container_name: node-exporter
restart: unless-stopped
command:
- '--path.rootfs=/host'
pid: host
network_mode: host
volumes:
- '/:/host:ro,rslave'
其中节点部分使用的是 host 网络模式,如果不这样做只能获取到容器本身的网络情况,这个实在是没办法。
节点配置
在宿主机映射到容器 prometheus 的 /etc/prometheus/
目录下创建一个 prometheus.yml
文件,复制下面的内容并替换最后一行的节点 IP 和端口。
global:
scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["10.0.0.1:9100", "10.0.6.75:9100"]
接下来启动容器,就可以访问这三个服务了。有三个端口:3000 9090 9100 分别对应上面三个服务,后面两个不用管只需要看第一个。
添加数据源
访问 3000 端口对应的 grafana 服务,由于没有设置环境变量所以默认账号密码都是 admin
,如果公网部署一定要改。登录后到 /connections/datasources
路径下添加数据源,第一个应该就是 prometheus。
不额外添加认证等功能直接改一个 URL 就能用了,可以使用容器名比如 http://prometheus:9090
来替代 IP。
创建面板
这个主要是去 官网 下面找或者直接配置、文件导入,入口在下图的右上角。这个面板的地址:https://grafana.com/grafana/dashboards/1860-node-exporter-full/
其他
这玩意好像会持续访问硬盘,然后我的机械盘就没停转过。。。。
prometheus 日志堆起来可能会很大,我使用了一个多月总共三个监控服务产生了 57G 日志撑爆服务器
已有 2 条评论
监控服务器情况,肯定要持续访问了。
@威言威语 但其实我不需要这个硬盘的信息,等天更热了再去研究一下怎么关掉硬盘