未解決
Community Manager
•
3.1K メッセージ
0
1313
IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~
投稿者 kenji_yasui
オリジナル投稿日:Mar 5, 2018 5:57:39 PM
なんだかんだでIsilonianTechも始めて4ヶ月で第6回になりましたが、今回はIsilonとElastic Stackについてご紹介します。
通 常ですと、Elastic Stackというキーワードの際は、Isilonはデータレイク基盤としてデータを貯める側になるのですが、今回はIsilonのsyslogを解析する ための基盤をELK(Elasticsearch, Logstash, Kibana)で構築してみようという内容です。
(データレイクを期待されたかたは、ごめんなさい。UDS事業本部の営業/SEでご説明に伺います。。)
Elastic Stackについては改めてご説明することは無いと思いますが、大まかな流れとしては、LogstashでIsilonのsyslogを取り込みElasticsearchに格納してKibanaで可視化します。
今回は、テストするにあたり下記の環境を用意しました。最低限、ELK用にLinuxを1台とIsilonクラスタを準備します。Isilonはシミュレータや以前の連載でご紹介したIsilonSD Edgeでも問題ございません。
Kibana、Elasticsearch、Logstashのロゴは良い感じのデザインですね(https://www.elastic.co/brand)
Isilon側の設定
Isilon側の設定としてLogstashにsyslogを飛ばす設定が必要になりますので、先ずはGUIもしくは下記コマンドでconfigに関するauditとsyslogを有効にします。
sdedge-1# isi audit settings global modify --config-auditing-enabled=true sdedge-1# isi audit settings global modify --config-syslog-enabled=true sdedge-1# isi audit settings global view Protocol Auditing Enabled: No Audited Zones: - CEE Server URIs: - Hostname: - Config Auditing Enabled: Yes Config Syslog Enabled: Yes |
次 に、syslog.confを編集していきますが、/etc配下に存在しているsyslog.confは直接編集しないでください。Isilonはクラス タ型のストレージなので、/etc/mcp/templates/syslog.confを編集することによって自動的に各ノードの/etc /syslog.confが変更されます。なお、syslog.confは事前にバックアップを取得してから編集します。
sdedge-1# cp /etc/mcp/templates/syslog.conf /etc/mcp/templates/syslog.conf.bkup sdedge-1# vi /etc/mcp/templates/syslog.conf ~~~~~~ !audit_config *.* /var/log/audit_config.log *.* @cent7.isilon.local !audit_protocol *.* /var/log/audit_protocol.log *.* @cent7.isilon.local ~~~~~~ |
次に、syslogのポート番号を変更するために/etc/servicesを編集します。なお、/etc/servicesはmcpに存在しないため各ノードで編集しますが、こちらもバックアップしてからの編集を推奨いたします。今回、ポート番号は8514としました。
sdedge-1# vi /etc/services ~~~~~~ syslog 8514/udp ~~~~~~ |
syslogdを再起動します。なお、isi_で始まるコマンドはサポート用のコマンドとなり影響範囲も大きいので、くれぐれもご利用の際はご注意ください。
sdedge-1# isi_for_array "killall -HUP syslogd" |
以上でIsilonの設定は終了です。
ELK(Elasticsearch, Logstash, Kibana)の準備
続いて用意したLinuxにElasticsearch、Logstash、Kibanaをセットアップしていきます。なお、Elasticsearch、LogstashにはJava8が必要ですので予めJavaをインストールしておく必要があります。
インストールに関しては、yumリポジトリを設定されても良いですしwgetやcurl等でダウンロードしてからインストールでも構いません。
Elasticsearchのセットアップ
私のほうでは、下記のとおりcurlを使ってelasticsearchのrpm(現時点での最新版は6.2.2でした)をダウンロードしてインストールしました。
1. Elasticsearchのインストール
[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.2.rpm" [root@cent7 ~]# rpm -i elasticsearch-6.2.2.rpm |
2. elasticsearch.ymlの編集
/etc/elasticsearch配下のelasticsearch.ymlを編集することによって、クラスタ名、ノード名、ポート番号など変更できますが、今回の構成では、elasticsearch.ymlの編集は不要です。
3. Elasticsearchの起動
[root@cent7 ~]# systemctl enable elasticsearch.service [root@cent7 ~]# systemctl start elasticsearch.service |
Logstashのセットアップ
次に、Logstashのセットアップを実施します。
1. Logstashのインストール
[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/logstash/logstash-6.2.2.rpm" [root@cent7 ~]# rpm -i logstash-6.2.2.rpm |
2. logstash.confの作成
インストールディレクトリのconf.d配下にlogstash.confを作成します。(一般的には/etc/logstash/conf.d/logstash.confです)
Logstashはデータを整形できますが動作確認がメインですので今回はinputとoutputのみでfilterは省略します。格納先はElasticsearchを設定します。
[root@cent7 ~]# vi /etc/logstash/conf.d/logstash.conf ~~~~~~ input { tcp { port => 8514 type => syslog } udp { port => 8514 type => syslog } }
output { elasticsearch{ hosts => ["cent7.isilon.local:9200"] } stdout{ codec => rubydebug } } ~~~~~~ |
3. Logstashの起動
[root@cent7 ~]# systemctl enable logstash.service [root@cent7 ~]# systemctl start logstash.service |
Kibanaのセットアップ
1. Kibanaのインストール
[root@cent7 ~]# curl -k -L -O "https://artifacts.elastic.co/downloads/kibana/kibana-6.2.2-x86_64.rpm" [root@cent7 ~]# rpm -i kibana-6.2.2-x86_64.rpm |
2. kibana.ymlの編集
[root@cent7 ~]# vi /etc/kibana/kibana.yml ~~~~~ elasticsearch.url: "http://cent7.isilon.local:9200" ~~~~~ |
3. Kibanaの起動
[root@cent7 ~]# systemctl enable kibana.service [root@cent7 ~]# systemctl start kibana.service |
Kibanaからsyslogの可視化
1. Kibanaへのアクセス
ブラウザでKibanaをインストールしたホスト名の5601ポートにアクセスします。(今回の例では、http://cent7.isilon.local:5601/)
2. インデックスパターンの作成
画面左側の「Management」タブから「Index Patterns」を選択して[Index pattern]を入力します。
[Time Filter field name]フィールドから"@timestamp"を選択して「Create index pattern」を選択します。
2. ログの確認
画面左側の「Discover」を選択しログが表示されているか確認します。
いざ、実行
無事にIsilonのsyslogが確認できたら、Isilonからのsyslogをタイムリーに拾えるかテストします。
1. Isilonからテストアラートの発行
Isilon からテストアラートを飛ばして、正常に表示されるか確認します。OneFS web administration interface(Web UI)から実行する場合は「Cluster Management」、「Events and Alerts」と辿っていき「Send Test Alert」の[Test Message:]フィールドに文字列を入力して「Send Test Alert」をクリックします。
2. Kibanaから確認
テ ストアラートが受け取れているかKibanaから確認します。IPアドレス部分はマスク(モザイク処理)しておりますが"host:"フィールドは IsilonクラスタのIPアドレス、"remote_addr:"フィールドは、テストアラートを実行したクライアントPC(Web UIにアクセスしているマシン)のIPアドレスが表示されます。また、"message"フィールドに、入力した文字列(下記の例では、"hoge 1"、"hoge 2"、"hoge hoge"と3回アラートを発行してみました。)が表示されることが確認できます。
バックナンバー
IsilonianTech 第1回 Isilonとオープンソース ~REX-Ray編~
IsilonianTech 第2回 Isilonとオープンソース ~OpenStack Manila編~
IsilonianTech 第3回 Isilonとオープンソース ~Isilon Data Insights Connector~
IsilonianTech 第4回 Software Defined Storage ~IsilonSD Edge~
IsilonianTech 第5回 Isilonとオープンソース ~Isilon-POSH~
IsilonianTech 第6回 Isilonとオープンソース ~Elastic Stack編~
IsilonianTech 第7回 Isilonとデータアナリティクス ~Cloudera編~
IsilonianTech 第8回 Elastic Cloud Storage (ECS) ~ECS Community Edition~
IsilonianTech 第9回 ISILON + ECS = UNLIMITED ~Isilon CloudPools~
IsilonianTech-第10回-Isilonとデータアナリティクス-Isilon-Ambari-Management
IsilonianTech 第11回 OneFS 8.2リリース!
IsilonianTech-第12回-データファーストを支援するソフトウェア-DataIQ
IsilonianTech-第13回-vRealize-Orchestratorプラグイン
安井 謙治
Dell EMC │Unstructured Data Solutions
UDS事業本部 SE部