0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

fluent-bitを使ってログをLog Analyticsに転送する

Posted at

fluent-bitがデフォルトでAzureのLog Analyticsにログを転送する機能を持っていたので、試してみました。

事前準備

Log Analyticsにログを送信する時に、正直イライラするというか不安になるというか、結構困るのは送信したログがすぐにはクエリできず数分間待たされることです。
初めてやっている時はそもそもログを拾えていないのかどうかとの区別がしにくく、特に不安になるのではないかと思います。
なので、まずは標準出力を出力先にして、ログを出力してみることをお勧めします。

今回は簡単にfluent-bitを立ち上げたかったのでDockerで起動します。出力先は標準出力で、入力はforwardです。

$ docker run -p 127.0.0.1:24224:24224 fluent/fluent-bit:1.5 /fluent-bit/bin/fluent-bit -i forward -o stdout -p format=json_lines -f 1
Fluent Bit v1.5.7
* Copyright (C) 2019-2020 The Fluent Bit Authors
* Copyright (C) 2015-2018 Treasure Data
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io

[2021/09/24 19:26:42] [ info] [engine] started (pid=1)
[2021/09/24 19:26:42] [ info] [storage] version=1.0.5, initializing...
[2021/09/24 19:26:42] [ info] [storage] in-memory
[2021/09/24 19:26:42] [ info] [storage] normal synchronization mode, checksum disabled, max_chunks_up=128
[2021/09/24 19:26:42] [ info] [input:forward:forward.0] listening on 0.0.0.0:24224
[2021/09/24 19:26:42] [ info] [sp] stream processor started

--log-driverを指定すると、コンテナのログを簡単に転送できます。

$ docker run --log-driver=fluentd -t ubuntu echo "Testing a log message"
Testing a log message

fluent-bit側のコンテナをみると、ログが送信されていることが分かります。

{"date":1632511701,"source":"stdout","log":"Testing a log message\r","container_id":"c5db93437b82b371454bac959110dc45802b115c134b4520ea3f848343c46002","container_name":"/elastic_pike"}

Log Analyticsにログを転送する

今度は出力先をLog Analyticsにします。まずワークスペースIDとキーを確認しましょう。ポータルだと以下に出ています。

image.png

fluent-bitのコンテナを作り直します。

$ docker run -p 127.0.0.1:24224:24224 fluent/fluent-bit:1.5 /fluent-bit/bin/fluent-bit -i forward -o azure -p customer_id=ワークスペースID -p shared_key=キー -m '*' -f 1
[2021/09/24 20:24:54] [ info] [engine] started (pid=1)
[2021/09/24 20:24:54] [ info] [storage] version=1.0.5, initializing...
[2021/09/24 20:24:54] [ info] [storage] in-memory
[2021/09/24 20:24:54] [ info] [storage] normal synchronization mode, checksum disabled, max_chunks_up=128
[2021/09/24 20:24:54] [ info] [input:forward:forward.0] listening on 0.0.0.0:24224
[2021/09/24 20:24:54] [ info] [output:azure:azure.0] customer_id='xxxxxxxxxxxxxxxx' host='xxxxxxxxxxxxxxxxxxxx.ods.opinsights.azure.com:443'
[2021/09/24 20:24:54] [ info] [sp] stream processor started

入力は変更していないのでさきほどと同じ方法でログを書き込みます。

$ docker run --log-driver=fluentd -t ubuntu echo "Testing a log message"
Testing a log message

fluent-bit側のコンテナをみて、以下のように出力されていたら問題ないはずなので、しばらく待ちます。10分くらい待ったかも。

[2021/09/24 20:25:01] [ info] [output:azure:azure.0] customer_id=xxxxxxxxxxxxxxxxxxxxxx, HTTP status=200

どこにも記載がなくて困ったのですが、Log Analyticsのテーブルはカスタムになっていて、fluentbit_CLというところに書かれています。

image.png

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?