GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS7にElasticStackをインストールする方法

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

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

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

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

前提条件

  • 4GBのRAMを搭載したCentOS764ビット-elk-master
  • CentOS764ビットと1GBのRAM-client1
  • Ubuntu16.0464ビットと1GBのRAM-client2
ステップ1-オペレーティングシステムを準備する

このチュートリアルでは、CentOS7サーバーでSELinuxを無効にします。 SELinux構成ファイルを編集します。

vim /etc/sysconfig/selinux

SELinuxの値を強制から無効に変更します。

SELINUX=disabled

次に、サーバーを再起動します。

reboot

サーバーに再度ログインして、SELinuxの状態を確認します。

getenforce

結果が無効になっていることを確認してください。

ステップ2-Javaをインストールする

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

wgetコマンドを使用してJava8JDKをダウンロードします。

wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u77-b02/jdk-8u77-linux-x64.rpm"

次に、このrpmコマンドを使用してインストールします;

rpm -ivh jdk-8u77-linux-x64.rpm

最後に、Java JDKのバージョンをチェックして、正しく機能していることを確認します。

java -version

サーバーのJavaバージョンが表示されます。

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

このステップでは、Elasticsearchをインストールして構成します。 Elastic.coが提供するrpmパッケージからElasticsearchをインストールし、ローカルホストで実行するように構成します(セットアップを安全にし、外部からアクセスできないようにするため)。

Elasticsearchをインストールする前に、elastic.coキーをサーバーに追加してください。

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

次に、Elasticsearch5.1をwgetでダウンロードしてインストールします。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.1.rpm
rpm -ivh elasticsearch-5.1.1.rpm

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

cd /etc/elasticsearch/
vim elasticsearch.yml

40行目のコメントを削除して、Elasticsearchのメモリロックを有効にします。これにより、Elasticsearchのメモリスワッピングが無効になります。

bootstrap.memory_lock: true

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

network.host: localhost
http.port: 9200

ファイルを保存してエディタを終了します。

次に、メモリロック構成のelasticsearch.serviceファイルを編集します。

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

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

LimitMEMLOCK=infinity

保存して終了します。

Elasticsearchのsysconfig構成ファイルを編集します。

vim /etc/sysconfig/elasticsearch

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

MAX_LOCKED_MEMORY=unlimited

保存して終了します。

Elasticsearchの設定が終了しました。 Elasticsearchはポート9200のローカルホストIPアドレスで実行されます。CentOSサーバーでmlockallを有効にすることで、メモリスワッピングを無効にしました。

systemdをリロードし、Elasticsearchが起動時に開始できるようにしてから、サービスを開始します。

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

Eelasticsearchが開始するまで少し待ってから、サーバーで開いているポートを確認し、ポート9200の「state」が「LISTEN」であることを確認します。

netstat -plntu

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

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

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

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

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

wgetを使用してKibana5.1をダウンロードし、rpmコマンドを使用してインストールします。

wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.1-x86_64.rpm
rpm -ivh kibana-5.1.1-x86_64.rpm

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

vim /etc/kibana/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は、ノードアプリケーションとしてポート5601で実行されます。

netstat -plntu

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

NginxはEpelリポジトリで利用できます。yumを使用してepel-releaseをインストールしてください。

yum -y install epel-release

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

yum -y install nginx httpd-tools

httpd-toolsパッケージには、Webサーバー用のツールが含まれています。Kibanaにはhtpasswd基本認証を使用します。

Nginx構成ファイルを編集し、'サーバー{}を削除します 'ブロックするので、新しい仮想ホスト構成を追加できます。

cd /etc/nginx/
vim nginx.conf

サーバー{}ブロックを削除します。

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

次に、conf.dディレクトリに新しい仮想ホスト構成ファイルを作成する必要があります。 vimで新しいファイル「kibana.conf」を作成します。

vim /etc/nginx/conf.d/kibana.conf

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

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

保存して終了します。

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

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

Nginx構成をテストし、エラーがないことを確認します。次に、起動時に実行するNginxを追加し、Nginxを起動します。

nginx -t
systemctl enable nginx
systemctl start nginx

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

