概要
#環境及びヴァージョン
CentOS 8
ElasticSearch 7.5.2
kibana 7.5.2
Logstash 7.5.2
ElastiFlow 3.4.0
インストール済グループ
インストール済グループは以下の通りです。
# yum grouplist
CentOS-8 - AppStream 6.8 kB/s | 4.3 kB 00:00
CentOS-8 - Base 5.4 kB/s | 3.8 kB 00:00
CentOS-8 - Extras 4.3 kB/s | 1.5 kB 00:00
利用可能な環境グループ:
サーバー (GUI 使用)
最小限のインストール
ワークステーション
仮想化ホスト
カスタムオペレーティングシステム
インストール済みの環境グループ:
サーバー
インストール済みのグループ:
コンテナー管理
ヘッドレス管理
利用可能なグループ:
.NET Core 開発
RPM 開発ツール
開発ツール
グラフィカル管理ツール
レガシーな UNIX 互換性
ネットワークサーバー
科学的サポート
セキュリティーツール
スマートカードサポート
システムツール
yum updateの実行
yum updateおよびyum clean allを実行します。
# yum update
メタデータの期限切れの最終確認: 0:44:37 時間前の 2020年02月04日 13時35分33秒 に実施しました。
依存関係が解決しました。
(中略)
完了しました!
# yum clean all
22 ファイルが削除されました
OSヴァージョン
yum update後のOSヴァージョンは以下の通りです。
# cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
selinux
selinuxをpermissiveに設定します。
※恒久設定とするためには再起動が必要です。
# vi /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
#SELINUX=enforcing # ← コメントアウト
SELINUX=permissive # ← 追記
# SELINUXTYPE= can take one of these three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
# shutdown -r now
(再起動)
# getenforce
Permissive
ファイアウォールへのポリシー追加
firewall-cmdで必要となるポートを開放します
ElasticSearchの為の設定
# firewall-cmd --add-port=9200/tcp --zone=public
# firewall-cmd --add-port=9200/tcp --zone=public --permanent
Kibanaの為の設定
# firewall-cmd --add-port=5601/tcp --zone=public
# firewall-cmd --add-port=5601/tcp --zone=public --permanent
Logstashの為の設定
# firewall-cmd --add-port=2055/tcp --zone=public
# firewall-cmd --add-port=2055/tcp --zone=public --permanent
OpenJDKのインストール
OpenJDKをインストールします。
# yum install java-1.8.0-openjdk-devel
インストール:
java-1.8.0-openjdk-devel x86_64 1:1.8.0.232.b09-2.el8_1 AppStream 9.8 M
依存関係のインストール:
(中略)
java-1.8.0-openjdk x86_64 1:1.8.0.232.b09-2.el8_1 AppStream 317 k
java-1.8.0-openjdk-headless x86_64 1:1.8.0.232.b09-2.el8_1 AppStream 33 M
(以降略)
これでよろしいですか? [y/N]: y
(中略)
完了しました!
GPG KEYのインポート
本家マニュアルを参考にGPG KEYをインストールします。
# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
各種リポジトリファイルの作成
本家マニュアルを参考にElasticSearch、Kibana、Logstashのリポジトリファイルを作成し、インストールを行います。
[elasticsearch]
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=0
autorefresh=1
type=rpm-md
[kibana-7.x]
name=Kibana 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
[logstash-7.x]
name=Elastic 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
yum install --enablerepo=elasticsearch elasticsearch
yum install --enablerepo=kibana kibana
yum install --enablerepo=logstash logstash
各種設定変更
ElasticSearchはクラスタの設定を変更しないと起動しないため
/etc/elasticsearch/elasticsearch.yml を以下のように修正します。
# --------------------------------- Discovery ----------------------------------
(中略)
#discovery.seed_hosts: ["host1", "host2"]
discovery.type: single-node # ← 追記
Kibanaの設定より待ち受けIPアドレスを変更します。
また7からデフォルトで日本語化可能の為設定を変更しておきます。
#server.host: "localhost"
server.host: "0.0.0.0" # ← 追記
#i18n.locale: "en"
i18n.locale: "ja-JP" # ← 追記
サービス登録、自動起動及び起動の設定
ElasticSearch、Kibana、Logstashのサービスの登録、自動起動及び起動設定を行います。
# systemctl daemon-reload
# systemctl enable elasticsearch.service
# systemctl start elasticsearch.service
# systemctl status elasticsearch.service
# systemctl daemon-reload
# systemctl enable kibana.service
# systemctl start kibana.service
# systemctl status kibana.service
# systemctl daemon-reload
# systemctl enable logstash.service
# systemctl start logstash.service
# systemctl status logstash.service
systemctl status サービス名 を実行した際正常起動されていることを確認します。
ElastiFlowのインストール
こちらのサイトを参考にElastiFlowをインストールします。
# /usr/share/logstash/bin/logstash-plugin install logstash-codec-sflow
# /usr/share/logstash/bin/logstash-plugin update
# yum install git
# git clone https://github.com/robcowart/elastiflow.git
# cp -r ./elastiflow/logstash/elastiflow/ /etc/logstash/
# cd /etc/logstash/elastiflow/conf.d
使用しない機能を無効化します。
# mv 10_input_ipfix_ipv4.logstash.conf 10_input_ipfix_ipv4.logstash.conf.disabled
# mv 10_input_sflow_ipv4.logstash.conf 10_input_sflow_ipv4.logstash.conf.disabled
# mv 20_filter_30_ipfix.logstash.conf 20_filter_30_ipfix.logstash.conf.disabled
# mv 20_filter_40_sflow.logstash.conf 20_filter_40_sflow.logstash.conf.disabled
パラメータ設定するファイルをコピーします。
# cp -r ./elastiflow/sysctl.d/* /etc/sysctl.d/
# cp -r ./elastiflow/logstash.service.d/ /etc/systemd/system/
フローを出力する機器を登録します。
#"192.0.2.1": "cisco_nbar2" # ← コメントアウト
#"192.0.2.2": "fortinet" # ← コメントアウト
"192.168.1.1": "gateway1" # ← 追記
logstashにelastiflowの設定を記載します。
- pipeline.id: main
# path.config: "/etc/logstash/conf.d/*.conf" # ← コメントアウト
path.config: "/etc/logstash/elastiflow/conf.d/*.conf" # ← 追記
logstashを再起動します。
# systemctl daemon-reload
# systemctl restart logstash
logstashのログを確認し以下のように起動を示すログが表示されていることを確認します。
[2020-02-04T16:37:17,295][INFO ][logstash.runner ] Starting Logstash {"logstash.version"=>"7.5.2"}