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

Ubuntu18.04LTSにElasticStackをインストールする方法

Elasticsearchは、Javaで開発されたLuceneをベースにしたオープンソースの検索エンジンです。分散型およびマルチテナント型の全文検索エンジンにHTTPダッシュボードWebインターフェイス(Kibana)を提供します。データはクエリされ、取得され、JSONドキュメントスキームに保存されます。 Elasticsearchは、ログファイルを含むすべての種類のテキストドキュメントを検索するために使用できるスケーラブルな検索エンジンです。 Elasticsearchは、「ElasticStack」またはELKスタックの心臓部です。

Logstashは、イベントとログを管理するためのオープンソースツールです。データ収集のためのリアルタイムのパイプライン化を提供します。 Logstashはログデータを収集し、データをJSONドキュメントに変換して、Elasticsearchに保存します。

Kibanaは、Elasticsearch用のオープンソースのデータ視覚化ツールです。 Kibanaは、美しいダッシュボードWebインターフェイスを提供します。 Elasticsearchからのデータを管理および視覚化することができます。美しいだけでなく、パワフルです。

このチュートリアルでは、サーバーログを監視するためにUbuntu18.04サーバーにElasticStackをインストールして構成する方法を示します。次に、Ubuntu18.04およびCentOS7クライアントサーバーに「Elasticbeats」をインストールして構成する方法を説明します。

前提条件
  • 3台のサーバー
    • 「elk-master」として4GBのRAM/メモリを搭載したUbuntu18.04-10.0.15.10
    • 'elk-client01'として512MB/1GBのRAM/メモリを搭載したUbuntu18.04-10.0.15.21
    • 'elk-client02'として512MB/1GBのRAM/メモリを搭載したCentOS7.5-10.0.15.22
  • root権限

何をしますか?

  1. ElasticStackをインストールする
    1. Javaをインストールする
    2. ElasticSearchのインストールと設定
    3. Kibanaのインストールと構成
    4. KibanaのリバースプロキシとしてNginxをインストールして構成する
    5. Logstashのインストールと構成
  2. Ubuntu18.04にFilebeatをインストールして構成する
  3. CentOS7.5にFilebeatをインストールして構成する
  4. テスト
ステップ1-ElasticStackをインストールする

この最初のステップでは、「elastic Stack」を「elk-master」サーバーにインストールして構成するため、このステップのすべてのコマンドとステージを「elk-master」サーバーでのみ実行します。 Elasticsearch、Logstashシッパー、Nginxウェブサーバーを備えたKibanaダッシュボードなど、Elasticスタックの各コンポーネントをインストールして構成します。

Javaのインストール

ElasticスタックのデプロイメントにはJavaが必要です。 ElasticsearchにはJava8が必要です。OracleJDK1.8を使用することをお勧めします。これにより、PPAリポジトリからJava8をインストールします。

'software-properties-common'および'apt-transport-https'パッケージをインストールしてから、PPA'webupd8team'Javaリポジトリを追加します。以下の「aptinstall」および「add-apt-repository」コマンドを実行します。

sudo apt install software-properties-common apt-transport-https -y
sudo add-apt-repository ppa:webupd8team/java -y

次に、java8-installerをインストールします。

sudo apt install oracle-java8-installer -y

インストールが完了したら、Javaのバージョンを確認してください。

java -version

システムにインストールされているJava1.8。

次に、Java環境を構成します。以下のコマンドを使用して、Javaバイナリファイルを確認してください。

update-alternatives --config java

そして、Javaバイナリファイルは' / usr / lib / jvm / java-8-oracleにあります。 'ディレクトリ。

次に、「profile.d」ディレクトリの下にプロファイルファイル「java.sh」を作成します。

vim /etc/profile.d/java.sh

以下にJava環境構成を貼り付けます。

#Set JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-oracle"
export JAVA_HOME
PATH=$PATH:$JAVA_HOME
export PATH

保存して終了します。

ファイルを実行可能にして、構成ファイルをロードします。

chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh

次に、以下のコマンドを使用してJava環境を確認します。

echo $JAVA_HOME

そして、Javaディレクトリは' / usr / lib / jvm / java-8-oracleにあります。 'ディレクトリ。

Elasticsearchをインストール

