はじめに
ELKスタックは、ログファイルを取得および管理するための一連のアプリケーションです。
これは、3つのオープンソースツール Elasticsearchのコレクションです。 、キバナ 、および Logstash 。スタックはビートでさらにアップグレードできます 、さまざまなデータストリームからのデータを集約するための軽量プラグイン。
このチュートリアルでは、Ubuntu 18.04/20.04にELKソフトウェアスタックをインストールする方法を学びます。
前提条件
- Ubuntu20.04または18.04を実行しているLinuxシステム
- ターミナルウィンドウ/コマンドラインへのアクセス(検索>ターミナル )
- sudoのユーザーアカウント またはルート 特権
- Javaバージョン8または11(Logstashに必要)
ステップ1:依存関係をインストールする
Javaのインストール
ELKスタックにはJava8がインストールされている必要があります。一部のコンポーネントはJava9と互換性がありますが、Logstashとは互換性がありません。
すでにJava8がインストールされている場合は、Nginxのインストールにスキップしてください。
1. Java 8がインストールされていない場合は、ターミナルウィンドウを開き、次のように入力してインストールします。
sudo apt-get install openjdk-8-jdk
2.プロンプトが表示されたら、 y
と入力します Enterを押します プロセスを終了します。
Nginxをインストール
NginxはWebサーバーおよびプロキシサーバーとして機能します。 Kibanaダッシュボードへのパスワード制御アクセスを構成するために使用されます。
1.次のように入力して、Nginxをインストールします。
sudo apt-get install nginx
2.プロンプトが表示されたら、 y
と入力します Enterを押します プロセスを終了します。
ステップ2:Elasticリポジトリを追加する
Elasticリポジトリは、ELKスタック内のすべてのオープンソースソフトウェアへのアクセスを可能にします。それらを追加するには、GPGキーをインポートすることから始めます。
1.ターミナルウィンドウに次のように入力して、ElasticのPGPキーをインポートします。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
2.システムはOKで応答する必要があります 、下の画像に見られるように。
3.次に、 apt-transport-httpsをインストールします パッケージ:
sudo apt-get install apt-transport-https
4.システムのリポジトリリストにElasticリポジトリを追加します:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee –a /etc/apt/sources.list.d/elastic-7.x.list
ステップ3:Elasticsearchをインストールする
1. Elasticsearchをインストールする前に、次のように入力してリポジトリを更新します。
sudo apt-get update
2.次のコマンドを使用してElasticsearchをインストールします。
sudo apt-get install elasticsearch
Elasticsearchの設定
1. Elasticsearchは、構成ファイルを使用して、その動作を制御します。選択したテキストエディタで編集するために構成ファイルを開きます。 nanoを使用します:
sudo nano /etc/elasticsearch/elasticsearch.yml
2.いくつかの異なるエントリと説明を含む構成ファイルが表示されます。下にスクロールして、次のエントリを見つけます。
#network.host: 192.168.0.1
#http.port: 9200
3.ハッシュを削除して行のコメントを解除します ( #
)署名 両方の行の先頭で、 192.168.0.1
を置き換えます localhost
を使用 。
読む必要があります:
network.host: localhost
http.port: 9200
4.すぐ下で、ディスカバリーを見つけます セクション。シングルノードクラスターを構成しているため、もう1行追加します。
discovery.type: single-node
詳細については、下の画像を参照してください。
5.デフォルトでは、JVMヒープサイズ 1GBに設定されています。合計メモリの半分以下のサイズに設定することをお勧めします。次のファイルを開いて編集します:
sudo nano /etc/elasticsearch/jvm.options
6. -Xms
で始まる行を見つけます および-Xmx
。以下の例では、最大値( -Xmx
)および最小( -Xms
)サイズは512MBに設定されています。
Elasticsearchを開始
1. systemctl
を実行して、Elasticsearchサービスを開始します コマンド:
sudo systemctl start elasticsearch.service
システムがサービスを開始するまでに時間がかかる場合があります。成功した場合、出力はありません。
2.Elasticsearchが起動時に開始できるようにします:
sudo systemctl enable elasticsearch.service
Elasticsearchのテスト
curl
を使用する 構成をテストするコマンド。次のように入力します:
curl -X GET "localhost:9200"
システムの名前とelasticsearchが表示されます。 クラスター名。これは、Elasticsearchが機能しており、ポート9200でリッスンしていることを示しています。 。
ステップ4:Kibanaをインストールする
次にKibanaをインストールすることをお勧めします。 Kibanaは、収集されたログファイルを解析および解釈するためのグラフィカルユーザーインターフェイスです。
1.次のコマンドを実行して、Kibanaをインストールします。
sudo apt-get install kibana
2.プロセスが終了するのを待ちます。完了したら、Kibanaを構成します。
Kibanaを構成する
1.次に、 kibana.ymlを開きます 編集用の構成ファイル:
sudo nano /etc/kibana/kibana.yml
2. #
を削除します 次の行の先頭に署名して、それらをアクティブにします。
#server.port: 5601
#server.host: "your-hostname"
#elasticsearch.hosts: ["http://localhost:9200"]
上記の行は次のようになります。
server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
3.ファイルを保存します(Ctrl + o
)そして終了します(Ctrl + x
。
Kibanaを起動して有効にする
1. Kibanaサービスを開始します:
sudo systemctl start kibana
サービスが正常に開始された場合、出力はありません。
2.次に、起動時に起動するようにKibanaを構成します:
sudo systemctl enable kibana
ポート5601でのトラフィックを許可する
UbuntuシステムでUFWファイアウォールが有効になっている場合は、ポート5601でのトラフィックを許可する必要があります。 Kibanaダッシュボードにアクセスします。
ターミナルウィンドウで、次のコマンドを実行します。
sudo ufw allow 5601/tcp
次の出力が表示されます。
テストキバナ
Kibanaにアクセスするには、Webブラウザーを開き、次のアドレスを参照します。
http://localhost:5601
Kibanaダッシュボードが読み込まれます。
「Kibanaサーバーの準備ができていません」を受け取った場合 エラーが発生した場合は、ElasticsearchサービスとKibanaサービスがアクティブかどうかを確認してください。
ステップ5:Logstashをインストールする
Logstashは、さまざまなソースからデータを収集するツールです。収集したデータはKibanaによって解析され、Elasticsearchに保存されます。
次のコマンドを実行して、Logstashをインストールします。
sudo apt-get install logstash
Logstashを起動して有効にする
1. Logstashサービスを開始します:
sudo systemctl start logstash
2. Logstashサービスを有効にします:
sudo systemctl enable logstash
3.サービスのステータスを確認するには、次のコマンドを実行します。
sudo systemctl status logstash
Logstashの構成
Logstashは、ELKスタックの高度にカスタマイズ可能な部分です。インストールしたら、その INPUTを構成します 、フィルター 、および出力 個々のユースケースに応じたパイプライン。
すべてのカスタムLogstash構成ファイルは/etc/logstash/conf.d/に保存されます 。
ステップ6:Filebeatをインストールする
ファイルビート ログファイルの収集と送信に使用される軽量プラグインです。これは最も一般的に使用されるBeatsモジュールです。 Filebeatの主な利点の1つは、Logstashサービスがデータに圧倒されるとペースが遅くなることです。
次のコマンドを実行してFilebeatをインストールします。
sudo apt-get install filebeat
インストールを完了させます。
ファイルビートの構成
Filebeatは、デフォルトで、Elasticsearchにデータを送信します。 Filebeatは、イベントデータをLogstashに送信するように構成することもできます。
1.これを構成するには、 filebeat.ymlを編集します 構成ファイル:
sudo nano /etc/filebeat/filebeat.yml
2. Elasticsearchの下 o出力 セクションで、次の行をコメントアウトします。
# output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]
3.Logstash出力の下 セクション、ハッシュ記号を削除 ( #
)次の2行で:
# output.logstash
# hosts: ["localhost:5044"]
次のようになります:
output.logstash
hosts: ["localhost:5044"]
詳細については、下の画像を参照してください。
4.次に、Filebeatシステムを有効にします モジュール。ローカルシステムログを調べます:
sudo filebeat modules enable system
出力はEnabled system
と表示されます。 。
5.次に、インデックステンプレートをロードします:
sudo filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
システムは、システムをスキャンしてKibanaダッシュボードに接続する作業を行います。
Filebeatを起動して有効にする
Filebeatサービスを開始して有効にします:
sudo systemctl start filebeat
sudo systemctl enable filebeat
Elasticsearchのデータ受信を確認する
最後に、Filebeatがログファイルを処理のためにLogstashに送信しているかどうかを確認します。処理されると、データはElasticsearchに送信されます。
curl -XGET http://localhost:9200/_cat/indices?v