このステップでは、Logsatashをインストールし、filebeatを使用してクライアントからのサーバーログを一元化するように構成し、Syslogデータをフィルタリングして変換し、スタッシュに移動します(Elasticsearch)。

Logstashをダウンロードし、rpmでインストールします。

wget https://artifacts.elastic.co/downloads/logstash/logstash-5.1.1.rpm
rpm -ivh logstash-5.1.1.rpm

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

tlsディレクトリに移動し、openssl.cnfファイルを編集します。

cd /etc/pki/tls
vim openssl.cnf

サーバーIDの「[v3_ca]」セクションに新しい行を追加します。

[ v3_ca ]

# Server IP Address
subjectAltName = IP: 10.0.15.10

保存して終了します。

opensslコマンドを使用して証明書ファイルを生成します。

openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/logstash-forwarder.key -out /etc/pki/tls/certs/logstash-forwarder.crt

証明書ファイルは、「/ etc / pki / tls /certs/」および「/etc/ pki / tls /private/」ディレクトリにあります。

次に、Logstashの新しい構成ファイルを作成します。新しい「filebeat-input.conf」ファイルを作成してfilebeatのログソースを構成し、次に「syslog-filter.conf」ファイルを作成してsyslog処理を行い、「output-elasticsearch.conf」ファイルを作成してElasticsearchの出力を定義します。

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

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

入力構成:以下の構成を貼り付けます。

input {
  beats {
    port => 5443
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.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

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

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

このチュートリアルでは、SSL接続を介してデータログファイルをLogstashサーバーに転送するように「Filebeat」をインストールおよび構成する方法を示します。

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

ssh [email protected]

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

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

新しいディレクトリを作成し、証明書ファイルをそのディレクトリに移動します。

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

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

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

Filebeatをダウンロードし、rpmでインストールします。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-x86_64.rpm
rpm -ivh filebeat-5.1.1-x86_64.rpm

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

cd /etc/filebeat/
vim filebeat.yml

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

  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: ["10.0.15.10:5443"]
  bulk_max_size: 1024
  ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

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

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

sudo systemctl enable filebeat
sudo systemctl start filebeat
ステップ7-UbuntuクライアントにFilebeatをインストールして構成する

sshでサーバーに接続します。

ssh [email protected]

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

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

証明書ファイル用の新しいディレクトリを作成し、ファイルをそのディレクトリに移動します。

sudo mkdir -p /etc/pki/tls/certs/
mv ~/logstash-forwarder.crt /etc/pki/tls/certs/

サーバーにエラスティックキーを追加します。

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

Filebeat .debパッケージをダウンロードし、dpkgコマンドを使用してインストールします。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.1.1-amd64.deb
dpkg -i filebeat-5.1.1-amd64.deb

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: ["10.0.15.10:5443"]
  bulk_max_size: 1024
  ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
  template.name: "filebeat"
  template.path: "filebeat.template.json"
  template.overwrite: false

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

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

sudo systemctl enable filebeat
sudo systemctl start filebeat

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

systemctl status filebeat

ステップ8-ElasticStackのテスト

ウェブブラウザを開き、Nginx構成で使用したElasticStackドメインにアクセスします。私のものは「elk-stack.co」です。パスワードを使用して管理者ユーザーとしてログインし、Enterキーを押してKibanaダッシュボードにログインします。

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

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

'検出に移動します 'メニューをクリックすると、elk-client1およびelk-client2サーバーからのすべてのログファイルが表示されます。

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

そして、Kibanaダッシュボードでできることよりもはるかに多くのことがあります。利用可能なオプションを試してみてください。

ElasticStackがCentOS7サーバーにインストールされました。 FilebeatはCentOS7とUbuntuクライアントにインストールされています。


Cent OS
  1. CentOS 7 /RHEL7にGraylog2をインストールする方法

  2. CentOS6にNtopngをインストールする方法

  3. CentOS7にELKスタックをインストールする方法

  1. CentOSにRPMパッケージをインストールする方法

  2. CentOS7にElasticsearchをインストールする方法

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

  1. CentOS8でElasticsearchを使用してGraylogをインストールする方法

  2. CentOS7にLAMPスタックをインストールする方法

  3. CentOS8にElasticStack(Elasticsearch、Logstash、Kibana)をインストールする方法