Javaをインストールした後、Elastic Stackの最初のコンポーネントをインストールし、elasticsearchをインストールします。

エラスティックスタックキーを追加し、エラスティックリポジトリをシステムに追加します。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

次に、リポジトリを更新し、以下のコマンドを使用してelasticsearchパッケージをインストールします。

sudo apt update
sudo apt install elasticsearch -y

インストールが完了したら、「/ etc/elasticsearch」ディレクトリに移動して構成ファイル「elasticsearch.yml」を編集します。

cd /etc/elasticsearch/
vim elasticsearch.yml

「network.host」行のコメントを解除して値を「localhost」に変更し、elasticsearchポート構成の「http.port」行のコメントを解除します。

network.host: localhost
http.port: 9200

保存して終了します。

次に、elasticsearchサービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start elasticsearch
systemctl enable elasticsearch

これでelasticsearchが起動して実行されます。以下のnetstatコマンドnetstatおよびcurlコマンドを使用して確認してください。

netstat -plntu
curl -XGET 'localhost:9200/?pretty'

これで、elasticsearchバージョン「6.2.4」がデフォルトのポート「9200」で実行されます。

Elasticsearchのインストールが完了しました。

Kibanaダッシュボードのインストールと構成

2番目のコンポーネントはkibanaダッシュボードです。 ElasticリポジトリからKibanaダッシュボードをインストールし、ローカルホストアドレスで実行するようにkibanaサービスを構成します。

以下のaptコマンドを使用してKibanaダッシュボードをインストールします。

sudo apt install kibana -y

次に、「/ etc / kibana」ディレクトリに移動し、構成ファイル「kibana.yml」を編集します。

cd /etc/kibana/
vim kibana.yml

これらの行「server.port」、「server.host」、および「elasticsearch.url」のコメントを解除します。

server.port: 5601
server.host: "localhost"
elasticsearch.url: "http://localhost:9200"

保存して終了します。

次に、kibanaサービスを開始し、システムの起動時に毎回起動できるようにします。

sudo systemctl enable kibana
sudo systemctl start kibana

これで、kibanaダッシュボードが「localhost」アドレスとデフォルトポート「5601」で稼働しています。以下のnetstatコマンドを使用して確認してください。

netstat -plntu

Kibanaダッシュボードのインストールが完了しました。

NginxをKibanaのリバースプロキシとしてインストールおよび構成する

このチュートリアルでは、NginxWebサーバーをKibanaダッシュボードのリバースプロキシとして使用します。

Nginxと「apache2-utils」パッケージをシステムにインストールします。

sudo apt install nginx apache2-utils -y

インストールが完了したら、「/ etc / nginx」構成ディレクトリに移動し、「kibana」という名前の新しい仮想ホストファイルを作成します。

cd /etc/nginx/
vim sites-available/kibana

以下にNginx仮想ホスト構成を貼り付けます。

server {
    listen 80;
 
    server_name elastic-stack.io;
 
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.kibana-user;
 
    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;
    }
}

保存して終了します。

次に、Kibanaダッシュボードにアクセスするための新しい基本認証Webサーバーを作成します。以下のように、htpasswdコマンドを使用して基本認証を作成します。

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

KibanaダッシュボードのリバースプロキシとしてのNginxのインストールと構成が完了しました。

Logstashのインストールと構成

このガイドのElasticStackの最後のコンポーネントは、「Logstash」です。 Logsatashをインストールして構成し、クライアントソースからのサーバーログをfilebeatで一元化し、すべてのデータをフィルタリングして変換し(Syslog)、それをstashに転送します(Elasticsearch)。

logstashをインストールする前に、サーバーのOpenSSLバージョンを確認してください。

openssl version -a

このガイドでは、OpenSSL「1.0.2o」を使用します。 OpenSSLバージョン1.1.2をまだ使用している場合は、logstashおよびfilebeatSSL接続でエラーが発生します。

以下のaptコマンドを使用してlogstashをインストールします。

sudo apt install logstash -y

インストールが完了したら、SSL証明書キーを生成して、クライアントファイルビートからlogstashサーバーへのログデータ転送を保護します。

vimを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

以下に構成を追加します。

10.0.15.10  elk-master  elk-master

保存して終了します。

