📨

Grafana Cloud (Loki) に Promtail を使って journal メッセージを飛ばしてみた

2022/11/08に公開

Grafana + Loki + Promtailでログの可視化 を参考にしながら、インストールしてみた。

全体のイメージ

Ubuntu 22.04 のマシン上に Promtail を導入して、Grafana Cloud (Loki)にログメッセージを送信するように構成する。
Promtail + Grafana Cloud (Loki)

Promtail のバイナリーを持ってくる

/opt/promtail ディレクトリ配下に bin と conf を配置する。

$ wget https://github.com/grafana/loki/releases/download/v2.6.1/promtail-linux-amd64.zip
$ unzip promtail-linux-amd64.zip
$ sudo mkdir -p /opt/promtail/{bin,conf}
$ sudo cp ./promtail-linux-amd64 /opt/promtail/bin/promtail

Promtail のコンフィグファイルを作成する

$ sudo vim /opt/promtail/conf/config.yaml

ファイルの中身は以下の通り。
今回は Grafana Cloud の Loki に合わせて client の url を設定している。
(※ TOKEN はダッシュボード上で生成した文字列に置き換える)

/opt/promtail/conf/config.yaml
server:
  http_listen_port: 0
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

client:
  url: https://318839:!!YOUR TOKEN STRING!!@logs-prod3.grafana.net/loki/api/v1/push

scrape_configs:
- job_name: journal
  journal:
    path: /var/log/journal
    labels:
      job: "journal"
  relabel_configs:
    - source_labels: [__journal_systemd_unit]
      regex: ^session-\d+.scope$
      action: drop
    - source_labels: ['__journal__hostname']
      target_label: 'host'
    - source_labels: ['__journal__systemd_unit']
      target_label: 'unit'
- job_name: syslog
  syslog:
    listen_address: 0.0.0.0:1514
    idle_timeout: 60s
    label_structured_data: yes
    labels:
      job: "syslog"
  relabel_configs:
    - source_labels: ['__syslog_message_hostname']
      target_label: 'host'

Syslog メッセージの収集のために、rsyslog のコンフィグファイルを追加する

$ sudo vim /etc/rsyslog.d/10-promtail.conf
/etc/rsyslog.d/10-promtail.conf
*.* @@(o)127.0.0.1:1514;RSYSLOG_SyslogProtocol23Format
$ sudo systemctl restart rsyslog

Promtail のサービス自動起動のために、Systemd の Unit ファイルを置く

$ sudo vim /etc/systemd/system/promtail.service
/etc/systemd/system/promtail.service
[Unit]
Description=Promtail Agent

[Service]
ExecStart=/opt/promtail/bin/promtail -config.file=/opt/promtail/conf/config.yaml

[Install]
WantedBy=multi-user.target

起動して動作確認をする

$ sudo systemctl daemon-reload
$ sudo systemctl enable --now promtail
$ sudo systemctl status promtail

Grafana Cloud 上で収集されたログメッセージを見てみる

その後ダッシュボードを工夫しまくって動かしてみた動画がこちら。

Discussion