GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu 14.04にFilebeat、Logstash、ElasticSearch、Kibanaをインストールする

準備

#Ref:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html
Ubuntu14.04にJava8を最初にインストールする

#参照:https://www.liquidweb.com/kb/how-to-install-oracle-java-8-on-ubuntu-14-04-lts/
apt-get install python-software-properties software-properties-common
apt-add-repository ppa:webupd8team/java
apt-get update
apt-get install oracle-java8-installer
java -version

結果:
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

APTリポジトリを介してすべてのパッケージの更新を容易にします

apt-get install apt-transport-https
リポジトリ定義を/etc/apt/sources.list.d/elastic-5.x.listに保存します:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
apt-get update

FILEBEAT

filebeatのインストール

Filebeatは、定義されたログから行を読み取り、適切にフォーマットして、詰まらないパイプラインストリームを維持しながらlogstashに転送します
参照:https://github.com/elastic/beats/tree/master/filebeat
参照:https://www.elastic.co/guide/en/beats/filebeat/5.5/filebeat-getting-started.html
参照:https://www.elastic.co/products/beats/filebeat

apt-get install filebeat
mv /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.orig
touch /etc/filebeat/filebeat.yml
mcedit /etc/filebeat/filebeat.yml

(コンテンツ)
————————

filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]

————————
service filebeat restart

ログスタッシュ

logstashdebianインストールパッケージをダウンロードして設定します

#参照:https://www.elastic.co/downloads/logstash
apt-get install logstash

#結果:
.......
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash
>

Logstashの準備

mcedit /etc/logstash/startup.options
(先頭に次の行を追加)
LS_CONFIGS_DIR=/etc/logstash/conf.d/

(次に、次の行を次のように調整します)
from:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
to:
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIGS_DIR}"

ログスタッシュの開始/停止/再開
service logstash {start|stop|restart}

logstashのテスト

cd /etc/logstash/ ; /usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

次のように入力します:hello world
そして、CTRL-Dを押します

(Logstashは、タイムスタンプとIPアドレスの情報をメッセージに追加します。Logstashが実行されているシェルでCTRL-Dコマンドを発行して、Logstashを終了します。)

結果:

エラーStatusLoggerlog4j2構成ファイルが見つかりません。デフォルト設定の使用:コンソールへのエラーのみをログに記録します。
警告:通常$ LS_HOME/configまたは/etc/logstashにあるlogstash.ymlが見つかりませんでした。 –path.settingsを使用してパスを指定できます。デフォルトの使用を継続する
パス//usr/share/logstash/config/log4j2.propertiesでlog4j2構成が見つかりませんでした。コンソールにログを記録するデフォルトの設定を使用する
11:22:59.822 [[main] -pipeline-manager] INFO logstash.pipeline –パイプラインを開始する{“ id” =>” main”、“ pipeline.workers” => 2 、“ pipeline.batch.size” => 125、“ pipeline.batch.delay” => 5、“ pipeline.max_inflight” => 250}
11:22:59.847 [[main] -pipeline-manager] INFO logstash.pipeline –パイプラインメインが開始されました
stdinプラグインは現在入力を待機しています:
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
11:22: 59.946 [Api Webserver] INFO logstash.agent – Logstash APIエンドポイントを正常に開始しました{:port => 9601}
11:23:02.861 [LogStash ::Runner] WARN logstash.agent –パイプラインを停止しています{:id =>”メイン」}

エラーと警告は今のところOKです。上記の重要な主な結果行は次のとおりです。
2017-08-23T09:22:59.878Z h270746.stratoserver.net test 1
これは、入力文字列にタイムスタンプとサーバー名を追加します(テスト1)

logstashの構成
#注:このテスト構成は、filebeatから入力を取得し、ログファイルに出力します。ログファイルは、tail-fで監視できます…..
mcedit /etc/logstash/conf.d/apache2.conf
(content)
input {
beats {
port => 5044
type => "apache"
}
}
filter {
if [type] == "apache" {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
geoip {
source => "clientip"
}
}
}
output {
file {
path => "/var/log/logstash_output.log"
}
}

