Logstash 出力プラグインガイド
Revision: 2.0.0-12154-62531f11
1 概要
Logstash用GridDBプラグイン(logstash-plugin-griddb) はHTTP/HTTPメソッドを使ってGridDBにデータを挿入します。
1.1 インストール
インストールには、手動で行う方法とDockerを使用する方法の2つがあります。
[注意]: SSL証明書に関するエラーが発生する場合、下記のコマンドで証明書検証を無効にして下さい:
echo insecure >> ~/.curlrc
1.1.1 (1) 手動でインストール
1.1.1.1 システム要件
本ブラグインのビルドと実行は以下の環境で検査済みです。
- OS: CentOS 7以上
- Rubyのバージョン 2.4以上
- Logstashのバージョン 7.x (現在、Logstash8.xでは動作しません)
1.1.1.2 Rubyのインストール
Rubyのセットアップとインストールについては https://www.techoism.com/install-ruby-2-3-3-centosrhel-rvm/ を参照してください。
1.1.1.3 Logstashのインストール
Logstashのセットアップとインストールについては https://www.elastic.co/guide/jp/logstash/current/installing-logstash.html を参照。
公開署名キーをダウンロードし、インストールします。
$ rpm ––import https://artifacts.elastic.co/GPG-KEY-elasticsearch
/etc/yum.repos.d/ に移動し、yumコマンド用のrepoファイル (例: logstash.repo) を作成し、以下を追加します。
[logstash-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
以下のyumコマンド使ってLogstashをインストールします。
$ yum install logstash
1.1.1.4 ローカルソースコードからのプラグインのインストール
ステップ 1: logstash-plugin ディレクトリをマシン上の任意の覚えやすいディレクトリ(例えば、root
)にコピーします。
ステップ 2: 次のコマンドを実行し logstash-output-griddb をマシンにインストールします。
# cd logstash-plugin/source/logstash-output-griddb
# gem build logstash-output-griddb.gemspec
# /usr/share/logstash/bin/logstash-plugin install logstash-output-griddb-1.0.0.gem
1.1.2 (2) Dockerを使ったインストール
1.1.2.1 Dockerのインストール
https://docs.docker.com/engine/install/centos/ の手順に従ってください。
[注意]: プロキシを使用している場合、 https://docs.docker.com/config/daemon/systemd のガイドに従ってください。
1.1.2.2 コンテナのビルドと起動
/logstash-plugin/development_procedure/logstash-docker
ディレクトリをマシンにコピーします。/logstash-docker
ディレクトリでコマンドdocker build -t logstash-griddb-output .
を実行します。- Dockerコンテナのlogstash-griddb-outputにアクセスするために、コマンド
docker run -it logstash-griddb-output bash
を実行します。
[注意]: SSL証明書に関するエラーが発生する場合、下記のコマンドで証明書検証を無効にして下さい:
echo insecure >> ~/.curlrc
2 使用方法
出力プラグインの構成の項に従って、構成ファイルを編集します。
$ cd /etc/logstash/
$ vi mylogstash.conf
Logstashを実行するために次のコマンドを実行します。
$ /usr/share/logstash/bin/logstash -f /etc/logstash/mylogstash.conf --path.settings /etc/logstash
ファイルの変更後に変更結果を自動的にリロードするには、 --config.reload.automatic をコマンドに追加し、次を実行します。
$ /usr/share/logstash/bin/logstash -f /etc/logstash/mylogstash.conf --config.reload.automatic --path.settings /etc/logstash
2.1 入力プラグインの構成
入力プラグインの詳細は、 https://www.elastic.co/guide/en/logstash/current/input-plugins.html を参照。本マニュアルではファイル入力プラグインを例に説明します。
2.1.1 ファイル入力
パラメータ | 値 |
---|---|
path | 必須の設定。 値の型は配列。 デフォルト値はありません。 |
type | typeは主にフィルタをアクティブにするために使用されます。 |
例: ファイル入力を使った場合
input {
file {
path => "/usr/share/logstash/run/input/sys.log"
type => "syslog"
}
}
2.2 フィルタプラグインの構成(オプション)
フィルタプラグインの詳細は https://www.elastic.co/guide/en/logstash/current/filter-plugins.html を参照。
2.3 出力プラグインの構成
2.3.1 パラメータ
パラメータ | 値 |
---|---|
host | GridDB WebAPIのURL (必須) [注意]: このURLにはWeb APIコンテキストパスを含めないでください。 有効なURL例: http://192.168.0.11:8081 無効なURL例: http://192.168.0.11:8081/griddb/v2 |
cluster | GridDBのクラスタ名 (必須) |
database | データの挿入先のGridDBのデータベース名。値がnullまたは空の場合、"public"がデフォルトになります。 |
container | GridDBに挿入するコンテナ名 (必須) |
insert_mode | 挿入モードのオプション: appendまたはreplace。値がnullまたは空の場合、"append"がデフォルトになります。 |
username | GridDBユーザ名 (必須) |
password | GridDB userのパスワード (必須) |
proxy | プロキシ構成 (マシンがプロキシサーバの背後に配置されている場合、必須) [注意]: プロキシはURL、username、passwordを含みます。 例: 完全な構成: proxy => { url => 'http://10.116.16.12:3128' user => 'admin' password => 'admin' } |
2.3.2 例
以下にlogstash-plugin-griddbを使った詳しい例を示します。
例1: appendモードの場合
output {
griddb {
host => "{host}:{port}"
cluster => "mycluster2"
database => "public"
container => "logstashTest2"
username => "{username}"
password => "{password}"
insert_mode => "append"
proxy => {
url => '{host}:{port}'
user => '{username}'
password => '{password}'
}
}
}
データの挿入にappend
モードを使用し、コンテナが存在しない場合、新しいコンテナを作成し、データを挿入します。コンテナがすでに存在している場合、現在のコンテナを保持してデータを挿入します。
例2: replaceモードの場合
output {
griddb {
host => "{host}:{port}"
cluster => "mycluster2"
database => "public"
container => "logstashTest2"
username => "{username}"
password => "{password}"
insert_mode => "replace"
proxy => {
url => '{host}:{port}'
user => '{username}'
password => '{password}'
}
}
}
データの挿入にreplace
モードを使用し、コンテナが存在しない場合、新しいコンテナを作成し、データを挿入します。コンテナがすでに存在している場合、現在のコンテナを削除の上、新しいコンテナを作成し、データを挿入します。
例3: httpsを使った場合
output {
griddb {
host => "https://{full_uri}"
cluster => "mycluster2"
database => "public"
container => "logstashTest2"
username => "{username}"
password => "{password}"
insert_mode => "replace"
proxy => {
url => '{host}:{port}'
user => '{username}'
password => '{password}'
}
}
}
2.4 入出力プラグインの完全な構成例
例1: ファイル入力を使い、プロキシを使わない完全な構成
input {
file {
path => "/var/log/msg/logstash-tutorial-dataset"
type => "syslog"
}
}
output {
stdout {}
griddb {
host => "{host}:{port}"
cluster => "mycluster2"
database => "public"
container => "logstashTest2"
username => "{username}"
password => "{password}"
insert_mode => "replace"
}
}
例2: システムログ入力, 認証なしのプロキシを使った完全な構成
input {
file {
path => "/var/log/msg/logstash-tutorial-dataset"
type => "syslog"
}
}
output {
stdout {}
griddb {
host => "{host}:{port}"
cluster => "mycluster2"
database => "public"
container => "logstashTest2"
username => "{username}"
password => "{password}"
insert_mode => "replace"
proxy => "{host}:{port}"
}
}