次に、logstash構成ディレクトリ'/ etc / logstash'の下に新しいSSLディレクトリを作成し、そのディレクトリに移動します。

mkdir -p /etc/logstash/ssl
cd /etc/logstash/

以下のopensslコマンドを使用して、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のSSL証明書ファイルは、「/ etc / logstash/ssl」ディレクトリに作成されています。

次に、logstashの新しい構成ファイルを作成します。 filebeatからの入力ファイルとして構成ファイル「filebeat-input.conf」を作成し、syslog処理用の「syslog-filter.conf」を作成してから、Elasticsearch出力を定義するための「output-elasticsearch.conf」ファイルを作成します。

>

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処理ログデータについては、「grok」という名前のフィルタープラグインを使用してsyslogファイルを解析しています。

新しい構成「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

以下のnetstatおよびsystemctlコマンドを使用してlogstashサービスを確認してください。

netstat -plntu
systemctl status logstash

そして、logstashサービスが稼働しています。ポート「5443」のパブリックIPアドレスで実行されています。

ElasticStackのインストールが完了しました。

ステップ2-Ubuntu18.04にFilebeatをインストールして構成する

このステップでは、ElasticBeatsデータシッパー「Filebeat」をインストールしてUbuntu18.04クライアント「elk-client01」を構成します。

filebeatをシステムにインストールする前に、「/ etc / hosts」を編集し、logstash証明書ファイル「logstash-forwarder.crt」ファイルを「elk-client01」サーバーにダウンロードする必要があります。

vimエディターを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

次の構成をそこに貼り付けます。

10.0.15.10  elk-master  elk-master

保存して終了します。

scpコマンドを使用してlogstash証明書ファイル'logstash-forwarder.crt'をコピーします。

scp [email protected]:/etc/logstash/ssl/logstash-forwarder.crt .

次に、Elastic Keyを追加してElasticBeatsの「Filebeat」をインストールし、Elasticリポジトリを追加します。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list

リポジトリを更新し、以下のaptコマンドを使用して「filebeat」パッケージをインストールします。

sudo apt update
sudo apt install filebeat -y

インストールが完了したら、「/ etc / filebeat」ディレクトリに移動し、構成ファイル「filebeat.yml」を編集します。

cd /etc/filebeat/
vim filebeat.yml

次に、「enabled」行の値を「true」に変更して、ファイルビートプロスペクターを有効にします。

  enabled: true

logstashサーバーに送信するシステムログファイルを定義します。このガイドでは、sshログファイル「auth.log」とsyslogファイルを追加します。

  paths:
    - /var/log/auth.log
    - /var/log/syslog

デフォルトの「elasticsearch」出力にコメントを付けて出力をlogstashに設定し、以下のようにlogstash出力行のコメントを解除します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

保存して終了します。

次に、「filebeat.reference.yml」ファイルを編集してfilebeatモジュールを有効にする必要があり、「syslog」モジュールを有効にします。

vim filebeat.reference.yml

以下のように、filebeatのsyslogシステムモジュールを有効にします。

- module: system
  # Syslog
  syslog:
    enabled: true

保存して終了します。

logstash証明書ファイル「logstash-forwarder.crt」を「/etc/filebeat」ディレクトリにコピーします。

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Filebeatのインストールと構成が完了しました。次に、filebeatサービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start filebeat
systemctl enable filebeat

以下のコマンドを使用して、filebeatサービスを確認してください。

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

filebeatの配送業者は、Ubuntu18.04サーバーで稼働しています。

ステップ3-CentOS7.5にFilebeatをインストールして設定する

このステップでは、ElasticBeatsデータシッパー「Filebeat」をインストールしてCentOS7.5クライアント「elk-client02」を構成します。

Filebeatをシステムにインストールする前に、「/ etc / hosts」を編集し、logstash証明書ファイル「logstash-forwarder.crt」ファイルを「elk-client02」サーバーにダウンロードする必要があります。

vimを使用して「/etc/hosts」ファイルを編集します。

vim /etc/hosts

以下に構成を貼り付けます。

10.0.15.10  elk-master  elk-master

保存して終了します。

scpコマンドを使用してlogstash証明書ファイル'logstash-forwarder.crt'をコピーします。

