ELK Stackは、世界で最も人気のあるログ管理プラットフォームです。これは、Elasticsearch、Logstash、Kibanaなどのオープンソース製品のコレクションです。これら3つの製品はすべて、Elasticによって開発、管理、保守されています。
ELK Stackは、大量のログデータを管理できる強力なオープンソースプラットフォームです。入力ログは通常、グラフィカルWebインターフェイス(GUI)からのものです。
- Elasticsearchは、水平方向のスケーラビリティと管理の容易さを目的としたJSONベースの検索および分析エンジンです。
- Logstashは、複数のソースから同時にデータを収集する機能を備えたサーバー側のデータ処理インターフェースです。次に、それを変換してから、データを目的のスタッシュに送信します。オープンソースアプリケーションです。
- Kibanaは、データを視覚化し、ElasticStackをナビゲートするために使用されます。オープンソースツールでもあります。
UbuntuにELKスタックをインストールして設定する
このチュートリアルでは、 filebeatを使用します。 ログデータをLogstashに送信します。 Beatsは軽量のデータシッパーであり、まず、サーバーにエージェントをインストールする必要があります。
ステップ1)Java8のインストール
ElasticSearchはJava8および9をサポートしていますが、問題はLogstashがJava8とのみ互換性があることです。Java9はまだサポートされていません。したがって、OracleJava8をインストールします。
ターミナルを起動し、Oracle Java 8リポジトリを追加してから、システムを更新し、実際にインストールします。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default
ターミナルに注意してください。続行するには、使用許諾契約のウィンドウに同意し、[はい]を選択する必要があります。インストールが完了したら、次のコマンドを使用してJavaのバージョンを確認できます。
.sudo java -version

sudo echo $JAVA_HOME

ステップ2)Elasticsearchのインストールと設定
wgetから始めましょう Elasticsearchに続いて公開署名キーをダウンロードするコマンド:
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
次に、apt-transport-httpsパッケージをインストールします(Debianベースのディストリビューションにはこれが必要です)。
sudo apt-get install apt-transport-https
リポジトリを追加します:
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
リポジトリリストを更新し、パッケージをインストールします:
sudo apt-get update
sudo apt-get install elasticsearch
「elasticsearch.yml」ファイルを変更しましょう:
sudo vim /etc/elasticsearch/elasticsearch.yml
「network.host」と「http.port」のコメントを解除します。次の構成を追加する必要があります:
network.host: localhost http.port: 9200
次に、ファイルを保存して閉じます。
ElasticSearchがシームレスに機能することを確認するには、起動時にElasticSearchを有効にして、ElasticSearchを起動します。
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
インストールを確認してください:
sudo curl -XGET 'localhost:9200/?pretty'

ステップ3)Kibanaのインストール
今すぐKibanaのインストールを開始し、Kibanaの設定を変更しましょう:
sudo apt-get install kibana
sudo vim /etc/kibana/kibana.yml
次の行のコメントを解除します:
server.port: 5601 server.host: "localhost" elasticsearch.url: "http://localhost:9200"
ファイルを保存して終了します。
起動時に有効にして、Kibanaサービスを開始します:
sudo systemctl enable kibana.service
sudo systemctl start kibana.service
ステップ4)NginxをKibanaのリバースプロキシとして構成する
同様の行で、Nginxをインストールして構成し、サービスを開始しましょう。次のコマンドを一度に1つずつ使用します。
sudo apt-get install nginx apache2-utils
仮想ホストの構成:
sudo vim /etc/nginx/sites-available/elk
次の構成をファイルに追加します:
server { listen 80; server_name elk.fosslinux.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.elkusersecret; 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; } }
Webブラウザ認証用のユーザーとパスワードのファイルを作成します:
sudo htpasswd -c /etc/nginx/.elkusersecret elkusr

