このガイドでは、Ubuntu18.04にElasticスタックをインストールする方法を学習します。 弾性スタック 、以前はELKスタックと呼ばれていました は、集中ログ用に設計されたElasticCompanyの無料のオープンソースソフトウェアのコレクションまたはスタックです。
これにより、さまざまなソースからのログを無数の形式で検索、分析、および視覚化できます。一元化されたログは、共通のポイントからサーバーまたはアプリケーションの問題を特定するのに役立ちます。
弾性スタックコンポーネント
ElasticStackは4つの主要コンポーネントで構成されています。
- Elasticsearch :これは、収集されたすべてのデータを保存または保持するRESTful検索エンジンです
- ログスタッシュ :これは、データを処理し、ElasticSearchに解析するコンポーネントです
- キバナ :これはログを視覚化するウェブインターフェースです
- ビート :これらは、数百/数千のサーバーからELKが構成されている中央サーバーにログを送信する軽量のデータシッパーです。
次に、Ubuntu18.04にElasticスタックをインストールする方法を見てみましょう。
前提条件
インストールを開始する前に、次のインフラストラクチャが必要であることを確認してください。
- Ubuntuサーバー18.04ルートアクセスと非ルートユーザーおよびufwファイアウォールを備えたLTS。サーバーの最小要件は次のとおりです。
- Ubuntu 18.04 LTS
- 4 GB RAM
- 2つのCPU
- ElasticsearchとLogstashに必要なJava8がシステムにインストールされています。
- サーバーにインストールされたNGINXは、後でKibanaを処理するように構成されます。おすすめの読み物:Ubuntu18.04にNginxをインストールする
それでは、UbuntuへのElasticスタックのインストールを始めましょう。
1。 UbuntuにElasticsearchをインストールする
まず、Elasticsearchの公開GPGキーをAPTにインポートします。 Elasticスタックパッケージは通常、パッケージのなりすましからシステムを保護するためにElasticsearch署名キーで署名されます。さらに、認証されたパッケージは、パッケージマネージャーによって信頼されていると見なされます。
GPGキーをインポートするには、次のコマンドを実行します。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
次に、Elasticリポジトリをsources.list.d
に追加します 以下のコマンドを使用してディレクトリを作成します。
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
2つのコマンドの出力は次のとおりです。
出力
次に、以下のコマンドを使用してシステムのリポジトリを更新します。
sudo apt update
サンプル出力
次に、以下のコマンドを使用してElasticsearchをインストールします。
sudo apt install elasticsearch
出力
2。 UbuntuでElasticsearchを設定する
Elasticsearchはポート9200でリッスンします。ただし、外部からのアクセスを制限して、外部の関係者がデータにアクセスしてElasticClusterをシャットダウンできないようにします。そうは言っても、以下に示すように、Elasticsearch構成ファイルにいくつかの変更を加えます
sudo nano /etc/elasticsearch/elasticsearch.yml
network.host
を見つけます 属性を設定してコメントを解除し、localhost
を追加します その値として。また、http.port
のコメントを解除します 属性。
出力
network.host: localhost
http.port: 9200
次に、図のようにElasticsearchサービスを開始して有効にします。
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
出力
この時点で、Elasticsearchは稼働しているはずです。以下のコマンドを実行して、これを確認できます。
systemctl status elasticsearch
出力
netstat
を使用することもできます 示されているコマンド。
netstat -pnltu
また、curl
を実行することもできます 示されているコマンド。
curl -X GET "localhost:9200"
出力
すごい! Elasticsearchのインストールと設定が完了しました。次に、Logstashをインストールして構成します。
3。 Logstashのインストールと構成
インストールするElasticスタックの2番目のコンポーネントはLogstashです。 Logstashは、filebeatデータシッパーを使用してさまざまなサーバーからログを収集して一元化する責任があります。次に、syslogデータをフィルタリングしてElasticsearchに中継します。
まず、OpenSSLが実行されていることを確認しましょう。これを行うには、実行します。
openssl version -a
出力
Logstashをインストールするには、以下のコマンドを実行します。
sudo apt install logstash -y
出力
次に、/etc/hosts
を編集します ファイルを作成し、以下を追加します。
18.224.44.11 elk-master
ここで、18.224.44.11はmasterELkサーバーのIPアドレスです。
次に、SSL証明書キーを生成して、クライアントファイルビートからlogstashサーバーへのログデータ転送を保護します。
これを行うには、まず、logstash構成ディレクトリ「/ etc / logstash」の下に新しいSSLディレクトリを作成し、そのディレクトリに移動します。
mkdir -p /etc/logstash/ssl
cd /etc/logstash/
これで、以下に示すようにSSL証明書を生成できます。
openssl req -subj '/CN=elk-master/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
次に、logstashの新しい構成ファイルを作成します。 filebeatからの入力ファイルとして構成ファイル「filebeat-input.conf」を作成し、syslog処理用に「syslog-filter.conf」を作成し、最後に「output-elasticsearch.conf」ファイルを作成してElasticsearch出力を定義します。
>Logstashディレクトリに移動し、「conf.d」ディレクトリに「filebeat-input.conf」を作成します。
cd /etc/logstash/
vim conf.d/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"
}
}
テキストエディタを保存して終了します。
syslog処理ログデータには、syslogファイルの解析に「grok」という名前のフィルタープラグインを使用しています。
新しい構成「syslog-filter.conf」を作成します。
vim conf.d/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出力用に「output-elasticsearch.conf」という名前の構成ファイルを作成します。
vim conf.d/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
sudo systemctl start logstash
Logstashが実行されていることを確認するには、コマンドを実行します。
sudo systemctl status logstash
サンプル出力
netstat
を使用することもできます 示されているコマンド。
netstat -pnltu
4。 UbuntuにKibanaをインストールして構成する
次に、以下のコマンドを使用してKibanaをインストールします。
sudo apt install kibana -y
出力
次に、kibana構成ファイルにいくつかの変更を加えます。
vim /etc/kibana/kibana.yml
次の属性を見つけてコメントを外します。
server.port: 5601
server.host: "localhost"
elasticsearch.url: "https://localhost:9200"
テキストエディタを保存して終了します。
次に、Kibanaサービスを有効にして開始します:
sudo systemctl enable kibana
sudo systemctl start kibana
出力
netstat
を使用して、kibanaがデフォルトのポート5601で実行されていることを確認できます。 示されているコマンド。
netstat -pnltu
出力
5。 KibanaのリバースプロキシとしてのNGINXのインストールと構成
NGINXをkibanaダッシュボードのリバースプロキシとして使用しています。以下に示すように、Nginxと「Apache2-utils」をインストールする必要があります。
sudo apt install nginx apache2-utils -y
出力
次に、kibanaという名前の新しい仮想ホストファイルを作成します。
vim /etc/nginx/vim sites-available/kibana
次のコンテンツを仮想ホストファイルに貼り付けます
server {
listen 80;
server_name localhost;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass https://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ロケーションディレクティブ。
次に、htpasswd
を使用して、kibanaダッシュボードの基本認証を作成します 示されているコマンド。
sudo htpasswd -c /etc/nginx/.kibana-user elastic
Type the elastic user password
出力
上記の例では、ユーザー名は弾性です。 パスワードはあなたが提供するものになります。
次に、Kibana仮想ホスト構成をアクティブ化し、Nginx構成をテストします。
ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/
nginx -t
出力
エラーが発生しない場合は、Nginxサーバーを有効にして再起動します。
systemctl enable nginx
systemctl restart nginx
6。 Filebeatのインストールと構成
このステップでは、elk-masterサーバーでfilebeatデータシッパーを構成します。これにより、すべてのsyslogメッセージがlogstashに中継され、kibanaによって処理および視覚化されます。
filebeat runをインストールするには:
sudo apt install filebeat
次に、filebeat構成ファイルを開きます。
sudo vim /etc/filebeat/filebeat.yml
Logstashを使用して、Filebeatによって収集されたデータに対して追加の処理を実行します。データをElasticsearchに直接送信するためにFilebeatは必要ありません。したがって、図のようにelasticsearchセクションを見つけてコメントします。
#output.elasticsearch:
# Array of hosts to connect to.
#hosts: ["localhost:9200"]
次に、Logstashセクションに移動し、図のようにコメントを外します。
output.logstash:
# The Logstash hosts
hosts: ["localhost:5044"]
「enabled」行の値を「true」に変更して、ファイルビートプロスペクターを有効にします。
enabled: true
logstashサーバーに送信するシステムログファイルを指定します。この例では、sshログファイル「auth.log」とsyslogファイルを追加します。
paths:
- /var/log/auth.log
- /var/log/syslog
保存して終了します。
最後に、logstash証明書ファイル(logstash-forwarder.crt)を/etc/filebeat
にコピーします。 ディレクトリ。
cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt
次に、filebeatを起動して有効にします。
systemctl start filebeat
systemctl enable filebeat
filebeat runのステータスを確認するには:
systemctl status filebeat
出力
7。 Elasticsearchスタックのテスト
Elasticスタックをテストするには、ブラウザを開いてサーバーのIPを参照し、続いてkibanaがリッスンするポート5601を参照します。
ip-address:5601
ユーザー名とパスワードを入力すると、次の画面が表示されます。
[検出]タブをクリックし、[ファイルビート]をクリックします。次のインターフェースが表示され、視覚化されたデータのライブストリーミングが可能になります。
おめでとう!これで、Ubuntu18.04システムにElasticStackとElasticBeatの「Filebeat」が正常にインストールおよび構成されました。