ELKスタックはフル機能のデータ分析プラットフォームであり、Elasticsearch、Logstash、およびKibanaオープンソースツールで構成されています。ログを一元的に保存および管理するのに役立ち、問題を分析する機能を提供します。
この記事は、Debian 10 /Debian9にELKスタックをインストールするのに役立ちます。
ELKスタックをインストールする
Elasticsearch – Logstashからの受信ログを保存し、ログ/データをリアルタイムで検索する機能を提供します
Logstash –ビート(フォワーダー)によって送信された受信ログの処理(収集、エンリッチ、Elasticsearchへの送信)。
Kibana –イベントとログの視覚化を提供します。
Beats –クライアントマシンにインストールされ、beatsプロトコルを介してLogstashまたはElasticsearchにログを送信します。
Javaのインストール
Elasticsearchには、マシンで利用可能なOpenJDKまたはOracleJDKのいずれかが必要です。ここでは、このデモではOpenJDKを使用しています。
sudo apt update sudo apt install -y openjdk-11-jre
Javaのバージョンを確認してください。
java -version
出力:
openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)
OracleJDKを使用する場合は、以下をお読みください。
読む:Debian 10 /Debian9にOracleJavaをインストールする方法
Elasticリポジトリを追加
aptのwgetとHTTPSサポートをインストールします。
sudo apt install -y wget apt-transport-https curl
ELKパッケージはElasticリポジトリから入手できます。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Elasticsearchのインストールと設定
まず、Luceneをベースにしたオープンソースの検索エンジンであるElasticsearchサーバーをインストールします。リアルタイムの分散型マルチテナント対応全文検索エンジンに、HTTPWebインターフェイスとスキーマフリーのJSONドキュメントを提供します。
Elasticsearchは、Logstashから送信されたデータを保存し、ユーザーのリクエストに応じてKibanaを介してデータを表示します。
次のコマンドを使用してElasticsearchをインストールします。
sudo apt update sudo apt install -y elasticsearch-oss
Elasticsearchサービスを開始します。
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch
数分待ってから次のコマンドを実行して、ElasticsearchRESTインターフェースのステータスを確認します。
curl -X GET http://localhost:9200
出力:
{ "name" : "debian10", "cluster_name" : "elasticsearch", "cluster_uuid" : "6y4OcEnYS3qkN_AetQAYMQ", "version" : { "number" : "7.8.0", "build_flavor" : "oss", "build_type" : "deb", "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65", "build_date" : "2020-06-14T19:35:50.234439Z", "build_snapshot" : false, "lucene_version" : "8.5.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" }
上記の出力は、Elasticsearchが正常に稼働していることを確認しています。
Logstashのインストールと構成
Logstashは、オープンソースのデータ収集およびログ解析エンジンです。ログを収集し、解析してElasticsearchに保存して検索します。 Logstashでは160以上のプラグインを利用できます。これにより、追加の作業なしでさまざまなタイプのイベントを処理できます。
sudo apt install -y logstash-oss
Logstash構成ファイルは、入力、フィルター、および出力の3つのセクションで構成されています。 3つのセクションすべてを単一のファイルに入れることも、セクションごとに別々のファイルに入れることもできます。末尾は.confです。
ここでは、入力、フィルター、および出力セクションを配置するために単一のファイルを使用します。 /etc/logstash/conf.d/ディレクトリの下に構成ファイルを作成します。
sudo nano /etc/logstash/conf.d/beats-syslog.conf
入力セクションでは、クライアントマシン上にあるビート(Forwarder)からの着信ログをポート5044でリッスンするようにLogstashを構成します。
input { beats { port => 5044 ssl => false } }
フィルタセクションでは、Grokを使用してログを解析してから、Elasticsearchに送信して保存します。
次のgrokフィルターは、ラベル付きログsyslogを検索し、それらを解析して構造化インデックスを作成しようとします。
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGLINE}" } } date { match => [ "timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
その他のGROKフィルターパターンについては、こちらをご覧ください。
出力セクションでは、ログを保存する場所を定義します。ELKスタックの場合は明らかにElasticsearchです。
output { elasticsearch { hosts => localhost index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } }
次に、Logstashサービスを開始して有効にします。
sudo systemctl start logstash sudo systemctl enable logstash
問題が発生した場合は、Logstashファイルを確認してください。
sudo cat /var/log/logstash/logstash-plain.log
Kibanaのインストールと構成
Kibanaは、Elasticsearchに保存されているデータの視覚化を提供します。次のコマンドを使用してKibanaをインストールします。
sudo apt install -y kibana-oss
デフォルトでは、Kibanaはローカルホストでリッスンします。つまり、別のマシンからKibanaWebインターフェイスにアクセスすることはできません。 /etc/kibana/kibana.ymlファイルを編集します。
sudo nano /etc/kibana/kibana.yml
サーバーのIPアドレスを使用して以下の行に変更を加えます。
server.host: "192.168.0.10"
マシンの起動時にKibanaを起動して有効にします。
sudo systemctl start kibana sudo systemctl enable kibana
Filebeatのインストール
Filebeatは、クライアントマシンで実行されるソフトウェアです。構成に応じて、ログをLogstashサーバーに送信して解析するか、Elasticsearchを送信して保存します。
aptのwgetとHTTPSサポートをインストールします。
sudo apt install -y wget apt-transport-https curl
ELKパッケージはElasticリポジトリから入手できます。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb https://artifacts.elastic.co/packages/oss-7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
次のコマンドを使用してFilebeatをインストールします。
sudo apt update sudo apt install -y filebeat-oss
filebeatの主な設定ファイルは/etc/filebeat/filebeat.ymlです。
sudo nano /etc/filebeat/filebeat.yml
Logstashサーバーにログを送信するには、このファイルを編集する必要があります。
以下の構成では、syslog(/ var / log / syslog)をLogstashサーバーに送信します。このデモでは、すべてのログがLogstashサーバーに送信されないように、/ var / log/*。logをコメントアウトしました。
. . . filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. - type: log # Change to true to enable this input configuration. enabled: true # Paths that should be crawled and fetched. Glob based paths. paths: - /var/log/syslog . . .
[出力]セクションで、[出力.elasticsearch:]セクションをコメントアウトします。これは、Elasticsearchにログを保存しないためです。
次に、output.logstash:の行に移動し、エントリを変更してログをLogstashに送信し、コピーされたSSLファイルへのパスを指定します。
注: 「192.168.0.10」をLogstashサーバーのIPアドレスに置き換えます。
. . . #----------------------------- Logstash output -------------------------------- output.logstash: # The Logstash hosts hosts: ["192.168.0.10:5044"] . . .
Filebeatサービスを再起動します。
sudo systemctl restart filebeat
Kibanaにアクセスする
次のURLを使用してKibanaWebインターフェイスにアクセスできます。
http:// your-ip-address:5601 /または
http:// your-serve-name:5601最初のログイン時に、filebeatインデックスをマップする必要があります。 自分で探索をクリックします インデックスパターンを作成します。
メニュー(ハンバーガーアイコン)をクリックします>>スタック管理>>インデックスパターン>>インデックスパターンを作成 。
[インデックスパターン]ボックスに次のように入力し、[次のステップ]をクリックします。
filebeat-*
@timestampを選択します 次に、[インデックスパターンの作成]をクリックします。
@timestamp
Elasticsearchによって記録されたインデックスのフィールドとそのコアタイプを確認します。
左側のナビゲーションで[検出]をクリックして、クライアントマシンからの受信ログを表示します。
結論
それで全部です。 ELKスタックをDebian10/Debian9にインストールする方法を学んだことを願っています。コメントセクションでフィードバックを共有してください。