適切な出力をelasticsearchに送信するには、代わりに次の出力構成を使用します。
———————————-
output {
elasticsearch {
hosts => "localhost:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Filebeatの保護=>SSLを使用したLogstash

参照:https://www.elastic.co/guide/en/beats/filebeat/current/configuring-ssl-logstash.html#configuring-ssl-logstash
注:以下の手動入力は太字で示されています。

証明書ディレクトリを準備します:

mkdir -p /etc/logstash/certs/Logstash/ /etc/logstash/certs/Beats/
FileBeatのクライアント証明書を作成します:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Beats/certificate-bundle_Beats.zip
Enter instance name: Beats
Enter name for directories and files : Beats
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Beats/certificate-bundle_Beats.zip

Logstashのクライアント証明書を作成する:
/usr/share/elasticsearch/bin/x-pack/certgen

........
Let's get started...

Please enter the desired output file [/etc/elasticsearch/x-pack/certificate-bundle.zip]: /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip
Enter instance name: Logstash
Enter name for directories and files : Logstash
Enter IP Addresses for instance (comma-separated if more than one) []:
Enter DNS names for instance (comma-separated if more than one) []: localhost
Certificates written to /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip

このファイルには、すべてのインスタンスの秘密鍵と認証局が含まれているため、適切に保護する必要があります。

ファイルを解凍すると、インスタンスごとに
証明書と秘密鍵を含むディレクトリが作成されます。証明書、キー、およびCA証明書を
使用するElastic製品の構成ディレクトリにコピーし、
製品ガイドのSSL構成手順に従います。

クライアントアプリケーションの場合、CA証明書をコピーし、
この証明書を信頼するようにクライアントを構成するだけでよい場合があります。

証明書を抽出する:
unzip /etc/logstash/certs/Beats/certificate-bundle_Beats.zip -d /etc/logstash/certs/Beats/
unzip /etc/logstash/certs/Logstash/certificate-bundle_Logstash.zip -d /etc/logstash/certs/Logstash/

LogstashキーLogstash.keyをPKCS#1からPKCS#8形式に変換します:
理由:PKCS1形式を使用しているときにlogstash.logに次のエラーメッセージが表示されました:
[ERROR] [logstash.inputs.beats]無効なキーがあるか、秘密キーがないようですPKCS8形式で。 {:exception => java.lang.IllegalArgumentException:ファイルに有効な秘密鍵が含まれていません:/etc/logstash/certs/Logstash/Logstash/Logstash.key}

参照:https://github.com/spujadas/elk-docker/issues/112

コマンド:
openssl pkcs8 -in /etc/logstash/certs/Logstash/Logstash/Logstash.key -topk8 -nocrypt -out /etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8>

SSL用のビートの構成

/etc/filebeat/filebeat.ymlのコンテンツ
filebeat.prospectors:
- input_type: log
paths:
- /var/log/apache2/access.log
output.logstash:
hosts: ["localhost:5044"]
ssl.certificate_authorities: ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl.certificate: "/etc/logstash/certs/Beats/Beats/Beats.crt"
ssl.key: "/etc/logstash/certs/Beats/Beats/Beats.key"

/etc/logstash/conf.d/apache.confのコンテンツ
input {
beats {
port => 5044
ssl => true
ssl_certificate_authorities => ["/etc/logstash/certs/Logstash/ca/ca.crt"]
ssl_certificate => "/etc/logstash/certs/Logstash/Logstash/Logstash.crt"
ssl_key => "/etc/logstash/certs/Logstash/Logstash/Logstash.key.PKCS8"
ssl_verify_mode => "force_peer"
}
}

LogstashとFilebeatの両方を再起動します
service logstash restart
service filebeat restart

注: FilebeatからLogstashへのSSL接続でまだ問題があり、Filebeatはこのエラーを(/var/log/logstash/logstash-plain.log)にスローします:
TLS内部エラー。
次のURL同様の問題がいくつか見つかったようですが、時間がないため、まだ理解していません。
https://discuss.elastic.co/t/mutual-tls-filebeat-to-logstash-fails- with-remote-error-tls-internal-error / 85271/3

Logstash用Xパック

logstash用のX-Packのインストール

X-Packは、セキュリティ、アラート、モニタリング、レポート、機械学習、グラフの機能を1つのインストールしやすいパッケージにバンドルしたElasticStack拡張機能です。
X-Packは、LogstashのモニタリングUIも提供します。

/ usr / share / logstash / bin / logstash-plugin install x-pack

結果:

ファイルのダウンロード:https://artifacts.elastic.co/downloads/logstash-plugins/x-pack/x-pack-5.5.2.zip
ダウンロード[=============================================================] 100%
インストールファイル:/tmp/studtmp-bc1c884de6d90f1aaa462364e5895b6b08b050f0b64587b4f5e0a8ec5300 /x-pack-5.5.2.zip
インストールに成功しました

LogstashでのX-Packの構成:

インストール中に作成されたデフォルト設定は、ほとんどの場合に最適に機能します。詳細については、次を参照してください:
https://www.elastic.co/guide/en/logstash/5.5/settings-xpack.html

logstash.logでモニタリングエラーメッセージが生成されないようにするには、/ etc / logstash / logstash.ymlを編集し、最後に次の行を追加します。
(参照:https://discuss.elastic.co/t/logstash- breaks-when-disabling-certain-x-pack-features / 89511)

xpack.monitoring.enabled: false

ElasticSearch

インストール:
apt-get install elasticsearch

Elastic searchの開始/停止/再開:
/etc/init.d/elasticsearch {start|stop|restart}

Elasticsearchが開始されているかどうかを確認するには:
ps aux | grep $(cat /var/run/elasticsearch/elasticsearch.pid)

結果の例(切り捨て):
elastic+ 10978 3.2 55.2 4622152 2319168 pts/3 Sl 15:44 0:10 /usr/lib/jvm/java-8-oracle/bin/java ........

Elasticsearchログファイルを確認します:
tail -f /var/log/elasticsearch/elasticsearch.log

注1:
次の行が表示された場合:
[WARN] [o.e.b.BootstrapChecks][wJdCtOd]最大仮想メモリ領域vm.max_map_count[65530]が低すぎる場合は、少なくとも[262144]
に増やしてください。次のコマンドの結果は空です

grep vm.max_map_count /etc/sysctl.conf

解決策:
次のように、最大​​仮想メモリ領域vm.max_map_countを262144に上げます。
ファイル/etc/sysctl.confに次の行を追加します

vm.max_map_count=262144

そして、次のコマンドを実行します:
sysctl -w vm.max_map_count=262144
または
echo 262144 > /proc/sys/vm/max_map_count

また、elasticsearch構成ファイル( /etc/elasticsearch/jvm.options )を確認してください )には次のエントリがあります:
-Xms2g
-Xmx2g

重要:
次のコマンドが失敗する場合は、一部の仮想サーバーがカーネルでそのような変更を許可していないことが原因である可能性があります。
例:
sysctl -w vm.max_map_count=262144>
sysctl:キー「vm.max_map_count」でアクセスが拒否されました
echo 262144 > /proc/sys/vm/max_map_count
-bash:/ proc / sys / vm / max_map_count:アクセスが拒否されました

Elastic Searchはとにかく実行できるはずですが、パフォーマンスが制限されている可能性があり、これらの制限のために他の問題が発生する可能性があります。
StratoVMサーバーのこれに対する既知の解決策はありません。

注2:
次の行が表示された場合:
[警告][i.n.u.i.MacAddressUtil]ネットワークインターフェイスから使用可能なハードウェアアドレスを見つけることができませんでした。ランダムバイトの使用:……..

解決策:
心配する必要はありません。このインストールでは、MACアドレスの精度はそれほど重要ではありません。

注3:
次の行が表示された場合:
[WARN][o.e.b.BootstrapChecks][wJdCtOd]システムコールフィルターのインストールに失敗しました。ログを確認して構成を修正するか、自己責任でシステムコールフィルターを無効にしてください
この問題が発生した場合、elasticsearchは開始されますが、適切に初期化されず、おそらく適切に機能しません。

解決策:
elasticsearchに保護された環境でのみアクセスする場合は、ファイル/etc/elasticsearch/elasticsearch.ymlを編集し、次の行を追加して、このシステムコールフィルターのインストールを無効にしても問題ありません。
bootstrap.system_call_filter: false
elasticsearchを再起動します:
service elasticsearch restart

————————————————————————

elasticsearch用のX-Pack

X-Packは、セキュリティ、アラート、モニタリング、レポート、機械学習、グラフの機能を1つのインストールしやすいパッケージにバンドルしたElasticStack拡張機能です。

インストール:
/usr/share/elasticsearch/bin/elasticsearch-plugin install x-pack

結果:
-> Downloading x-pack from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.io.FilePermission \\.\pipe\* read,write
* java.lang.RuntimePermission accessClassInPackage.com.sun.activation.registries
* java.lang.RuntimePermission getClassLoader
* java.lang.RuntimePermission setContextClassLoader
* java.lang.RuntimePermission setFactory
* java.security.SecurityPermission createPolicy.JavaPolicy
* java.security.SecurityPermission getPolicy
* java.security.SecurityPermission putProviderProperty.BC
* java.security.SecurityPermission setPolicy
* java.util.PropertyPermission * read,write
* java.util.PropertyPermission sun.nio.ch.bugLevel write
* javax.net.ssl.SSLPermission setHostnameVerifier
See http://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.

Continue with installation? [y/N]y
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin forks a native controller @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
This plugin launches a native controller that is not subject to the Java
security manager nor to system call filters.

Continue with installation? [y/N]y
-> Installed x-pack

KIBANA

kibanaパッケージをインストールする
apt install kibana
logstash用のX-Packのインストール
X-Packは、セキュリティ、アラート、モニタリング、レポート、機械学習、グラフの機能を1つのインストールしやすいパッケージにバンドルしたElasticStack拡張機能です。
/usr/share/kibana/bin/kibana-plugin install x-pack
組み込みユーザーのパスワードを変更する
参照:https://www.elastic.co/guide/en/x-pack/5.5/setting-up-authentication.html#reset-built-in-ユーザーパスワード
パスワードの変更

curl -XPUT 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "elasticpassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "kibanapassword"
}
'

curl -XPUT 'localhost:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "logstashpassword"
}
'

