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

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

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

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

キバナ Elasticsearchのデータ視覚化インターフェースです。 Kibanaは美しいダッシュボード(Webインターフェイス)を提供し、Elasticsearchからのすべてのデータを自分で管理および視覚化することができます。美しいだけでなく、パワフルです。

このチュートリアルでは、サーバーログを監視するために単一のUbuntu16.04サーバーにElasticStackをインストールして構成する方法と、Ubuntu16.04およびCentOS7オペレーティングシステムを搭載したクライアントPCに「Elasticbeats」をインストールする方法を示します。

前提条件

  • Ubuntu 16.04 64ビットサーバー、4 GBのRAM、ホスト名-elk-master
  • Ubuntu 16.04 64ビットクライアント、1 GBのRAM、ホスト名-elk-client1
  • 1GBのRAMを搭載したCentOS764ビットクライアント、ホスト名--elk-client2
ステップ1-Javaをインストールする

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

新しいパッケージをインストールします'python-software-properties' そのため、aptコマンドを使用して新しいリポジトリを簡単に追加できます。

sudo apt-get update
sudo apt-get install -y python-software-properties software-properties-common apt-transport-https

'add-apt-repository'コマンドを使用して新しいJava8PPAリポジトリを追加してから、リポジトリを更新します。

sudo add-apt-repository ppa:webupd8team/java -y
sudo apt-get update

PPAwebpub8リポジトリからJava8をインストールします。

sudo apt-get install -y oracle-java8-installer

インストールが完了したら、Javaのバージョンを確認して、Javaがシステムに正しくインストールされていることを確認してください。

java -version

ステップ2-Elasticsearchのインストールと設定

このステップでは、Elasticsearchをインストールして構成します。 ElasticリポジトリからElasticsearchをインストールし、ローカルホストIPで実行するように構成します。

Elasticsearchをインストールする前に、Elasticリポジトリキーをサーバーに追加してください。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Elastic5.xリポジトリを「sources.list.d」ディレクトリに追加します。

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

リポジトリを更新し、以下のaptコマンドを使用してElasticsearch5.1をインストールします。

sudo apt-get update
sudo apt-get install -y elasticsearch

Elasticsearchがインストールされています。次に、構成ディレクトリに移動して、elasticsaerch.yml構成ファイルを編集します。

cd /etc/elasticsearch/
vim elasticsearch.yml

43行目のコメントを削除して、Elasticsearchのメモリロックを有効にします。これは、サーバーの過負荷を回避するために、Elasticsearchのメモリの交換を無効にするために行います。

bootstrap.memory_lock: true

'Network'ブロックで、network.host行とhttp.port行のコメントを解除します。

network.host: localhost
http.port: 9200

ファイルを保存してvimを終了します。

次に、メモリロックmlockall構成のelasticsearchサービスファイルを編集します。

vim /usr/lib/systemd/system/elasticsearch.service

LimitMEMLOCK行のコメントを外します。

LimitMEMLOCK=infinity

ファイルを保存して終了します。

/ etc/defaultディレクトリでElasticsearchのデフォルト設定を編集します。

vim /etc/default/elasticsearch

行60のコメントを解除し、値が「無制限」であることを確認します。

MAX_LOCKED_MEMORY=unlimited

保存して終了します。

Elasticsearchの設定が終了しました。 Elasticsearchはポート9200のローカルホストIPアドレスで実行され、Ubuntuサーバーでmlockallを有効にしてスワップメモリ​​を無効にしました。

Elasticsearchサービスファイルをリロードし、起動時に実行できるようにしてから、サービスを開始します。

sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch

Elasticsearchが実行されるまで1秒待ってから、サーバーで開いているポートを確認し、ポート9200の「状態」が「LISTEN」であることを確認します。

netstat -plntu

次に、メモリロックをチェックして、mlockallが有効になっていることを確認します。また、Elasticsearchが以下のコマンドで実行されていることを確認してください。

curl -XGET 'localhost:9200/_nodes?filter_path=**.mlockall&pretty'
curl -XGET 'localhost:9200/?pretty'

以下の結果が表示されます。

ステップ3-Nginxを使用してKibanaをインストールして構成する

このステップでは、NginxWebサーバーの背後にKibanaをインストールして構成します。 KibanaはローカルホストのIPアドレスのみをリッスンし、NginxはKibanaアプリケーションのリバースプロキシとして機能します。

次のaptコマンドを使用してKibanaをインストールします:

sudo apt-get install -y kibana