パスワードを入力して繰り返します。 Nginx構成を確認してください:
sudo nginx -t
システムの起動時にNginxを有効にして、サービスを再起動します:
sudo systemctl enable nginx.service
sudo systemctl restart nginx.service
ステップ5)Logstashのインストールと構成
Logstashのインストール:
sudo apt-get install logstash
ここでは、ファイルビートクライアントからのログ転送を保護するためのSSL証明書キーを生成します。 SSL証明書を作成する前に「hosts」ファイルを変更してください。
sudo vim /etc/hosts
次の行をファイルに追加します。必ずIPとサーバー名を自分のものに変更してください。
172.31.31.158 elk-server elk-server
完了したら、ファイルを保存して終了します。
次に、ディレクトリをLogstashに変更します。
sudo cd /etc/logstash/
SSL用のフォルダを作成します:
sudo mkdir ssl
SSL証明書を生成します。以下のコマンドでelk-serverを自分のサーバー名に変更します。
sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
「/etc/logstash/conf.d」内に次のファイルを作成します。
sudo cd /etc/logstash/conf.d/
vimを使用してfilebeat-inputファイルを作成します。
sudo vim filebeat-input.conf
次の行を追加します。
input { beats { port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder.key" } }
ファイルを保存して閉じ、新しい構成ファイルを作成します。
sudo vim syslog-filter.conf
以下の内容を追加してください。
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
ファイルを保存して終了します。 elasticsearchを作成します 出力ファイル。
sudo vim output-elasticsearch.conf
次の行を追加します。
output { elasticsearch { hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }
起動時にLogstashを有効にして、サービスを開始しましょう:
sudo systemctl enable logstash.service
sudo systemctl start logstash.service
ステップ6)クライアントサーバーへのFilebeatのインストールと構成
ホストの編集から始めます elkホストエントリを追加するファイル。必ずIPと名前を自分のものに置き換えてください。
sudo vim /etc/hosts
172.31.31.158 elk-server
ファイルを保存して終了します。
公開署名キーをダウンロードしてインストールします:
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
「apt-transport-https」をインストールしてリポジトリを追加します。
sudo apt-get install apt-transport-https
sudo echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
リポジトリを更新し、Filebeatをインストールします。
sudo apt-get update
sudo apt-get install filebeat
Filebeatの構成を変更します。
sudo vim /etc/filebeat/filebeat.yml
次の行を見つけて、値を「true」に変更します。
enabled: true
ここでは、ログパスと Filebeatを変更していません 「var/log」フォルダ内のすべてのログを転送します
paths: - /var/log/*.log
次の行のコメントを解除します:
output.logstash: # The Logstash hosts hosts: ["elk-server:5443"] ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]
コメントElasticsearch:
#output.elasticsearch: # Array of hosts to connect to. # hosts: ["localhost:9200"]
ファイルを保存して終了します。
次に、ELKサーバーに移動して、「logstash-forwarder.crt」のコンテンツを取得します
sudo cat /etc/logstash/ssl/logstash-forwarder.crt

出力をコピーしてから、Elkクライアントサーバーに移動します。
証明書ファイルを作成する
sudo vim /etc/filebeat/logstash-forwarder.crt
コピーした出力を挿入し、保存して終了します。
filebeatを有効にする システムの起動時にfilebeatを開始します サービス。
sudo systemctl enable filebeat.service
sudo systemctl start filebeat.service
ステップ7)Kibanaダッシュボードの閲覧
お気に入りのWebブラウザを起動し、ドメイン名に続けてユーザー名とパスワードを入力します。
http://elk.fosslinux.com

作成したユーザー名とパスワードを入力します。 Kibanaウェルカムページが表示されます。 [自分で探す]ボタンをクリックします。

Kibanaホームページに移動する必要があります。

左側の「発見」をクリックします。 「インデックスパターンの作成」をクリックします。

次に、インデックスパターン「filebeat-*」を定義します。

[次へ]をクリックして[@timestamp]を選択し、[インデックスパターンの作成]をクリックします。

インデックスパターンを作成する必要があります。

「検出」メニューをクリックして、サーバーログを表示します。

ログはタイムスタンプに従って表示されます。タイムスタンプをクリックして展開し、ログファイルの内容と詳細を確認します。

ここに到達した場合は、filebeatを使用してELKスタックを正常にインストールおよび構成したことを意味します。問題がありますか?以下のコメントでお気軽にお知らせください。