Kibanaサーバーを新しいパスワード/etc/kibana/kibana.ymlで更新します
elasticsearch.password: kibanapassword
Logstash構成を新しいパスワード/etc/logstash/logstash.ymlで更新します
xpack.monitoring.elasticsearch.password: logstashpassword
デフォルトのパスワード機能を無効にする/etc/elasticsearch/elasticsearch.yml
xpack.security.authc.accept_default_password: false

kibanaの開始/停止/再開
service kibana {start|stop|restart}


Ubuntu
  1. Ubuntu14.04へのELKスタックのインストール

  2. CentOS 7 / RHEL 7にElasticsearch、Logstash、Kibana4をインストールする方法

  3. Elasticsearch、Logstash、Kibana4をUbuntu14.04/15.04にインストールする方法

  1. Ubuntu20.04へのPhpとNginxのインストールとセットアップ

  2. Ubuntu20.04にElasticsearchをインストールして設定する方法

  3. UbuntuでIbus-typing-boosterをビルドしてインストールしますか?

  1. Ubuntu18.04および19.10をインストールした後に行うこと

  2. Ubuntu 18.04 / 20.04にELKスタック(Elasticsearch、Logstash、Kibana)をインストールする方法

  3. Ubuntu 20.04にElasticsearch、Logstash、Kibanaをインストールします