ELKは、ElasticSearch、Logstash、Kibanaの3つのオープンソース製品を組み合わせたものです。これは、世界中で最も人気のあるログ管理プラットフォームの1つです。 Elasticsearchは、検索および分析エンジンです。 Logstashは、複数のソースからログを同時に転送し、変換してから、Elasticsearchのような「スタッシュ」に送信するログ処理パイプラインです。 Kibanaは、LogstashがElasticsearchインデックスにインデックス付けしたデータを視覚化するために使用されます
このチュートリアルでは、Ubuntu20.04にLogstashをインストールする方法を説明します。
- Ubuntu20.04を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
Elasticsearchをインストールするには、システムにJavaをインストールする必要があります。次のコマンドを使用してJavaJDKをインストールできます。
apt-get install openjdk-11-jdk -y
インストールしたら、次のコマンドを使用して、インストールされているJavaのバージョンを確認します。
java -version
次の出力が表示されます。
openjdk 11.0.7 2020-04-14 OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1) OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)
次に、次のコマンドを実行して、他の必要な依存関係をインストールします。
apt-get install nginx curl gnupg2 wget -y
すべての依存関係がインストールされたら、次のステップに進むことができます。
開始する前に、システムにElasticsearchをインストールする必要があります。 Logstashからのログとイベントを保存し、リアルタイムでログを検索する機能を提供します。
まず、次のコマンドを使用して、Elasticリポジトリをシステムに追加します。
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
次に、リポジトリを更新し、次のコマンドを使用してElasticsearchをインストールします。
apt-get update -y
apt-get install elasticsearch -y
インストールしたら、Elasticsearchのデフォルト設定ファイルを編集します:
nano /etc/elasticsearch/elasticsearch.yml
以下に示すように、コメントを外して値を変更します。
network.host: localhost
ファイルを保存して閉じてから、Elasticsearchサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。
systemctl start elasticsearch
systemctl enable elasticsearch
この時点で、Elasticsearchがインストールされ、ポート9200でリッスンしています。次のコマンドを実行して、Elasticsearchが機能しているかどうかをテストできます。
curl -X GET "localhost:9200"
すべてが正常であれば、次の出力が表示されます。
{ "name" : "ubuntu2004", "cluster_name" : "elasticsearch", "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA", "version" : { "number" : "7.8.0", "build_flavor" : "default", "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" }
終了したら、次のステップに進むことができます。
Kibanaのインストールと構成
次に、システムにKibanaをインストールする必要があります。 Kibanaを使用すると、Elasticsearchに保存されているデータを分析できます。次のコマンドを実行するだけでインストールできます:
apt-get install kibana -y
Kibanaをインストールしたら、次のコマンドを使用してKibanaサービスを開始し、起動時に開始できるようにします。
systemctl start kibana
systemctl enable kibana
次に、KibanaWebインターフェイスにアクセスするためのKibanaの管理ユーザーを作成する必要があります。次のコマンドを実行して、管理用Kibanaユーザーとパスワードを作成し、htpasswd.usersファイルに保存します。
echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users
次の出力に示すように、パスワードの入力を求められます。
Password: Verifying - Password: admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/
次に、Kibanaにサービスを提供するNginx仮想ホスト構成ファイルを作成します。
nano /etc/nginx/sites-available/kibana
次の行を追加します:
server { listen 80; server_name kibana.example.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.users; location / { proxy_pass http://localhost:5601; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
ファイルを保存して閉じてから、次のコマンドでNginx仮想ホストファイルを有効にします。
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
次に、Nginxサービスを再起動して、変更を適用します。
systemctl restart nginx
次に、Webブラウザーを開き、URLhttp://kibana.example.com/statusを使用してKibanaのステータスを確認します。以下に示すように、ユーザー名とパスワードを入力するように求められます。
Kibanaのユーザー名とパスワードを入力し、[サインイン]ボタンをクリックします。次の画面が表示されます。
この時点で、Kibanaダッシュボードがシステムにインストールされます。これで、次のステップに進むことができます。
Logstashのインストールと構成
Logstashは、ビートによって送信されたログの処理に使用されます。次のコマンドを実行してインストールできます:
apt-get install logstash -y
Logstashをインストールしたら、次のコマンドを使用して新しいビート構成ファイルを作成します。
nano /etc/logstash/conf.d/02-beats-input.conf
次の行を追加します:
input { beats { port => 5044 } }
ファイルを保存して閉じてから、次のコマンドを使用してElasticsearch構成ファイルを作成します。
nano /etc/logstash/conf.d/30-elasticsearch-output.conf
次の行を追加します:
output { if [@metadata][pipeline] { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" pipeline => "%{[@metadata][pipeline]}" } } else { elasticsearch { hosts => ["localhost:9200"] manage_template => false index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } }
ファイルを保存して閉じ、次のコマンドでLogstash構成を確認します。
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
すべてが正常であれば、次の出力が表示されます。
Config Validation Result: OK. Exiting Logstash
次に、Logstashサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。
systemctl start logstash
systemctl enable logstash
この時点で、Logstashがシステムにインストールされています。これで、次のステップに進むことができます。
Filebeatのインストールと構成
ELKスタックはFilebeatを使用してさまざまなソースからデータを収集し、それらをLogstashに転送します。
次のコマンドでFilebeatをインストールできます:
apt-get install filebeat -y
インストールしたら、Logstashに接続するようにFilebeatを構成する必要があります。次のコマンドで構成できます:
nano /etc/filebeat/filebeat.yml
次の行をコメントアウトします:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
次に、次の行のコメントを解除します。
output.logstash: # The Logstash hosts hosts: ["localhost:5044"]
ファイルを保存して閉じ、次のコマンドでシステムモジュールを有効にします。
filebeat modules enable system
デフォルトでは、Filebeatはsyslogおよび認証ログにデフォルトのパスを使用するように構成されています。
次のコマンドを使用して、システムモジュールの取り込みパイプラインをロードできます。
filebeat setup --pipelines --modules system
次に、次のコマンドを使用してテンプレートをロードします。
filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
次の出力が表示されます。
Index setup finished.
デフォルトでは、FilebeatにはサンプルのKibanaダッシュボードがパッケージ化されており、KibanaでFilebeatデータを視覚化できます。したがって、Logstash出力を無効にし、Elasticsearch出力を有効にする必要があります。次のコマンドで実行できます:
filebeat setup -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
次の出力が表示されます。
Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling. Index setup finished. Loading dashboards (Kibana must be running and reachable) Loaded dashboards Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead. See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html Loaded machine learning job configurations Loaded Ingest pipelines
次に、Filebeatサービスを開始し、次のコマンドを使用して起動時に開始できるようにします。
systemctl start filebeat
systemctl enable filebeat
この時点で、ELKのすべてのコンポーネントがインストールおよび構成されています。次に、Webブラウザーを開き、URLhttp://kibana.example.comを入力します。次の画面にKibanaダッシュボードが表示されます。
左側のペインで、検出をクリックします 事前定義されたfilebeat-*インデックスパターンを選択して、次の画面にFilebeatデータを表示します。
現在、Kibanaは多くの機能を提供しています。自由に探索してください。
おめでとう!これで、Ubuntu20.04サーバーにLogstashが正常にインストールおよび構成されました。これで、中央の場所からシステムログを収集して分析できます。ご不明な点がございましたら、お気軽にお問い合わせください。