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

CentOS 7 /RHEL7にELKスタックをインストールする方法

ログ分析は常にシステム管理の重要な部分ですが、特に多くのシステムを扱う場合、これは最も退屈で面倒な作業の1つです。幸い、ELKスタックによって作業が簡単になり、ELKスタックはログの検査/分析に使用されるようになりました。これは、次の3つのオープンソース製品の組み合わせです

  • ElasticSearch-情報のインデックスを作成して保存するNo-SQLデータベースです
  • Logstash –ログを収集して解析するログパイプラインツールです
  • Kibana – GUI(グラフィカルユーザーインターフェース)を提供し、データの視覚化に使用され、elasticsearch上で機能します。

ELKスタックは、beatsクライアントを使用して送信されたbeatsプロトコルを介してクライアントからログを受信します。このチュートリアルでは、Centos 7マシンにELKスタックを作成し、クライアントマシンに「FileBeat」という名前のビートクライアントもインストールします。

  • 192.168.0.180 elk-stack(CentOS 7)
  • 192.168.0.70クライアント(CentOS 7)

前提条件

ELKをインストールするマシンには、Javaバージョン8がとしてインストールされている必要があります。したがって、javaopen-jdkバージョン1.8.0_*がインストールされて実行されていることを確認し、インストールされていない場合は、以下のyumコマンドを実行してインストールします

[[メール保護]〜]#yum install java-1.8.0-openjdk

[[email protected] ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[[email protected] ~]#

ホスト名を設定し、/ etc/hostsファイルを更新します

[[email protected] ~]# hostnamectl set-hostname "elk-stack.example.com"

/ etc/hostsファイルを更新します

192.168.0.180  elk-stack.example.com elk-stack

ELKスタックのインストール手順

Elasticsearch

まず、elasticsearch用のGPGキーをインポートします。このキーは、logstashおよびkibanaとも共有されます。 Elasticsearchをインストールするには、

を実行します

[[メール保護]〜]#rpm –import https://packages.elastic.co/GPG-KEY-elasticsearch

[[メール保護]〜]#

次に、elastic-searchリポジトリのリポジトリを作成します

[[email protected] ~]# vi /etc/yum.repos.d/elasticsearch.repo

[elasticsearch]
name=Elasticsearch repository
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

リポジトリが追加されたら、yumを使用してelasticsearchをインストールします

[[email protected] ~]# yum install elasticsearch -y

これでサービスが開始され、起動時に開始するように設定されます

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl start elasticsearch
[[email protected] ~]# systemctl enable elasticsearch

OSファイアウォールで9200tcpポートを許可します。ファイアウォールが実行されている場合

[[email protected] ~]# firewall-cmd --permanent --add-port 9200/tcp

次に、elasticsearchをテストして、クエリに応答することを確認します

[[email protected] ~]# curl -X GET http://localhost:9200

上記のコマンドの出力は、次のようになります。

ログスタッシュ

ここで、logstashリポジトリを追加します

[[email protected] ~]# vi /etc/yum.repos.d/logstash.repo

[logstash]
name=Logstash
baseurl=http://packages.elasticsearch.org/logstash/2.2/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

ここでlogstashをインストールします

[[email protected] ~]# yum install logstash -y

キバナ

次に、kibanaのリポジトリを作成します

[[email protected] ~]# vi /etc/yum.repos.d/kibana.repo

[kibana-4.5]
name=Kibana repository for 4.5.x packages
baseurl=http://packages.elastic.co/kibana/4.5/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

次に、yumを使用してkibanaをインストールします。

[[email protected] ~]# yum install kibana -y

インストール後、サービスを開始し、起動時に有効にします

[[email protected] ~]# systemctl start kibana
[[email protected] ~]# systemctl enable kibana

OSファイアウォールで5601ポートを許可する

[[email protected] ~]# firewall-cmd --permanent --add-port 5601/tcp
[[email protected] ~]# firewall-cmd --reload

次に、kibanaのWebページにアクセスして、動作することを確認します。これを行うには、Webブラウザーを開き、次のURLを入力します

http:// IP-Address:5601 /

ELKスタックのインストールが完了しました。必要な構成を行います。

構成

logstashのSSL証明書

logstashのインストール後、logstashとfilebeat(クライアント)間の通信を保護するためのSSL証明書を作成します。サーバーへの接続にはIPアドレスを使用するため、IPSANのSSL証明書を作成します。

SSL証明書を作成する前に、openssl.cnfにIPを入力します。

[[email protected] ~]# vi /etc/pki/tls/openssl.cnf

[v3_ca]セクションで「subjectAltName」のパラメータを探し、サーバーIPを追加します

subjectAltName = IP: 192.168.0.180

次に、ディレクトリを/ etc / sslに変更し、365日の有効期間を持つSSL証明書を作成します。

[[email protected] ~]# cd /etc/ssl/
[[email protected] ssl]# openssl req -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout logstash-forwarder.key -out logstash_frwrd.crt
Generating a 2048 bit RSA private key
.....+++
...........+++
writing new private key to 'logstash-forwarder.key'
-----
[[email protected] ssl]#

証明書の準備ができたら、scpコマンドを使用してこれをすべてのクライアントにコピーする必要があります。

Logstashの構成

次に、「 /etc/logstash/conf.d」フォルダの下にlogstashの構成ファイルを作成します。 ‘。このファイルは、入力、フィルター、出力の3つのセクションに分割されます

[[email protected] ~]# vi /etc/logstash/conf.d/logstash.conf

# input section
input {
 beats {
   port => 5044
   ssl => true
   ssl_certificate => "/etc/ssl/logstash_frwrd.crt"
   ssl_key => "/etc/ssl/logstash-forwarder.key"
   congestion_threshold => "40"
  }
}

このセクションでは、logstashがポート5044で着信ログをリッスンし、安全な接続のためのSSL証明書の詳細も提供します。

次のセクション、つまり「フィルターセクション」は、ログをelasticsearchに送信する前に解析します

# Filter section
filter {
if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGLINE}" }
    }
    date {
match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]

}
  }
}