次に、kibana.yml構成ファイルを編集します。

vim /etc/kibana/kibana.yml

server.port、server.hos、elasticsearch.urlの行のコメントを解除します。

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

ファイルを保存してvimを終了します。

Kibanaを追加して起動時に実行し、起動します。

sudo systemctl enable kibana
sudo systemctl start kibana

Kibanaは、ノードアプリケーションとしてポート5601で実行されます。

netstat -plntu

Kibanaのインストールが完了しました。次に、Nginxをインストールし、パブリックIPアドレスからKibanaにアクセスできるようにリバースプロキシとして構成する必要があります。

次に、Nginxパッケージとapache2-utilsパッケージをインストールします。

sudo apt-get install -y nginx apache2-utils

Apache2-utilsは、Nginxでも動作するWebサーバー用のツールを含むパッケージです。Kibanaにはhtpasswd基本認証を使用します。

Nginxがインストールされました。次に、Nginxのsites-availableディレクトリに新しい仮想ホスト構成ファイルを作成する必要があります。 vimで新しいファイル「kibana」を作成します。

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

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

server {
    listen 80;

    server_name elk-stack.co;

    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;
    }
}

ファイルを保存してvimを終了します

htpasswdコマンドを使用して新しい基本認証ファイルを作成します。

sudo htpasswd -c /etc/nginx/.kibana-user admin
TYPE YOUR PASSWORD

'sites-available'のkibanaファイルから'sites-enabled'ディレクトリへのシンボリックリンクを作成して、kibana仮想ホストをアクティブ化します。

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/

nginxの構成をテストし、エラーがないことを確認してから、nginxを追加して起動時に実行し、nginxを再起動します。

nginx -t
systemctl enable nginx
systemctl restart nginx

ステップ4-Logstashのインストールと構成

このステップでは、Logsatashをインストールして構成し、クライアントソースからのサーバーログをfilebeatで一元化し、すべてのデータをフィルタリングして変換し(Syslog)、それをstashに転送します(Elasticsearch)。

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

sudo apt-get install -y logstash

vimでhostsファイルを編集します。

vim /etc/hosts

サーバーのIPアドレスとホスト名を追加します。

10.0.15.10    elk-master

ホストファイルを保存して、エディターを終了します。

次に、OpenSSLを使用して新しいSSL証明書ファイルを生成し、クライアントソースがエラスティックサーバーを識別できるようにします。

cd /etc/logstash/
openssl req -subj /CN=elk-master -x509 -days 3650 -batch -nodes -newkey rsa:4096 -keyout logstash.key -out logstash.crt
>

' / CNを変更します 'エラスティックサーバーのホスト名の値。

証明書ファイルは「/etc/logstash/」ディレクトリに作成されます。

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

>

logstash構成ディレクトリに移動し、「conf.d」ディレクトリに新しい構成ファイルを作成します。

cd /etc/logstash/
vim conf.d/filebeat-input.conf

構成を入力し、以下に構成を貼り付けます。

input {
  beats {
    port => 5443
    type => syslog
    ssl => true
    ssl_certificate => "/etc/logstash/logstash.crt"
    ssl_key => "/etc/logstash/logstash.key"
  }
}

保存して終了します。

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" ]
    }
  }
}

' grokという名前のフィルタープラグインを使用します 'syslogファイルを解析します。

保存して終了します。

出力構成ファイル'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

ステップ5-UbuntuクライアントにFilebeatをインストールして構成する

sshアカウントを使用してrootとしてサーバーに接続します。

ssh [email protected]

scpコマンドを使用して証明書ファイルをクライアントにコピーします。

scp [email protected]:/etc/logstash/logstash.crt .

ホストファイルを編集し、elk-masterIPアドレスを追加します。

vim /etc/hosts

ファイルの最後に以下の構成を追加します。

10.0.15.10    elk-master

保存して終了します。

次に、elk-client1サーバーにエラスティックキーを追加する必要があります。

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

httpsダウンロードトランスポートでエラスティックリポジトリを使用するため、パッケージ「apt-transport-https」をサーバーにインストールする必要があります。

sudo apt-get install -y apt-transport-https

Elasticリポジトリを追加し、すべてのUbuntuリポジトリを更新します。

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
sudo apt-get update

次に、aptコマンドを使用して「filebeat」をインストールします。

sudo apt-get install -y filebeat

次に、filebeat構成ディレクトリに移動し、vimを使用してファイル「filebeat.yml」を編集します。

cd /etc/filebeat/
vim filebeat.yml

