MacでGrafana + Lokiのサンプル


概要

LokiをMacでどんな感じか確認したかったが、Macだとコンテナログの保存先がVMであるということから公式のdocker-composeだと確認しづらいのでNginxのコンテナを入れて調整した。

構成図

LinuxではDockerのコンテナのログが「/var/lig/docker/containers」にあるが、MacではVMを利用しているため直接参照はできない。
そのためカレントディレクトリに「./var/log/nginx」を準備して、nginxコンテナにmountするようにした。

コード

いいからコードよこせという人はこちらへ

ディレクトリ構成

├── docker-compose.yml
├── promtail-sample-config.yaml
└── var
    └── log
        └── nginx

docker-compose.yml

version: "3"
networks:
  loki:
services:
  grafana:
    image: grafana/grafana:master
    ports:
      - 3000:3000
    networks:
      - loki

  loki:
    image: grafana/loki:latest
    ports:
      - 3100:3100
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:latest
    volumes:
      - ./var/log:/var/log
      - ./promtail-sample-config.yaml:/etc/promtail/promtail-sample-config.yaml
    command: -config.file=/etc/promtail/promtail-sample-config.yaml
    networks:
      - loki

  nginx: 
    image: nginx:latest
    volumes:
      - ./var/log:/var/log
    ports:
      - 8080:80
    networks:
      - loki

promtail-sample-config.yaml(nginxのlogを監視するように調整)

server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: http://loki:3100/loki/api/v1/push

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      __path__: /var/log/nginx/*log

立ち上げ

$ docker-compse up

GUI確認手順

下記にアクセスしてGrafanaのログイン画面を表示する
http://localhost:3000

初期IDとパスワード(admin:admin)を入力するとパスワード変更画面が表示されるのでここではスキップする

Data Souceを選択し、Lokiを選択する

URLは下記にして設定を完了させる(※コンテナ名がホスト名となるためlokiとする)
http://loki:3100

成功していればラベルが追加されているので選択する

ラベルを選択し、ログが表示されれば成功です。
「|=」で文字列検索 「|~」で正規表現検索ができます。