【Elastic】Ubuntu環境でLogstashを実行する
Docker Ubuntu
Docker Hubから最新のUbuntuイメージをプルするコマンド
docker pullはレジストリからDockerイメージをダウンロードするコマンドです。ubuntu:latestはイメージ名とタグを指定するものです。この場合、Ubuntuイメージの最新バージョンをプルします。
docker pull ubuntu:latest
イメージをプルした後、Docker Scoutからのイメージの脆弱性と推奨事項のサマリーが表示されます。 この情報は次のコマンドで確認できます
docker scout quickview ubuntu:latest
Bash ShellでのUbuntuコンテナの起動
docker runはイメージから新しいコンテナを作成し、起動するためのコマンドです。-itはコンテナのインタラクティブモードと仮想TTY(ターミナル)を有効にするオプションです。--name=logstashでコンテナに”logstash”という名前を割り当てます。ubuntu:latestはコンテナに使用するイメージを指定します。/bin/bashはコンテナ内で実行するコマンドで、Bashシェルを起動します。
docker run -it --name=logstash ubuntu:latest /bin/bash
このコマンドを実行した後、Ubuntuコンテナの中にrootユーザーとして入ります(root@<container_id>:/)。コンテナ内でコマンドを実行して、Ubuntu環境での操作が可能です。
Ubuntuのリポジトリのパッケージリストを更新
apt-get update
必要なパッケージのインストール
このコマンドは指定されたパッケージとその依存関係をインストールします。-yオプションはインストールプロセス中のプロンプトを自動で確認するためのものです。
apt-get install -y wget sudo gpg systemctl apt-transport-https vim
Logstashのセットアップコマンド
-
Ubuntuのリポジトリのパッケージリストを更新 このコマンドは、指定したURLからElasticsearchのアーティファクトのGPG署名キーをダウンロードし、apt-key addコマンドを使用してキーリングに追加します。apt-keyの非推奨に関する警告が表示されますが、キーは正常に追加されます。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - -
sources.listにElasticリポジトリを追加 このコマンドは、追加のAPTパッケージリポジトリを含むsources.list.dディレクトリにElasticリポジトリのURLを追加します。
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list -
パッケージリストの更新 説明: このコマンドは、新しく追加されたElasticリポジトリを含む、すべての設定されたリポジトリからのパッケージリストを更新します。
sudo apt-get update -
Logstashのインストール 説明: このコマンドは、Elastic Stackのデータ処理コンポーネントであるLogstashをインストールします。
sudo apt-get install logstash
Logstashの設定をセットアップ
-
/usr/share/logstash/ディレクトリに移動 このコマンドは、Logstashの設定ファイルを作成するための現在の作業ディレクトリを/usr/share/logstash/に変更します。
cd /usr/share/logstash/ -
logsディレクトリの作成 説明: このコマンドは、ログファイルを保存するためのlogsという新しいディレクトリを/usr/share/logstash/内に作成します。
mkdir logs -
test.logというテストログファイルの作成と編集
sudo vi logs/test.logtest.logの内容
{"test": "test1", "test2": "test2", "test3": "test3"} -
pipelineディレクトリの作成
mkdir pipeline -
logstash.confの作成と編集
sudo vi pipeline/logstash.conflogstash.confの内容
input { file { path => "/usr/share/logstash/logs/test.log" start_position => "beginning" sincedb_path => "/dev/null" codec => "json" } } output { stdout { codec => rubydebug } }
Logstashを実行
/usr/share/logstash/bin/logstash -f /usr/share/logstash/pipeline/logstash.conf
出力
{
"host" => "000000000000",
"@version" => "1",
"test2" => "test2",
"path" => "/usr/share/logstash/logs/test.log",
"@timestamp" => 2023-00-00T00:00:00.000Z,
"test" => "test1",
"test3" => "test3"
}