パス構成の下に新しいログファイルを追加します。

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

ドキュメントタイプを「syslog」に設定します。

  document-type: syslog

行にコメントを追加して、elasticsearchの出力を無効にします。

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]
>

logstash出力を有効にし、構成のコメントを解除して、以下のように値を変更します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  bulk_max_size: 2048
  ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

保存して終了します。

証明書ファイルをfilebeatディレクトリに移動します。

mv ~/logstash.crt /etc/filebeat/

filebeatを起動し、起動時に実行するように追加します。

sudo systemctl start filebeat
sudo systemctl enable filebeat

サービスステータスを確認してください。

sudo systemctl status filebeat

ステップ6-CentOSクライアントにFilebeatをインストールして構成する

Beatsはデータシッパーであり、クライアントノードにインストールしてクライアントマシンからLogstashまたはElasticsearchサーバーに大量のデータを送信できる軽量エージェントです。使用可能なビートは4つあり、「ログファイル」には「Filebeat」、「メトリック」には「Metricbeat」、「ネットワークデータ」には「Packetbeat」、Windowsクライアント「イベントログ」には「Winlogbeat」があります。

このチュートリアルでは、「Filebeat」をインストールして構成し、安全なSSL接続を介してログデータをlogstashサーバーに送信する方法を示します。

証明書ファイルをエラスティックサーバーからclient1サーバーにコピーします。 client1サーバーにログインします。

ssh [email protected]

scpコマンドを使用して証明書ファイルをコピーします。

scp [email protected]:/etc/logstash/logstash.crt .
TYPE elk-server password

hostsファイルを編集し、elk-masterサーバーアドレスを追加します。

vim /etc/hosts

elk-masterサーバーアドレスを追加します。

10.0.15.10    elk-master

保存して終了します。

次に、エラスティックキーをelk-client2サーバーにインポートします。

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

サーバーにエラスティックリポジトリを追加します。

cd /etc/yum.repos.d/
vim elastic.repo

以下の設定を貼り付けてください。

[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
>

保存して終了します。

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

sudo yum -y install filebeat

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

cd /etc/filebeat/
vim filebeat.yml

パスセクションの21行目に、いくつかの新しいログファイルを追加します。ここに2つのファイルを追加します。sshアクティビティの場合は「/ var / log / secure」、サーバーログの場合は「/ var / log/messages」です。

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

26行目に新しい構成を追加して、ファイルタイプを「syslog」に定義します。

  document-type: syslog

デフォルトでは、filebeatはelasticsearchを出力として使用しています。このチュートリアルでは、logshtashに変更します。 83行目と85行目にコメントを追加してelasticsearchの出力を無効にします。

Elasticsearchの出力を無効にします。

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
#  hosts: ["localhost:9200"]
>

次に、新しいlogstash出力構成を追加し、logstash出力構成のコメントを解除して、すべての値を以下の構成に示されている値に変更します。

output.logstash:
  # The Logstash hosts
  hosts: ["elk-master:5443"]
  bulk_max_size: 2048
  ssl.certificate_authorities: ["/etc/filebeat/logstash.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

保存して終了します。

filebeatを追加して起動時に開始し、開始します。

sudo systemctl enable filebeat
sudo systemctl start filebeat

これで、filebeatログファイルをチェックして監視し、正しく実行されていることを確認できます。

tail -f /var/log/filebeat/filebeat

ステップ8-テスト

Webブラウザーを開き、nginx構成で構成したelasticスタックドメインにアクセスします。私の名前は「elk-stack.co」です。管理者ユーザー名とパスワードを入力し、Enterキーを押してKibanaダッシュボードにログインします。

>

新しいデフォルトのインデックスを作成します'filebeat-* 'をクリックし、'作成をクリックします '。

デフォルトのインデックスが作成されました。エラスティックスタックに複数のビートがある場合は、「スター」をクリックするだけでデフォルトのビートを構成できます。 'ボタン。

'検出に移動します 'そして、elk-client1およびelk-client2サーバーからのすべてのログファイルが表示されます。

無効なsshログインのelk-client1サーバーログからのJSON出力の例。

そして、Kibanaダッシュボードでできることはもっとたくさんあります。試してみてください!

ElasticStackはUbuntu16.04サーバーにインストールされており、filebeatはUbuntuおよびCentOSクライアントサーバーにインストールされています。


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

  2. Ubuntu 15.04/14.10にGraylog2をインストールする方法

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

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

  2. Ubuntu20.04にRをインストールする方法

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

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

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

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