Elasticsearchは、Javaで開発されたLuceneをベースにしたオープンソースの検索エンジンです。分散型およびマルチテナント型の全文検索エンジンにHTTPダッシュボードWebインターフェイス(Kibana)を提供します。データは、JSONドキュメントスキームを使用してクエリ、取得、および保存されます。 Elasticsearchは、ログファイルを含むすべての種類のテキストドキュメントを検索するために使用できるスケーラブルな検索エンジンです。 Elasticsearchは、「ElasticStack」またはELKスタックの心臓部です。
Logstashは、イベントとログを管理するためのオープンソースツールです。データ収集のためのリアルタイムのパイプライン化を提供します。 Logstashはログデータを収集し、データをJSONドキュメントに変換して、Elasticsearchに保存します。
Kibanaは、Elasticsearch用のオープンソースのデータ視覚化ツールです。 Kibanaは、美しいダッシュボードWebインターフェイスを提供します。 Elasticsearchからのデータを管理および視覚化することができます。美しいだけでなく、パワフルです。
このチュートリアルでは、CentOS8サーバーに「ElasticStack」をインストールして構成する手順を説明します。 Elasticsearch、Logstash、Kibanaをインストールしてセットアップします。次に、クライアントのUbuntuおよびCentOSシステムでBeatsの「filebeat」を設定します。
前提条件
- 4GBのRAMを搭載したCentOS864ビット-elk-master
- CentOS864ビットと1GBのRAM-client01
- Ubuntu18.0464ビットと1GBのRAM-client02
私たちが行うこと:
- CentOS8サーバーにElasticリポジトリを追加する
- Elasticsearchのインストールと設定
- Kibanaダッシュボードのインストールと構成
- KibanaのリバースプロキシとしてNginxをセットアップする
- Logstashのインストールと構成
- Filebeatのインストールと構成
- テスト
まず、ElasticsearcキーとリポジトリをCentOS8サーバーに追加します。 Elastic.coが提供するelasticsearchリポジトリを使用すると、Elasticsearch、Logstash、Kibana、BeatsなどのElastic製品をインストールできます。
次のコマンドを使用して、エラスティックキーをシステムに追加します。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
その後、「/ etc / yum.repos.d」ディレクトリに移動し、新しいリポジトリファイル「elasticsearch.repo」を作成します。
cd /etc/yum.repos.d/
vim elasticsearch.repo
以下にelasticsearchリポジトリを貼り付けます。
[elasticsearch-7.x]>
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
保存して閉じます。
次に、以下のdnfコマンドを使用して、システムで使用可能なすべてのリポジトリを確認します。
dnf repolist
そして、CentOS8サーバーに追加されたelasticsearchリポジトリを取得します。
その結果、Elasticsearch、Logstash、KibanaなどのElastic製品をインストールできます。
このステップでは、Elasticsearchをインストールして構成します。
以下のdnfコマンドを使用してElasticsearchパッケージをインストールします。
sudo dnf install elasticsearch -y
インストールが完了したら、「/ etc / elasticsearch」ディレクトリに移動し、vimエディターを使用して構成ファイル「elasticsearch.yml」を編集します。
cd /etc/elasticsearch/
vim elasticsearch.yml
次の行のコメントを解除し、各行の値を次のように変更します。
network.host: 127.0.0.1
http.port: 9200
保存して閉じます。
オプション:
JVM構成ファイル「jvm.options」を編集してelasticsearchを調整し、メモリの量に基づいてヒープサイズを設定できます。
vimエディターを使用してJVM構成「jvm.options」を編集します。
vim jvm.options
以下のように、XmsおよびXmx構成を介して最小/最大ヒープサイズを変更します。
-Xms512m
-Xmx512m
保存して閉じます。
次に、systemd manager構成をリロードし、elasticsearchサービスを起動時間に追加します。
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch
次に、elasticsearchサービスを開始します。
sudo systemctl start elasticsearch
その結果、elasticsearchは、CentOS8サーバーのデフォルトポート「9200」でローカルIPアドレス「127.0.0.1」の背後で稼働しています。
以下のcurlコマンドを使用してelasticsearchを確認できます。
curl -XGET 'http://127.0.0.1:9200/?pretty'
そして、以下はあなたが得る結果です。
Elasticsearchをインストールした後、CentOS8サーバーにKibanaダッシュボードをインストールして構成します。
以下のdnfコマンドを使用してKibanaダッシュボードをインストールします。
sudo dnf install kibana
インストールが完了したら、「/ etc / kibana」ディレクトリに移動し、構成ファイル「kibana.yml」を編集します。
cd /etc/kibana/
vim kibana.yml
コメントを外して、以下のようにいくつかの回線構成を変更します。
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://127.0.0.1:9200"
保存して閉じます。
次に、kibanaサービスをシステムブートに追加し、kibanaサービスを開始します。
sudo systemctl enable kibana
sudo systemctl start kibana
KibanaサービスはCentOS8サーバーで稼働しています。次のコマンドを使用して確認してください。
systemctl status kibana
netstat -plntu
そして、以下のような結果が得られます。
その結果、Kibanaサービスは稼働しており、デフォルトのTCPポート「5601」を実行しています。
このステップでは、Nginx Webサーバーをインストールし、Kibanaダッシュボードのリバースプロキシとして設定します。
以下のdnfコマンドを使用してNginxとhttpd-toolsをインストールします。
sudo dnf install nginx httpd-tools
インストールが完了したら、「/ etc / nginx / conf.d」ディレクトリに移動し、新しい構成ファイル「kibana.conf」を作成します。
cd /etc/nginx/conf.d/
vim kibana.conf
次の構成を貼り付けます。
server {
listen 80;
server_name elk.hakase-labs.io;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.kibana-user;
location / {
proxy_pass http://127.0.0.1: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アクセスを保護するための基本認証を作成する必要があります。 'hakase'ユーザーを独自のユーザーに変更し、以下のようにhtpasspwdコマンドを実行します。
sudo htpasswd -c /etc/nginx/.kibana-user hakase
TYPE YOUR PASSWORD
パスワードを入力し、nginx構成をテストします。
nginx -t
エラーがないことを確認してください。
次に、nginxサービスをシステムブートに追加し、nginxサービスを開始します。
systemctl enable nginx
systemctl start nginx
その結果、KibanaダッシュボードのリバースプロキシとしてのNginxのインストールと構成が完了しました。
このステップでは、ログシッパーのlogstashをインストールして構成します。 logstashをインストールし、入力ビートを設定し、「grok」と呼ばれるlogstashプラグインを使用してsyslogフィルタリングを設定してから、elasticsearchへの出力を設定します。
以下のdnfコマンドを使用してlogstashをインストールします。
sudo dnf install logstash
インストールが完了したら、「/ etc / logstash」ディレクトリに移動し、vimエディターを使用してJVM構成ファイル「jvm.options」を編集します。
cd /etc/logstash/
vim jvm.options
以下のように、XmsおよびXmx構成を介して最小/最大ヒープサイズを変更します。
-Xms512m
-Xmx512m
保存して閉じます。
次に、「/ etc / logstash / conf.d」ディレクトリに移動し、「input-beat.conf」というビート入力の構成ファイルを作成します。
cd /etc/logstash/conf.d/
vim input-beat.conf
次の構成を貼り付けます。
input {
beats {
port => 5044
}
}
保存して閉じます。
次に、「syslog-filter.conf」構成ファイルを作成します。
vim 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 output-elasticsearch.conf
次の構成を貼り付けます。
output {
elasticsearch { hosts => ["127.0.0.1:9200"]
hosts => "127.0.0.1:9200"
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
保存して閉じます。
次に、logstashサービスをシステムブートに追加し、logstashサービスを開始します。
systemctl enable logstash
systemctl start logstash
logstashサービスが稼働しています。次のコマンドを使用して確認してください。
systemctl status logstash
netstat -plntu
そして、以下のような結果が得られます。
その結果、logstashログシッパーはデフォルトのTCPポート「5044」を使用してCentOS8サーバーで稼働しています。これで基本的なElasticStackのインストールが完了し、ログをElastic(ELK Stack)サーバーに送信して監視する準備が整いました。
このステップでは、UbuntuおよびCentOSシステムでファイルビートを設定する方法を説明します。ファイルビートをインストールし、両方のサーバーからエラスティックサーバーのLogstashにログを送信するように構成します。
-CentOS8にFilebeatをインストールする
次のコマンドを使用して、elasticsearchキーをCentOS8システムに追加します。
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
次に、「/ etc / yum.repos.d」ディレクトリに移動し、vimエディターを使用して「elasticsearch.repo」ファイルを作成します。
cd /etc/yum.repos.d/
vim elasticsearch.repo
次の構成を貼り付けます。
[elasticsearch-7.x]>
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
保存して閉じます。
次に、以下のdnfコマンドを使用してfilebeatをインストールします。
sudo dnf install filebeat
filebeatのインストールが完了するのを待ちます。
-Ubuntu18.04にFilebeatをインストールします
まず、apt-transport-httpsパッケージをインストールします。
sudo apt install apt-transport-https
その後、次のコマンドを使用してelasticsearchキーとリポジトリを追加します。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
次に、すべてのリポジトリを更新し、以下のaptコマンドを使用してubuntuシステムにfilebeatをインストールします。
sudo apt update
sudo apt install filebeat
filebeatのインストールが完了するのを待ちます。
-Filebeatを構成する
'/ etc/filebeat'ディレクトリにあるfilebeat構成。 filebeatディレクトリに移動し、「filebeat.yml」構成ファイルを編集します。
cd /etc/filebeat/
vim filebeat.yml
次に、以下のようにデフォルトのelasticsearch出力を無効にします。
#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["127.0.0.1:9200"]
次に、logstash出力を有効にして、logstashホストのIPアドレスを指定します。
output.logstash:
# The Logstash hosts
hosts: ["10.5.5.25:5044"]
保存して閉じます。
次に、filebeatモジュールを有効にする必要があります。以下のfilebeatコマンドを実行して、filebeatモジュールのリストを取得します。
filebeat modules list
次のコマンドを使用して、「システム」モジュールを有効にします。
filebeat modules enable system
filebeatシステムモジュールは、構成ファイル'modules.d/system.yml'で有効になっています。
vimエディターを使用してシステムモジュール構成を編集します。
cd /etc/filebeat/
vim modules.d/system.yml
syslogファイルとssh認証ファイルのパスのコメントを解除します。
CentOSシステムの場合:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/messages"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/secure"]
Ubuntuシステムの場合:
# Syslog
syslog:
enabled: true
var.paths: ["/var/log/syslog"]
# Authorization logs
auth:
enabled: true
var.paths: ["/var/log/auth.log"]
保存して閉じます。
次に、filebeatサービスをシステムブートに追加し、サービスを開始します。
systemctl enable filebeat
systemctl start filebeat
filebeatサービスが稼働しています。次のコマンドを使用して確認できます。
systemctl status filebeat
そして、以下のような結果が表示されます。
以下は、CentOS8サーバーからの結果です。
以下はUbuntuServer18.04からのものです。
その結果、エラスティックスタックサーバーのIPアドレス「10.5.5.12」でfilebeatとlogstashサービス間の接続が確立されました。
Webブラウザーを開き、アドレスバーにElasticStackインストールドメイン名を入力します。
http://elk.hakase-labs.io/
次に、作成した基本認証アカウントを使用してKibanaダッシュボードにログインします。
そして、以下のようにKibanaダッシュボードを取得します。
次に、ファイルビートがlogstashに接続された後に自動的に作成されたelasticsearchインデックスデータに接続します。 'Elasticsearchインデックスに接続をクリックします 'リンク。
' filebeat-*を作成します 'インデックスパターンを選択し、'次のステップをクリックします 'ボタン。
フィルタ名には、「 @timestamp」を選択します 'フィルターして'インデックスパターンの作成をクリックします '。
そして、' filebeat-* 'インデックスパターンが作成されました。'検出をクリックします。 '左側のメニュー。
そして、以下のようにファイルビートクライアントからログデータを取得します。
CentOS8システムのログ。
Ubuntuシステムのログを記録します。
その結果、filebeatシステムモジュールで定義されたログデータがエラスティックスタックサーバーに送信されました。
そして、CentOS8でのElasticStackのインストールと構成は正常に完了しました。