scp [email protected]:/etc/logstash/ssl/logstash-forwarder.crt .

次に、Elastic Keyを追加してElasticBeatsの「Filebeat」をインストールし、Elasticリポジトリを追加します。

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

cat <<EOF > /etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF

以下のyumコマンドを使用してfilebeatをインストールします。

yum install filebeat -y

インストールが完了したら、「/ etc / filebeat」ディレクトリに移動し、構成ファイル「filebeat.yml」を編集します。

cd /etc/filebeat/
vim filebeat.yml

次に、「enabled」行の値を「true」に変更して、ファイルビートプロスペクターを有効にします。

  enabled: true

logstashサーバーに送信するシステムログファイルを定義します。このガイドでは、sshログファイル「auth.log」とsyslogファイルを追加します。

  paths:
    - /var/log/secure
    - /var/log/messages

デフォルトの「elasticsearch」出力にコメントを付けて出力をlogstashに設定し、以下のようにlogstash出力行のコメントを解除します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  ssl.certificate_authorities: ["/etc/filebeat/logstash-forwarder.crt"]

保存して終了します。

次に、「filebeat.reference.yml」ファイルを編集してfilebeatモジュールを有効にする必要があり、「syslog」モジュールを有効にします。

vim filebeat.reference.yml

以下のように、filebeatのsyslogシステムモジュールを有効にします。

- module: system
  # Syslog
  syslog:
    enabled: true

保存して終了します。

logstash証明書ファイル「logstash-forwarder.crt」を「/etc/filebeat」ディレクトリにコピーします。

cp ~/logstash-forwarder.crt /etc/filebeat/logstash-forwarder.crt

Filebeatのインストールと構成が完了しました。次に、filebeatサービスを開始し、起動時間に追加します。

systemctl start filebeat
systemctl enable filebeat

以下のコマンドを使用して、filebeatサービスを確認してください。

systemctl status filebeat
tail -f /var/log/filebeat/filebeat

ファイルビートの配送業者は、CentOS7.5サーバーで稼働しています。

ステップ4-テスト

Webブラウザーを開き、エラスティックスタックのドメイン名を入力します。私の名前は「elastic-stack.io」です。

基本認証からKibanaダッシュボードへのユーザー名とパスワードの入力を求められます。

ユーザー名「elastic」とパスワードを入力します。

これで、美しいkibanaダッシュボードが表示されます。右側にある、[インデックスパターンの設定]ボタンをクリックしてください。

「filebeat-*」インデックスパターンを定義し、「次のステップ」ボタンをクリックします。

「時間フィルターフィールド名」には、「@ timestamp」を選択し、「インデックスパターンの作成」をクリックします。

そして、ファイルビートインデックスパターンが作成されました。

次に、各クライアントサーバーの「elk-client01」Ubuntuシステムと「elk-client02」CentOSシステムで失敗したSSHログインのログ情報を取得しようとします。

Kibanaダッシュボード内で、[検出]メニューをクリックして、すべてのサーバーログを取得します。

「beat.hostname」を「elk-client01」サーバーに設定します。「source」は「/var/log/auth.log」ファイルであり、次のような結果が得られます。

以下は、「auth.log」ファイルからのSSH失敗パスワードのサンプルログの詳細です。

「elk-client02」CentOSサーバーの場合、「beat.hostname」を「elk-client02」サーバーに設定します。「source」は「/ var / log / secure」ファイルであり、次のような結果が得られます。以下。

以下は、「セキュア」ファイルからのSSH失敗パスワードのサンプルログの詳細です。

ElasticStackとElasticBeatの「Filebeat」のインストールと構成が正常に完了しました。


Ubuntu
  1. Ubuntu20.04にJava17をインストールする方法

  2. Ubuntu16.04LTSにApacheHadoopをインストールする方法

  3. Ubuntu20.04にJava17LTSをインストールする方法

  1. UbuntuにJavaをインストールする方法

  2. Ubuntu18.04にJavaをインストールする方法

  3. Ubuntu18.04にJavaをインストールする方法

  1. Ubuntu18.04LTSにElasticStackをインストールする方法

  2. Ubuntu16.04にElasticStackをインストールする方法

  3. Ubuntu18.04にJava8をインストールする方法