最後のセクションは「出力セクション」であり、ログを保存する場所を定義します。

# output section
output {
 elasticsearch {
  hosts => localhost
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
       }
stdout {
    codec => rubydebug
       }
}
>

次に、ファイルを保存して終了します。これらのセクションはすべて3つの別々のファイルに分割することもできますが、構成を容易にするために1つのファイルで使用しています。ここで、logstashサービスを開始し、起動時に有効にします。

[[email protected] ~]# systemctl daemon-reload
[[email protected] ~]# systemctl start logstash
[[email protected] ~]# systemctl enable logstash

Logstashがクライアントからログを取得できるように、次のコマンドでOSファイアウォールに5044tcpポートを許可します

[[email protected] conf.d]# firewall-cmd --permanent --add-port=5044/tcp
success
[[email protected] conf.d]# firewall-cmd --reload
success
[[email protected] conf.d]#

クライアントへのFilebeatのインストール

Filebeatは、ログを分析する必要があるすべてのシステムにインストールする必要があります。まず、elk-stackサーバーからクライアントに証明書ファイルをコピーしましょう

[[email protected] ~]# scp /etc/ssl/logstash_frwrd.crt [email protected]:/etc/ssl

filebeatをインストールするには、最初にそのリポジトリを追加します

[[email protected] ~]# vi /etc/yum.repos.d/filebeat.repo
[beats]
name=Elastic Beats Repository
baseurl=https://packages.elastic.co/beats/yum/el/$basearch
enabled=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
gpgcheck=1

次に、コマンドの下で実行してfilebeatをインストールします

[[email protected] ~]# yum install filebeat

ここで、構成ファイルに変更を加えて、filebeatクライアントをELKスタックに接続しますが、その前に、logstash構成中に作成した証明書がクライアントの「/ etc/ssl」ディレクトリにコピーされていることを確認してください。それが完了したら、ファイルビートの構成を開始します。

[[メール保護]〜]#vi /etc/filebeat/filebeat.yml

次の3つのセクションに変更を加える必要があります

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

このセクションでは、分析が必要なログを許可できます。デフォルト、つまりすべてのログを残しましたが、1つまたは2つのログファイルのみを送信するように変更できます。次のセクションでは、document_typeを「syslog」に変更します。

.  .  .
      document_type: syslog
.  .  .

&最後のセクション、つまり「出力」では、SSL証明書のELKスタックサーバーのIPアドレスと場所を定義します

.   .   .
output:
  logstash:
    hosts: ["192.168.0.180:5044"]
    tls:
      certificate_authorities: ["/etc/ssl/logstash_frwrd.crt"]
.   .   .

注:elasticsearchの出力を無効にし、有効になっている場合は、エントリ「hosts:["localhost:9200"]」をコメントアウトします。

次に、サービスを開始し、起動時に有効にします。

[[email protected] ~]# systemctl restart filebeat
[[email protected] ~]# systemctl enable filebeat

これで、サーバー側とクライアント側の両方での構成が完了しました。これで、kibana Webインターフェースにログインして、分析されたログを探すことができます。

インデックスパターンを作成し、 logstash-*を変更します to filebeat-*

[作成]をクリックします

[検出]をクリックしてから検索すると、次のようなログが表示されます

これでこの記事は終わりです。貴重なフィードバックやコメントを共有してください。


Cent OS
  1. CentOS7にownCloudをインストールする方法

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

  3. CentOS7にシングルノードOpenStackをインストールする方法

  1. CentOS 7 / RHEL 7にiRedMail(メールサーバー)をインストールする方法

  2. CentOS7.xおよびRHEL7.xにKVMハイパーバイザーをインストールします

  3. CentOS 7 /RHEL7にKolab16Groupwareサーバーをインストールする方法

  1. CentOS7およびRHEL7にJenkinsをインストールして構成する方法

  2. CentOS 7 / RHEL 7 /Fedora26にVirtualBox5.1をインストールする方法

  3. CentOS 7にTripleo(Openstack on Openstack)UnderCloudをインストールする方法