Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/terashim/fluentd-sandbox


https://github.com/terashim/fluentd-sandbox

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

fluentdの練習
--------------------------------

# 環境

- VS CodeとDev Containerを使用する
- Ubuntu 22.04 (jammy) のコンテナ上で作業する

以下、コマンドはDev Containerとして起動したUbuntu 22.04のBashで実行するものとする。

# fluentdのインストール

ドキュメント:

Ubuntu 22.04の場合は以下を実行する:

```sh
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-jammy-td-agent4.sh | sh
```

次のコマンドでインストールされていることを確認する

```sh
td-agent --version
#出力例> td-agent 4.4.2 fluentd 1.15.3 (e89092ce1132a933c12bb23fe8c9323c07ca81f5)
```

インストールが完了したらdebファイルを削除する

```sh
rm td-agent-apt-source.deb
```

# デフォルトの設定ファイルを確認する

設定ファイル `/etc/td-agent/td-agent.conf` が作成されているので内容を確認する:

```sh
cat /etc/td-agent/td-agent.conf
```

次のような内容になっている:

```conf
####
## Output descriptions:
##

# Treasure Data (http://www.treasure-data.com/) provides cloud based data
# analytics platform, which easily stores and processes data from td-agent.
# FREE plan is also provided.
# @see http://docs.fluentd.org/articles/http-to-td
#
# This section matches events whose tag is td.DATABASE.TABLE

@type tdlog
@id output_td
apikey YOUR_API_KEY

auto_create_table

@type file
path /var/log/td-agent/buffer/td


@type file
path /var/log/td-agent/failed_records

## match tag=debug.** and dump to console

@type stdout
@id output_stdout

####
## Source descriptions:
##

## built-in TCP input
## @see http://docs.fluentd.org/articles/in_forward

@type forward
@id input_forward

## built-in UNIX socket input
#
# type unix
#

# HTTP input
# POST http://localhost:8888/?json=
# POST http://localhost:8888/td.myapp.login?json={"user"%3A"me"}
# @see http://docs.fluentd.org/articles/in_http

@type http
@id input_http
port 8888

## live debugging agent

@type debug_agent
@id input_debug_agent
bind 127.0.0.1
port 24230

#以下略
```

# 設定ファイルを編集

設定ファイル `/etc/td-agent/td-agent.conf` をVS Codeで開く:

```sh
code /etc/td-agent/td-agent.conf
```

以下のように編集して保存する:

```conf
# httpによる入力を受け取る

@type http
@id input_http
port 8888

# タグが **.stdout にマッチする場合、標準出力に出力

@type stdout
@id output_stdout

# タグが **.local にマッチする場合、ローカルのログファイルに出力

@type file
@id output_file
path /var/log/td-agent/test

```

# 起動

ターミナルで `td-agent` コマンドを実行すると `td-agent` がフォアグラウンドで起動する

```sh
td-agent
```

# テスト

`td-agent` を起動したまま、もう1つのターミナルを起動して以下を実行する

(1) HTTPでタグ `test.stdout` をつけてデータを送信する

```sh
curl -v --data 'json={"foo":"bar"}' 'http://127.0.0.1:8888/test.stdout'
```

=> `td-agent` 起動中のターミナルにメッセージが表示される。

(2) HTTPでタグ `test.local` をつけてデータを送信する

```sh
curl -v --data 'json={"foo":"bar"}' 'http://127.0.0.1:8888/test.local'
```

=> データがログファイルに書き込まれる。

ログファイルの格納先フォルダを確認する:

```sh
ls /var/log/td-agent/test/
#出力例> buffer.b5f9cf524f4f2185d9f3fd07e9f88d190.log
#出力例> buffer.b5f9cf524f4f2185d9f3fd07e9f88d190.log.meta
```

書き込まれた内容を確認するには、次のコマンドを実行する:

```sh
cat /var/log/td-agent/test/*.log
#出力例> 2023-04-21T02:21:58+00:00 test.local {"foo":"bar"}
```