0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Grafana Loki に Cloudflare の監査ログを送る

Posted at

はじめまして、デジタル創作サークル UniProject でインフラをいじいじしているあかつきゆいとです。

はじめに

Grafana Lokiなるものを運用し始め、Cloudflare の監査ログも取りたいなと思い、作ってみました。

Loki とは

Loki とは、Grafana が提供している、すべてのアプリケーションやインフラのログを保存したり解析したりできるツールです。

データを送るには

データを送るにはいろいろな方法がありますが、今回は普通に HTTP POST で Loki の API に送信しました。1

POST /loki/api/v1/push
{
  "streams": [
    {
      "stream": {
        "label": "value"
      },
      "values": [
        ["<unix epoch in nanoseconds>", "<log line>"],
        ["<unix epoch in nanoseconds>", "<log line>"]
      ]
    }
  ]
}

Workers をデプロイする

リポジトリについて

こちらの GitHub リポにすべてのコードを集約しています。
ご参照ください。

Loki の情報を環境変数に入れる

さて、クローンしていただいたであろうところで、Loki の情報を環境変数に設定します。

ホスト名は、ドメイン部分のみで OK です。
また、https で通してあります。

BASIC 認証がある場合は、その USER:PASS も入力が必要です。

wrangler secret put LOKI_HOST # Loki API Hostname

# If your loki is required auth

wrangler secret set LOKI_USER # Loki Username
wrangler secret set LOKI_PASS # Loki Password

Cloudflare の情報を環境設定に入れる

API トークンはダッシュボードから、[アカウントの管理] > [アカウント API トークン]から取得できます。

この API トークンには、アカウント設定の読み取り権限が必要です。

wrangler secret put CF_TOKEN

あとは、ダッシュボードの URL にある、アカウント ID を取得します。

このxxxxxxxxxの部分
https://dash.cloudflare.com/xxxxxxxxxxxxxxxxxxxxxxx
wrangler secret put CF_ACCOUNT

これで準備は整いました。

デプロイする

下記コマンドを実行してデプロイしましょう。

wrangler publish src/index.js

確認してみる

こんな感じで監査ログが流れてきているかと思います。

grafana-cloudflare.png

これで終わりです。
お疲れ様でした!

(参考) なぜ LogPush じゃないのか

LogPush は何やら Free プランじゃ使えなようなので、仕方なく LogPush はやめました。
普通に API から落としてくるだけでも十分ですね。
完全なリアルタイムではないものの、5 分おきに fetch しておけば、そこそこいいかなという印象です。
(他にも Workers を使っている方は制限に引っかかるかもしれませんが...)

  1. https://grafana.com/docs/loki/latest/reference/loki-http-api/#ingest-logs

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?