ELKスタックとは何ですか?
ELKは、ElasticsearchLogstashKibanaの頭字語です。 ELKの略語の各用語は、個々のオープンソースソフトウェアを表し、これらのソフトウェアはすべて、ログ分析にまとめて使用されます。ログ分析は、コンピューターで生成されたレコードから意味を理解する科学です。ログは、ネットワークデバイス、オペレーティングシステム、アプリケーション、およびあらゆる種類のインテリジェントデバイスまたはプログラム可能なデバイスによって発行されます。時系列のメッセージのストリームは、多くの場合、ログを構成します。ログはファイルに送信されてディスクに保存されるか、ネットワークストリームとしてログコレクターに送信されます。
ELKスタック内の各ソフトウェアが実行するタスクについて簡単に説明しましょう。
Elasticsearch: ログを保存し、検索エンジンとしても機能します。
ログスタッシュ: ネットワーク内のログを識別し、ElasticSearchに送信します。
キバナ: これは、elasticsearchデータベースのデータをインタラクティブに表示するデータ視覚化ソフトウェアです。
インストール手順
ELKスタックの基本的な考え方がわかったので、各モジュールまたはソフトウェアを連続してインストールしてみましょう。ただし、その前に、JAVAをサーバーにインストールする必要があります。
JAVAのインストール
最新のJAVAパッケージをダウンロードするか、次のコマンドを使用して、JAVA8パッケージをリポジトリに追加します
sudo add-apt-repository -y ppa:webupd8team/java
次に、コマンドを使用してリポジトリを更新します
sudo apt-get update
次のコマンドを続けて使用して、JAVAを正常にインストールします
echo debconf shared/accepted-oracle-license-v1-1 select true | sudo debconf-set-selections echo debconf shared/accepted-oracle-license-v1-1 seen true | sudo debconf-set-selections sudo apt-get -y install oracle-java8-installer
パッケージが正しくインストールされているかどうかを確認するには、ターミナルに次のように入力します
java -version
パッケージが正常にインストールされると、次のようなメッセージが表示されます
java version "1.8.0_111" Java(TM) SE Runtime Environment (build 1.8.0_111-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
Elasticsearchのインストール
次のコマンドを1つずつ使用して、Elasticsearchをサーバーにダウンロードしてインストールします
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list sudo apt-get update && sudo apt-get install elasticsearch
次のコマンドを実行して、起動時にelasticsearchを開始します
sudo update-rc.d elasticsearch defaults 95 10
このコマンドは次の結果をもたらします
Adding system startup for /etc/init.d/elasticsearch ... /etc/rc0.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc1.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc6.d/K10elasticsearch -> ../init.d/elasticsearch /etc/rc2.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc3.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc4.d/S95elasticsearch -> ../init.d/elasticsearch /etc/rc5.d/S95elasticsearch -> ../init.d/elasticsearch
今度はそれを起動して、正常に機能しているかどうかを確認します。
sudo /etc/init.d/elasticsearch start curl 'http://localhost:9200'
インストールと実行が正常に行われると、次のようなテキスト結果が表示されます
root@ELKTest:~# curl 'http://localhost:9200' { "name" : "Termagaira", "cluster_name" : "elasticsearch", "cluster_uuid" : "72XGxcHjSjaaXDdtmIio0g", "version" : { "number" : "2.4.3", "build_hash" : "d38a34e7b75af4e17ead16f156feffa432b22be3", "build_timestamp" : "2016-12-07T16:28:56Z", "build_snapshot" : false, "lucene_version" : "5.5.2" }, "tagline" : "You Know, for Search" }
次に、設定ファイルを編集して、elasticsearchログへの外部アクセスを制限する必要があります。
sudo vi /etc/elasticsearch/elasticsearch.yml
次に、行network.hostを見つけ、行の前の#を削除してコメントを解除し、その行の内容を localhostに置き換えます。 または127.0.0.1 。この例では、localhost
を使用しますnetwork.host: localhost
Elasticsearchを再起動します
sudo service elasticsearch restart
Logstashのインストール
logstashのインストールは、Elasticsearchのインストールと非常によく似ており、Kibanaも同様です。次のコマンドを使用して、logstashパッケージをインポートしてインストールします。
echo "deb https://packages.elastic.co/logstash/2.3/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get install logstash
次に、以下のコマンドを実行して、起動時にlogstashを開始します。
sudo update-rc.d logstash defaults 95 10
Result: Adding system startup for /etc/init.d/logstash ... /etc/rc0.d/K10logstash -> ../init.d/logstash /etc/rc1.d/K10logstash -> ../init.d/logstash /etc/rc6.d/K10logstash -> ../init.d/logstash /etc/rc2.d/S95logstash -> ../init.d/logstash /etc/rc3.d/S95logstash -> ../init.d/logstash /etc/rc4.d/S95logstash -> ../init.d/logstash /etc/rc5.d/S95logstash -> ../init.d/logstash
最後にlogstashを起動します
sudo /etc/init.d/logstash start
Kibanaのインストール
次のコマンドを続けて使用して、kibanaをインポートしてインストールします
echo "deb http://packages.elastic.co/kibana/4.5/debian stable main" | sudo tee -a /etc/apt/sources.list sudo apt-get update && sudo apt-get install kibana
次に、
を使用して起動時に起動するようにkibanaを構成しますsudo update-rc.d kibana defaults 95 10
Result: Adding system startup for /etc/init.d/kibana ... /etc/rc0.d/K10kibana -> ../init.d/kibana /etc/rc1.d/K10kibana -> ../init.d/kibana /etc/rc6.d/K10kibana -> ../init.d/kibana /etc/rc2.d/S95kibana -> ../init.d/kibana /etc/rc3.d/S95kibana -> ../init.d/kibana /etc/rc4.d/S95kibana -> ../init.d/kibana /etc/rc5.d/S95kibana -> ../init.d/kibana
自分だけがインターフェースにアクセスできるようにkibanaファイルを構成します。
sudo vi /opt/kibana/config/kibana.yml
Kibana構成ファイルで、行server.hostを見つけ、「0.0.0.0」を「localhost」に置き換えます。次に、構成ファイルを保存して終了します。
server.host: "localhost"
ここでサービスを再起動します
sudo service kibana restart
NGINXのインストール
Kibana Webインターフェースを使用する前に、リバースプロキシをインストールする必要があります。したがって、次のコマンドを使用してNGINXをインストールします。
sudo apt-get install nginx apache2-utils
次のコマンドを実行して、kibanaWebインターフェイスのユーザー名とパスワードを設定する必要があります
sudo htpasswd -c /etc/nginx/htpasswd.users kibadmin
kibadminの代わりに任意の名前を使用できます。新しいパスワードの入力を求めるプロンプトが表示されます。 kibanaアカウントのパスワードを入力し、プロセスを完了します。
次に、以下を使用してNginxのデフォルトサーバーブロックに変更を加えます
sudo vim /etc/nginx/sites-available/default
ファイルの内容を削除し、次のコードをファイルに貼り付けてから、保存して終了します。
server { listen 80; server_name yourdomain; 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; } }
必ずyourdomainを対応するドメイン名に置き換えてください。次に、以下のコマンドを実行してWebサーバーを再起動します。
sudo service nginx restart
ELKスタックがサーバーに正常にインストールされました
SSL証明書の生成
ここをクリックしてリンクに記載されている手順に従ってSSL証明書を生成します。
キーと証明書を入手したら、それらを /etc/nginx/cert.keyに配置します および/etc/nginx/cert.pem 次に、ファイル / etc / nginx / sites-available / nsmを作成します 次の内容で:
server { listen 80 default_server; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name hostname; <-- edit this to match your hostname root html; index index.html index.htm; ssl on; ssl_certificate cert.pem; ssl_certificate_key cert.key; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:5601; include proxy_params; } }
デフォルトのNginx構成ファイルを削除し、次のコマンドを使用して新しいファイルを有効にしてから、Webサーバーを再起動します。
$ sudo rm /etc/nginx/sites-enabled/default && sudo ln -s /etc/nginx/sites-available/nsm /etc/nginx/sites-enabled/nsm $ sudo /etc/init.d/nginx restart
すべてが適切に実行されれば、コア検索インフラストラクチャが整っており、https://