使用Grafana、Prometheus和Loki为我的家庭网络建立监控基础设施

背景和动机

家庭网络中有超过10台服务器,希望能监控节点和容器。我之前使用了Datadog的免费方案,但使用额度不足。因此,我决定使用Prometheus/Grafana/Loki来构建一个本地监控平台。

构成

    • 監視対象: Linuxサーバ(Debian/Ubuntu/CentOS) および MacMini

 

    •     一部、室温センサーなどの情報をExpoterterで取得する

 

    監視基盤: Grafana/Prometheus/Lokiのクラスタをdocker-compose上で実行

Prometheus是什么

Pull型的监控工具
与Kubernetes密切相关,可能针对大量的微服务化容器进行监控
是所谓的代理类型,被监控对象(服务器)称为Exporter
监控对象包括指标、跟踪和除日志跟踪以外的部分
可以使用名为PromQL的查询语言获取数据
Exporter可以为信息添加标签
可以根据标签对数据进行聚合和汇总

Grafana是一个什么东西?

可视化工具
相当于Elasticsearch的Kibana(Elasticsearch相当于Loki/Prometheus)
可以设置Elasticsearch/CloudWatchLogs/Datadog等作为后端
可以创建仪表盘

洛基是谁

可以与Fluent-bit的输出轻松集成的,相当于日志的东西,能够保留每行数据,类似于CloudWachLogs/Elasticsearch。

出口商

类似于设定为监视对象的代理
Exporter不是每个服务器一个,而是根据监视范围进行单独设置
Exporter通过http从Prometheus发送请求,并返回监视对象的信息
基本上以纯文本格式返回以下格式的信息
像Apache/Nginx/Haproxy等大部分都可以通过插件来汇总Exporter格式的信息
实际上,Datadog代理在内部也是这样工作的吗?
GitLab的On-prem版内置了Exporter,并可以通过配置启用
服务器端的信息在HELP、TYPE和实际值(如下例所示)中编写,Prometheus会从中获取数据
TYPE有计数器、测量仪、直方图和摘要。

# HELP temperature this is bedroom temperature
# TYPE temperature counter
temperature{room="bedroom",device="bme280"} 19.63

监视基础设施构成

以下是用docker-compose.yml设置:

对于prometheus/loki,使用本地存储来保存数据,因此需要共享存储卷。
※ 数据不会在docker-compose启动时被重置。

关于Grafana的仪表盘:

Docker-compose的配置

version: '3'
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./prometheus/storage:/prometheus
    ports:
      - '9090:9090'
    dns:
      - 8.8.8.8
  loki:
    image: grafana/loki
    container_name: loki
    volumes:
      - ./loki/storage:/loki
    ports:
      - 3100:3100
    command: -config.file=/etc/loki/local-config.yaml
  grafana:
    image: grafana/grafana
    container_name: grafana
    environment:
      - GF_INSTALL_PLUGINS=marcusolsson-treemap-panel
    ports:
      - "3000:3000"
    volumes:
      - "./grafana/datasources:/etc/grafana/provisioning/datasources"
      - "./grafana/dashboards:/etc/grafana/provisioning/dashboards"

一种选项: 文献引用

《入门 Prometheus―インフラとアプリケーションのパフォーマンスモニタリング》是一本关于基础设施和应用程序性能监测的书籍,可以在https://www.amazon.co.jp/%E5%85%A5%E9%96%80-Prometheus-%E2%80%95%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%81%A8%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0-Brian-Brazil/dp/4873118778 上找到。

广告
将在 10 秒后关闭
bannerAds