Copyright© 2015,NTT Software Corporation. All rights reserved. 1
2015.10.27
NTTソフトウェア株式会社
クラウドセキュリティ事業部
Copyright© 2015,NTT Software Corporation. All rights reserved.
目次
• はじめに
• サーバ監視システム
– 物理マシンの監視
– 仮想マシンの監視
– 複数のZabbix画面を統合
• ログ監視システム
2
Copyright© 2015,NTT Software Corporation. All rights reserved.
はじめに
• NTT SoftwareはOpenStackのEssex版からクラウド
基盤の開発に使用している。
• 開発、試験、運用をする中で、監視やログ解析が常
に重要な課題となっていた。
• これらをOSS製品を使って効率的に解決できたので
、ご紹介します。
3
Copyright© 2015,NTT Software Corporation. All rights reserved.
OpenStackの監視に何が必要?
共通
• 作り込みは最低限
• 画面は1個にまとめたい
• 人手は極力かけない
物理側
• リソース監視
• ミドルウェア監視
• サービス監視
ログ監視
• ログ収集
• 可視化
• エラー解析の効率化
• 自動解析・通知
仮想側
• 監視の自動登録
• 監視の自動解除
• 仮想資源の監視
4
1 2
4 3
Copyright© 2015,NTT Software Corporation. All rights reserved.
OpenStackの監視に何が必要?
共通
• 作り込みは最低限
• 画面は1個にまとめたい
• 人手は極力かけない
物理側
• リソース監視
• ミドルウェア監視
• サービス監視
ログ監視
• ログ収集
• 可視化
• エラー解析の効率化
• 自動解析・通知
仮想側
• 監視の自動登録
• 監視の自動解除
• 仮想資源の監視
5
1 2
4 3
Copyright© 2015,NTT Software Corporation. All rights reserved.
キーワード
OpenStackを1アプリケーションとして考える
物理マシン監視と仮想マシン監視を一緒に考えない。
物理側の障害は物理側で検知する
仮想側の障害は仮想側で検知する
ログ監視は、EFK stack + Norikra + Zabbix
6
Copyright© 2015,NTT Software Corporation. All rights reserved.
物理と仮想をきっちりと区別する
7
物理サーバー
Middle
ware
OpenStack
VM VM
物理側
仮想側
Copyright© 2015,NTT Software Corporation. All rights reserved.
サーバー監視システム
8
Copyright© 2015,NTT Software Corporation. All rights reserved.
OpenStackの監視に何が必要?
共通
• 作り込みは最低限
• 画面は1個にまとめたい
• 人手は極力かけない
物理側
• リソース監視
• ミドルウェア監視
• サービス監視
ログ監視
• ログ収集
• 可視化
• エラー解析の効率化
• 自動解析・通知
仮想側
• 監視の自動登録
• 監視の自動解除
• 仮想資源の監視
9
1 2
4 3
Copyright© 2015,NTT Software Corporation. All rights reserved.
サーバー監視(物理側)
• 普通のアプリケーション監視で必要なものは当然必要です。
• OpenStackの監視として特に必要なもの
– ミドルウェア監視
– サービス監視
– リソース監視
10
Copyright© 2015,NTT Software Corporation. All rights reserved.
物理マシン監視(UserParameter)
ミドルウェア/サービス監視って
どうやるの?
• UserParameter機能
• スクリプトの実行結果を監視アイテムとして取得
• Sensu,Nagiosのpluginを有効活用
• OpenStack,ミドルウェア用Pluginが使える。
11
Copyright© 2015,NTT Software Corporation. All rights reserved.
物理マシン監視(UserParameter)
• Novaのサービス監視のUserParameter
– Nova hypervisor-showの結果を収集
•
(※)
引用:https://github.com/sensu-plugins/sensu-plugins-openstack
12
UserParameter=nova.hypervisor-state.running_vms,python /etc/zabbix/bin/nova-hypervisor-
metrics.py -u admin -p admin -t admin -a http://192.168.0.10:35357/v2.0 | awk -F '[. t]'
'$5=="running_vms" { x=x+$6 } END{print x}'
$ python /etc/zabbix/bin/nova-hypervisor-metrics.py -u admin -p
devstack -t admin -a http://192.168.0.5:35357/v2.0 | awk -F '[. t]'
'$5=="running_vms" { x=x+$6 } END{print x}'
1
Copyright© 2015,NTT Software Corporation. All rights reserved.
OpenStackの監視に何が必要?
共通
• 作り込みは最低限
• 画面は1個にまとめたい
• 人手は極力かけない
物理側
• リソース監視
• ミドルウェア監視
• サービス監視
ログ監視
• ログ収集
• 可視化
• エラー解析の効率化
• 自動解析・通知
仮想側
• 監視の自動登録
• 監視の自動解除
• 仮想資源の監視
13
1 2
4 3
Copyright© 2015,NTT Software Corporation. All rights reserved.
Zabbix-serverの所在
14
Project A
VM VM
Hypervisor Zabbix
Project A
Hypervisor
VM Zabbix
Project B
VM Zabbix
Pattern A Pattern B
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想マシン監視追加(自動登録)
• 監視対象のホストをzabbix-serverへ自動で登録
• zabbix-agentに設定が入っているとzabbix-serverが自動で
監視設定を反映してくれる機能
• 例)
– zabbix-agent.confのmetadata="<foo>"
– zabbixの自動登録設定
• metadataが"foo"ならテンプレート"bar"を適用とする。
15
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想マシン監視追加(自動登録)
16
WEB-server
WEB-server
WEB-server
metadata=web
DB-server
DB-server
DB-server
DB-server
DB-server
metadata=db
APP
server
APP
server
metadata=app
Zabbix
Server
IF metadata=web then template = webTemplate
IF metadata=db then template = dbTemplate
IF metadata=app then template = appTemplate
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想マシン監視解除
(ネットワークディスカバリ)
• 自動監視設定追加に使われるネットワークディスカバリ機能
を、監視設定の解除に使う。
• VMの電源オフ/削除/故障を区別しない。
• 壊れて通知があがっても直さない
→直す気がない
→監視対象から削除しても問題ない
→直ったら自動追加で再度監視対象に
17
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想マシン監視解除
(ネットワークディスカバリ)
18
Node1 Node2 Node3 Node4 Node5 zabbix
Monitoring
Network
192.168.100.0/24
Alert
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想資源故障
19
Compute
Node
Storage
Node
Nova Cinder
VM
NW 192.168.0.0/24
VM VM
VM VM VM
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想資源故障
• PingAlive
• ALL ProcessProcess
• CPU
• Memory
• Disk
Resource
• NWHW
20
Copyright© 2015,NTT Software Corporation. All rights reserved.
仮想資源故障
• PingAlive
• ALL ProcessProcess
• CPU
• Memory
• Disk
Resource
• HW
• NWSNMP
21
検知可能
Copyright© 2015,NTT Software Corporation. All rights reserved.
複数のZabbix画面を統合
22
Copyright© 2015,NTT Software Corporation. All rights reserved.
Zabix-serverの所在
23
Project A
VM VM
Hypervisor Zabbix
Project A
Hypervisor
VM Zabbix
Project B
VM Zabbix
Pattern A Pattern B
Copyright© 2015,NTT Software Corporation. All rights reserved.
タブがいっぱい
24
Tenant A Tenant B
Tenant C Tenant D
Tenant Hatohol
Hatohol
L3
Copyright© 2015,NTT Software Corporation. All rights reserved.
Hatohol
25
Zabbix
1
Zabbix
2
Copyright© 2015,NTT Software Corporation. All rights reserved.
サーバ監視のまとめ
• 物理側の障害は物理側で検知。
• 仮想側の障害は仮想側で検知。
• Middleware Service監視は
Sensu/Nagiosのpluginを有効活用
• 監視対象の追加は「自動登録」
• 監視対象の解除は「ネットワークディスカバリ」
• 複数のZabbixはHatoholでまとめる
26
Copyright© 2015,NTT Software Corporation. All rights reserved.
ログ監視
27
Copyright© 2015,NTT Software Corporation. All rights reserved.
OpenStackの監視に何が必要?
共通
• 作り込みは最低限
• 画面は1個にまとめたい
• 人手は極力かけない
物理側
• リソース監視
• ミドルウェア監視
• サービス監視
ログ監視
• ログ収集
• 可視化
• エラー解析の効率化
• 自動解析・通知
仮想側
• 監視の自動登録
• 監視の自動解除
• 仮想資源の監視
28
1 2
4 3
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ収集解析
用途 ツール名
検索エンジン Elasticsearch
ログ収集 Fluentd
ログ可視化 Kibana
ログ解析 Norikra
異常通知 Zabbix
29
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ収集解析
30
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ収集解析
• Norikraってなに?
31
Schema-less Stream Processing with SQL
Norikra is a open source server software provides "Stream
Processing" with SQL, written in JRuby, runs on JVM, licensed under
GPLv2.
引用: http://norikra.github.io/
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ収集解析
• 流れてくるログを
一定期間のみ抽出→解析→捨てる→ループ
32
画像引用元:
Esper: Event Processing for Java
http://www.espertech.com/products/esper
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZの全体構成
33
OpenStack
Fluentd
監視サーバ
Fluentd Norikra
Elastic
search
File
Zabbix
Kibana
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ収集解析
• 重要なのは、Norikraのルールをどう書くか
• 長年培ってきたノウハウをデータ化
– 構築・試験・トラブルの経験から
– ログリスト
• 各バージョンごとに整理
• 構築しても、ルールが無ければ動かない。
34
Copyright© 2015,NTT Software Corporation. All rights reserved.
EFK+NZを使ったログ解析例
• kibanaで表示しているグラフの変動を検知
– 不正な挙動を検知
• パターン化された障害を検知
– エラー解析
35
Copyright© 2015,NTT Software Corporation. All rights reserved.
例1)グラフの変動を検知
• KeystoneはDOS等を防ぐ仕組みを持っていないので、これを
検知したい。
• 実際に攻撃を受けると、Keystoneのアクセスログに401認証
失敗ログが増えていきます
• ELKのグラフを見れば確かに発見は可能ですが、
人がずーっと見ていないといけない
36
Copyright© 2015,NTT Software Corporation. All rights reserved.
例1)グラフの変動を検知
• KeystoneはDOS等を防ぐ仕組みを持っていないので、これを
検知したい。
• 実際に攻撃を受けると、Keystoneのアクセスログに401認証
失敗ログが増えていきます
• ELKのグラフを見れば確かに発見は可能ですが、人がずー
っと見ていないといけない
37
Copyright© 2015,NTT Software Corporation. All rights reserved.
例1)グラフの変動を検知
38
Norikraのルールに「単
位時間当たり同一IPアド
レスから401エラーで○
回以上アクセスが起き
たら」と書いてあげると、
Copyright© 2015,NTT Software Corporation. All rights reserved.
例1)グラフの変動を検知
39
Keystoneが
攻撃されている
Copyright© 2015,NTT Software Corporation. All rights reserved.
例2)パターン化されたエラーの検知
• パターン化されたエラーの検知
• ○○ログ+ ○○ログ = Error Type 002
• 手動で解析するときは、
– 見るログ:
nova-api.log nova-conductor.log nova-compute.log…etc
– grep を駆使
– 一定のログ解析スキルが必要
40
Copyright© 2015,NTT Software Corporation. All rights reserved.
例2)パターン化されたエラーの検知
41
• 例) メモリが多すぎる
Flavorを使ってVM起動
割り当て可能なホスト
がなくエラーになる
Copyright© 2015,NTT Software Corporation. All rights reserved.
例2)パターン化されたエラーの検知
42
何が悪かったのか不明
Copyright© 2015,NTT Software Corporation. All rights reserved.
例2)パターン化されたエラーの検知
43
どこにも失敗の
理由が書いてない
Copyright© 2015,NTT Software Corporation. All rights reserved.
例2)パターン化されたエラーの検知
44
ZabbixにError Type
002が通知される。
Copyright© 2015,NTT Software Corporation. All rights reserved.
今後の取り組み
• E版からの経験とこれからの開発によるデー
タやノウハウを活用し、
Norikraのルールを拡充する取り組みを続け
ていきます。
45
Copyright© 2015,NTT Software Corporation. All rights reserved.
告知
• ログ監視システムのデモ紹介
– 場所:NTT group ブース S14
– 日時:29(Thu) 10:30~
46
Copyright© 2015,NTT Software Corporation. All rights reserved.
ご清聴ありがとうございました。
THANK YOU FOR LISTENING.
47
Copyright© 2015,NTT Software Corporation. All rights reserved.
参考・引用資料
• Monasca
https://wiki.openstack.org/wiki/Monasca
• Monasca/Monitoring Of Monasca
https://wiki.openstack.org/wiki/Monasca/Monitoring_Of_Monasca
• Monasca/Logging
https://wiki.openstack.org/wiki/Monasca/Logging
• Zabbix Documentation 2.2
https://www.zabbix.com/documentation/2.2/
• Elastic
https://www.elastic.co/jp/
• Norikra
http://norikra.github.io/
• EsperTech
http://www.espertech.com/products/esper.php
• Treasure Data Inc
http://www.treasuredata.com/
48
Copyright© 2015,NTT Software Corporation. All rights reserved.
商標
OpenStackは、米国におけるOpenStack,LLCの登録商標です。
Zabbixはラトビア共和国にあるZabbix LLCの商標です。
Erasticsearch is a trademark of Elasticsearch BV, registered in the U.S. and in other countries.
logstash is a trademark of Elasticsearch BV, registered in the U.S. and in other countries.
Kibana is a trademark of Elasticsearch BV, registered in the U.S. and in other countries.
その他、文中に記載されている商品・サービス名、および会社名は、それぞれ各社の商標また
は登録商標です。
49

OSSで作るOpenStack監視システム

  • 1.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 1 2015.10.27 NTTソフトウェア株式会社 クラウドセキュリティ事業部
  • 2.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 目次 • はじめに • サーバ監視システム – 物理マシンの監視 – 仮想マシンの監視 – 複数のZabbix画面を統合 • ログ監視システム 2
  • 3.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. はじめに • NTT SoftwareはOpenStackのEssex版からクラウド 基盤の開発に使用している。 • 開発、試験、運用をする中で、監視やログ解析が常 に重要な課題となっていた。 • これらをOSS製品を使って効率的に解決できたので 、ご紹介します。 3
  • 4.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. OpenStackの監視に何が必要? 共通 • 作り込みは最低限 • 画面は1個にまとめたい • 人手は極力かけない 物理側 • リソース監視 • ミドルウェア監視 • サービス監視 ログ監視 • ログ収集 • 可視化 • エラー解析の効率化 • 自動解析・通知 仮想側 • 監視の自動登録 • 監視の自動解除 • 仮想資源の監視 4 1 2 4 3
  • 5.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. OpenStackの監視に何が必要? 共通 • 作り込みは最低限 • 画面は1個にまとめたい • 人手は極力かけない 物理側 • リソース監視 • ミドルウェア監視 • サービス監視 ログ監視 • ログ収集 • 可視化 • エラー解析の効率化 • 自動解析・通知 仮想側 • 監視の自動登録 • 監視の自動解除 • 仮想資源の監視 5 1 2 4 3
  • 6.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. キーワード OpenStackを1アプリケーションとして考える 物理マシン監視と仮想マシン監視を一緒に考えない。 物理側の障害は物理側で検知する 仮想側の障害は仮想側で検知する ログ監視は、EFK stack + Norikra + Zabbix 6
  • 7.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 物理と仮想をきっちりと区別する 7 物理サーバー Middle ware OpenStack VM VM 物理側 仮想側
  • 8.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. サーバー監視システム 8
  • 9.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. OpenStackの監視に何が必要? 共通 • 作り込みは最低限 • 画面は1個にまとめたい • 人手は極力かけない 物理側 • リソース監視 • ミドルウェア監視 • サービス監視 ログ監視 • ログ収集 • 可視化 • エラー解析の効率化 • 自動解析・通知 仮想側 • 監視の自動登録 • 監視の自動解除 • 仮想資源の監視 9 1 2 4 3
  • 10.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. サーバー監視(物理側) • 普通のアプリケーション監視で必要なものは当然必要です。 • OpenStackの監視として特に必要なもの – ミドルウェア監視 – サービス監視 – リソース監視 10
  • 11.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 物理マシン監視(UserParameter) ミドルウェア/サービス監視って どうやるの? • UserParameter機能 • スクリプトの実行結果を監視アイテムとして取得 • Sensu,Nagiosのpluginを有効活用 • OpenStack,ミドルウェア用Pluginが使える。 11
  • 12.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 物理マシン監視(UserParameter) • Novaのサービス監視のUserParameter – Nova hypervisor-showの結果を収集 • (※) 引用:https://github.com/sensu-plugins/sensu-plugins-openstack 12 UserParameter=nova.hypervisor-state.running_vms,python /etc/zabbix/bin/nova-hypervisor- metrics.py -u admin -p admin -t admin -a http://192.168.0.10:35357/v2.0 | awk -F '[. t]' '$5=="running_vms" { x=x+$6 } END{print x}' $ python /etc/zabbix/bin/nova-hypervisor-metrics.py -u admin -p devstack -t admin -a http://192.168.0.5:35357/v2.0 | awk -F '[. t]' '$5=="running_vms" { x=x+$6 } END{print x}' 1
  • 13.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. OpenStackの監視に何が必要? 共通 • 作り込みは最低限 • 画面は1個にまとめたい • 人手は極力かけない 物理側 • リソース監視 • ミドルウェア監視 • サービス監視 ログ監視 • ログ収集 • 可視化 • エラー解析の効率化 • 自動解析・通知 仮想側 • 監視の自動登録 • 監視の自動解除 • 仮想資源の監視 13 1 2 4 3
  • 14.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. Zabbix-serverの所在 14 Project A VM VM Hypervisor Zabbix Project A Hypervisor VM Zabbix Project B VM Zabbix Pattern A Pattern B
  • 15.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想マシン監視追加(自動登録) • 監視対象のホストをzabbix-serverへ自動で登録 • zabbix-agentに設定が入っているとzabbix-serverが自動で 監視設定を反映してくれる機能 • 例) – zabbix-agent.confのmetadata="<foo>" – zabbixの自動登録設定 • metadataが"foo"ならテンプレート"bar"を適用とする。 15
  • 16.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想マシン監視追加(自動登録) 16 WEB-server WEB-server WEB-server metadata=web DB-server DB-server DB-server DB-server DB-server metadata=db APP server APP server metadata=app Zabbix Server IF metadata=web then template = webTemplate IF metadata=db then template = dbTemplate IF metadata=app then template = appTemplate
  • 17.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想マシン監視解除 (ネットワークディスカバリ) • 自動監視設定追加に使われるネットワークディスカバリ機能 を、監視設定の解除に使う。 • VMの電源オフ/削除/故障を区別しない。 • 壊れて通知があがっても直さない →直す気がない →監視対象から削除しても問題ない →直ったら自動追加で再度監視対象に 17
  • 18.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想マシン監視解除 (ネットワークディスカバリ) 18 Node1 Node2 Node3 Node4 Node5 zabbix Monitoring Network 192.168.100.0/24 Alert
  • 19.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想資源故障 19 Compute Node Storage Node Nova Cinder VM NW 192.168.0.0/24 VM VM VM VM VM
  • 20.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想資源故障 • PingAlive • ALL ProcessProcess • CPU • Memory • Disk Resource • NWHW 20
  • 21.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 仮想資源故障 • PingAlive • ALL ProcessProcess • CPU • Memory • Disk Resource • HW • NWSNMP 21 検知可能
  • 22.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 複数のZabbix画面を統合 22
  • 23.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. Zabix-serverの所在 23 Project A VM VM Hypervisor Zabbix Project A Hypervisor VM Zabbix Project B VM Zabbix Pattern A Pattern B
  • 24.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. タブがいっぱい 24 Tenant A Tenant B Tenant C Tenant D Tenant Hatohol Hatohol L3
  • 25.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. Hatohol 25 Zabbix 1 Zabbix 2
  • 26.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. サーバ監視のまとめ • 物理側の障害は物理側で検知。 • 仮想側の障害は仮想側で検知。 • Middleware Service監視は Sensu/Nagiosのpluginを有効活用 • 監視対象の追加は「自動登録」 • 監視対象の解除は「ネットワークディスカバリ」 • 複数のZabbixはHatoholでまとめる 26
  • 27.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. ログ監視 27
  • 28.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. OpenStackの監視に何が必要? 共通 • 作り込みは最低限 • 画面は1個にまとめたい • 人手は極力かけない 物理側 • リソース監視 • ミドルウェア監視 • サービス監視 ログ監視 • ログ収集 • 可視化 • エラー解析の効率化 • 自動解析・通知 仮想側 • 監視の自動登録 • 監視の自動解除 • 仮想資源の監視 28 1 2 4 3
  • 29.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ収集解析 用途 ツール名 検索エンジン Elasticsearch ログ収集 Fluentd ログ可視化 Kibana ログ解析 Norikra 異常通知 Zabbix 29
  • 30.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ収集解析 30
  • 31.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ収集解析 • Norikraってなに? 31 Schema-less Stream Processing with SQL Norikra is a open source server software provides "Stream Processing" with SQL, written in JRuby, runs on JVM, licensed under GPLv2. 引用: http://norikra.github.io/
  • 32.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ収集解析 • 流れてくるログを 一定期間のみ抽出→解析→捨てる→ループ 32 画像引用元: Esper: Event Processing for Java http://www.espertech.com/products/esper
  • 33.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZの全体構成 33 OpenStack Fluentd 監視サーバ Fluentd Norikra Elastic search File Zabbix Kibana
  • 34.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ収集解析 • 重要なのは、Norikraのルールをどう書くか • 長年培ってきたノウハウをデータ化 – 構築・試験・トラブルの経験から – ログリスト • 各バージョンごとに整理 • 構築しても、ルールが無ければ動かない。 34
  • 35.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. EFK+NZを使ったログ解析例 • kibanaで表示しているグラフの変動を検知 – 不正な挙動を検知 • パターン化された障害を検知 – エラー解析 35
  • 36.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例1)グラフの変動を検知 • KeystoneはDOS等を防ぐ仕組みを持っていないので、これを 検知したい。 • 実際に攻撃を受けると、Keystoneのアクセスログに401認証 失敗ログが増えていきます • ELKのグラフを見れば確かに発見は可能ですが、 人がずーっと見ていないといけない 36
  • 37.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例1)グラフの変動を検知 • KeystoneはDOS等を防ぐ仕組みを持っていないので、これを 検知したい。 • 実際に攻撃を受けると、Keystoneのアクセスログに401認証 失敗ログが増えていきます • ELKのグラフを見れば確かに発見は可能ですが、人がずー っと見ていないといけない 37
  • 38.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例1)グラフの変動を検知 38 Norikraのルールに「単 位時間当たり同一IPアド レスから401エラーで○ 回以上アクセスが起き たら」と書いてあげると、
  • 39.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例1)グラフの変動を検知 39 Keystoneが 攻撃されている
  • 40.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例2)パターン化されたエラーの検知 • パターン化されたエラーの検知 • ○○ログ+ ○○ログ = Error Type 002 • 手動で解析するときは、 – 見るログ: nova-api.log nova-conductor.log nova-compute.log…etc – grep を駆使 – 一定のログ解析スキルが必要 40
  • 41.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例2)パターン化されたエラーの検知 41 • 例) メモリが多すぎる Flavorを使ってVM起動 割り当て可能なホスト がなくエラーになる
  • 42.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例2)パターン化されたエラーの検知 42 何が悪かったのか不明
  • 43.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例2)パターン化されたエラーの検知 43 どこにも失敗の 理由が書いてない
  • 44.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 例2)パターン化されたエラーの検知 44 ZabbixにError Type 002が通知される。
  • 45.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 今後の取り組み • E版からの経験とこれからの開発によるデー タやノウハウを活用し、 Norikraのルールを拡充する取り組みを続け ていきます。 45
  • 46.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 告知 • ログ監視システムのデモ紹介 – 場所:NTT group ブース S14 – 日時:29(Thu) 10:30~ 46
  • 47.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. ご清聴ありがとうございました。 THANK YOU FOR LISTENING. 47
  • 48.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 参考・引用資料 • Monasca https://wiki.openstack.org/wiki/Monasca • Monasca/Monitoring Of Monasca https://wiki.openstack.org/wiki/Monasca/Monitoring_Of_Monasca • Monasca/Logging https://wiki.openstack.org/wiki/Monasca/Logging • Zabbix Documentation 2.2 https://www.zabbix.com/documentation/2.2/ • Elastic https://www.elastic.co/jp/ • Norikra http://norikra.github.io/ • EsperTech http://www.espertech.com/products/esper.php • Treasure Data Inc http://www.treasuredata.com/ 48
  • 49.
    Copyright© 2015,NTT SoftwareCorporation. All rights reserved. 商標 OpenStackは、米国におけるOpenStack,LLCの登録商標です。 Zabbixはラトビア共和国にあるZabbix LLCの商標です。 Erasticsearch is a trademark of Elasticsearch BV, registered in the U.S. and in other countries. logstash is a trademark of Elasticsearch BV, registered in the U.S. and in other countries. Kibana is a trademark of Elasticsearch BV, registered in the U.S. and in other countries. その他、文中に記載されている商品・サービス名、および会社名は、それぞれ各社の商標また は登録商標です。 49

Editor's Notes

  • #3 本日のアジェンダです。 はじめに 物理と仮想それぞれのサーバー監視に使える小ねたを。  仮想監視でzabbixが増えると、画面も増えるので統一したい ログ監視システムについて
  • #4 弊社NTTソフトウェアではOpenStackのEssex版から研究所の裏で開発に携わっておりまして、 開発・試験・運用で監視と“特にログ監視・解析"が重要でした。 グループ内でも、OpenStackのログ監視大変だという声が出ており、 弊社ではこの課題解決するためにOSS製品を組み合わせて"安く"実現できたので ご紹介します。この課題をOSS製品の組み合わせで解消したので、ご紹介いたします。
  • #5 そもそもOpenStackの監視システムに何が必要かを出してみました。 共通の項目として、・・・ 物理側の監視には、・・・ 仮想側の監視には、・・・ ログ監視には、・・・ が必要かと思われます。
  • #6 これらをOSS製品の組み合わせで実現させたのでご紹介させていただきます。
  • #7 OpenStackを1アプリケーションとして考える 1個のアプリケーションとして考えると簡単です。  IaaSだから難しそうとか考えずに、「ただのアプリケーションだから、こういうものを見ないといけない」があるはず。  普段アプリケーション開発したら監視どうやってます?ほぼその通りで大丈夫です。 物理監視と仮想監視を一緒に考えない。  物理はあれを見て・・・仮想はあれを見て・・・あれ・・・この項目は物理側だよな・・・仮想側じゃないよな・・・?って考えると混乱します。  きっちり分けて考えましょう。 きっちり分けたら、物理側の障害は物理側で、仮想側の障害は仮想側で検知しましょう。 ログ監視はEFK stack + Norikra + zabbixです。 本日は是非これを覚えて帰ってください。
  • #8 まず、色々とお話を始める前に、物理と仮想のレイヤをきっちりと別けます。 物理側といったらここ 仮想側といったらこの部分になります。
  • #11 一般的なAPPの監視に必要なものは当然必要です。 それ以外にOpenStackだからこそ必要なものとしては、 以下のミドル サービス監視 リソース監視です OpenStackは様々なmiddlewareの集合体です。 それぞれのmiddlewareが機能しなくなると、OpenStackに悪影響を与えるためしっかりと見張りましょう。 ミドルウェアや各プロセスが正常に動いているように見えても、実はサイレント故障が起きており正常動作していないときがあります。 OpenStackとして正常に動作しているかを確認しましょう。 仮想資源が枯渇すると、上で動いているVMに影響が出ることがあります。 収容設計等を見直す機会にもなりますので見ておいたほうが良いでしょう。
  • #12 作り込みは最低限だけということで、 公開されているものを有効活用しましょう ミドルウェア・サービスともにsensu用やnagios用が監視スクリプトを公開しているのでそれを使います。 その際に使う機能としてUserParameter機能があります。
  • #13 これは、スクリプトの実行結果を監視アイテムとして取得するものです。 nova- hypervisor-showの結果から、起動しているvm数の情報を取得させています。 この仕組みを使えば、ミドルウェア・サービスともに必要な情報が取得できます。
  • #14 物理側はこれくらいです。 他は難しく考えず従来どおりの監視で大丈夫です。 続いて仮想側の監視です。  仮想マシンは作っては消え作っては消えるので、そのたびに監視設定をしていたのでは非効率です。  自動化しましょう。 仮想資源の故障をどうやって見つけるか。
  • #15 まずは前提として、監視サーバをどこに配置しますか。 方法としては 物理上のzabbix-serverで一元管理する方法と Project毎にzabbixを設置する方法があります。 うちでは、Project毎に使う人が違うことを想定してzabbix-serverを分けています。 こうすることで、各Project管理者は自分のProjectのzabbixを見れますし、zabbixの収集詰まりも抑えられます。
  • #16 監視することはできても、数十台~数百台のマシンに監視設定を適用させるのは大変ですよね。 人手でちまちまと設定反映させていくのは大変なので、自動で監視設定してもらいましょう。 zabbixの自動登録を使います。 この設定をしておくと、zabbix-agentからzabbix-serverに対して通知を飛ばします。 通知受け取ったzabbix-serverは、あらかじめ設定した条件にしたがって監視設定を反映させます。   ・metadata    zabbix-agent.confのmetadata="<foo>"    zabbixの自動登録でmetadataが"foo"ならテンプレート"bar"を適用とする。    サーバ構築の際にansible,chef,puppet等の構成管理ツールでzabbix-agentを埋め込むか、GlanceのImageにあらかじめ組み込んでおくと良いでしょう。    用途ごとにmetadataの設定を変えてあげればOK
  • #17 Zabbix-server側に、metadataが**だったら、templateは**を適用と設定しておくと、 監視対象が増えていっても、同じ監視設定が勝手に適応される。 仮想環境の監視でもこれは使える。 監視対象ノードが増えていっても設定するのは最初の1回だけ。  そのノード用のテンプレートを作って自動登録の設定をするだけ。 仮想マシンの場合、GlanceのImageにzabbix-agentと設定を事前に埋め込んでおくとベスト。
  • #18 増えるVMの監視追加は前述の自動追加を使う。 問題は、監視対象削除の方  VM一覧とzabbixの監視ホストの突合せを定期的に行って、不一致があれば対処するツールを作っている人もいるようですが、  ここでは単純に、一定時間見えなくなったら消す。という方法にします。
  • #19 マシンの電源OFFすると、zabbixへアラートがあがります。 障害起因で落ちたなら、アラートを無視しないで復旧にさせます。 自分で電源落としたもしくは削除したなら、そのアラートを無視しますね。 一定時間放置されていたら、もう使わないと判断して、監視対象から外す。 直さないってことは使わないってことですから。再度使うにしても、自動登録が動いて監視対象に再設定されます。 ネットワークディスカバリ機能で指定したセグメントでIP疎通取れるかをチェック 今まで登録されていた→消えた。となれば監視設定から外す。
  • #20 仮に故障箇所がcinderが作ったvolumeだけとします。 矢印のようにVMがCinderのvolumeをマウントしていたとします。 ある日突然CinderのVolumeがここだけ壊れました。 他のVMのマウントしているvolumeは壊れてないです。 さて、これどうやって検出します?
  • #21 監視項目がこんな風にあったとすると、
  • #24 右側の方法でzabbix-serverを配置していくと・・・
  • #25 Project毎にzabbixが増えるので気が付いたらタブが恐ろしいほど増えていることがあります そこでHatoholを使ってzabbix画面を一元化する方法をオススメします。 コレを使うと、
  • #26 Zabbix1の情報 Zabbix2の情報のように1画面で複数のzabbixの情報を取ってこれるので画面の一元化に一役買っています。
  • #29 最後にログ監視についてです。 収集 可視化 解析の効率化 自動で解析 通知をやって欲しいですね。
  • #30 ログ監視に使うものです。 検索エンジンにElasticsearch ログ収集にFluentd ログ可視化にKibana いわゆるEFK stackです ログ解析にNorikra 異常通知にZabbixを使っています。
  • #31 Kibanaで可視化できる。やったー。 で終わってませんか。 グラフで見れば違いがわかって一目瞭然とか思っていませんか。 そこで登場するのがNorikraです。
  • #32 Norikraって何?って思っている人が多いと思うので、簡単にご紹介します。 要約すると、スキーマレスでSQLストリーミング解析ができるOSS製品です。 ちなみにNorikraの名前の元は、日本の飛騨山脈(北アルプス)の乗鞍岳のようです。
  • #33  ▲Norikraの内部では、EsperTech Inc.がOSSとして公開しているEsperを利用しており、   CEP (Complex Event Processing)エンジンが組み込まれている      流れてくるログを一定期間のみ抽出→解析する→捨てる→ループ   鹿威しのイメージ  ▲SQLストリーミング解析 条件式はSQL文で書くので、   SQL強い人ならなんでもできる
  • #34 OpenStackの動いているサーバにFluentdを入れて、ログを収集します。 収集したログは監視サーバ内のFluentdへ転送し、Elasticsearch Norikra Flileへ転送します。 Elasticsearchへはログ可視化のため Norikraへはログ解析のため  解析後はzabbixへ通知します。 Fileは念のため  
  • #35 Norikraの仕組み作りはやれば誰でもできますが、使い物になるかどうかはNorikraルールがどれくらい作りこめているかに比例します。 このルールを作るためには、「ログA+ B =事象Cである」。や「このログがこれだけ出たらおかしい」や、「単体では問題ないログでも、他と組み合わせると異常が発生している。」など、 ルールを作るための大量のデータが必要になります。 ただ作るだけで即実用的かといわれるとそうではない。 如何にしてルールを作るかが重要になります。 我々はE版からの経験で、エラーログリストを持っています。 このエラーは無視できるもの、や、このエラーは絶対に無視できないなど。 これを元にしてルール作りに取り組んでいます。 各バージョン150件ほど。
  • #36 実際に具体例を使ってEFK+NZをご紹介したいと思います。 ・kibanaで表示しているグラフの変動を検知 ・パターン化された障害を検知
  • #37 Keystoneはdos攻撃を検知する方法を持っていないのでこれを検知させます。 Kibanaで見るとグラフが変動するので、 この「グラフが変動したら通知する」をやってみます
  • #38 Keystoneはdos攻撃を検知する方法を持っていないのでこれを検知させます。 Kibanaで見るとグラフが変動するので、 この「グラフが変動したら通知する」をやってみます
  • #39 Norikraのルールに「単位時間当たり同一IPアドレスから401エラーで○回以上アクセスが起きたら」と書いてあげると、 このあとkeystoneへ偽のuser名でtokenを取りに行きます。 辞書攻撃やブルートフォースアタックを受けたと想定してください。 そうするとこのNorikraのルールに一致するので、zabbixへ通知が飛びます
  • #40 Zabbixへ通知が飛んでいく。 サーバー監視もzabbixで見るので、ログ監視も同じ画面で監視できます。 運用者は主にこの画面をいていれば良いでしょう
  • #41 あるログAとあるログBが同時期に出たら、この障害パターンですと通知してくれます。 手動で解析すると、 たくさんのログファイルを見て、lessやgrepを駆使して解析していると思います。 これには一定のスキルが必要になるので、簡単なエラー事象の解析のためにハイスキルナ人を割り当てるのはナンセンスです。 これの解析通知を自動化します。
  • #42  メモリを大量に使うFlavorでVMを起動させます。
  • #43 No valid host was found. There are not enough hosts available. 利用可能なホストが見つかりませんでした。 え?何がわるかったの?
  • #44 詳細見ても、原因書いてない。 ログを見ればわかりますけど、利用者はログなんて見れないのでどうしようもない。 電話がかかってきます。 「VMが作れなかった。画面を見ても何がわるのかわからん」と。
  • #45 Nova boot error type2 Type2 は flavorのmemoryを満たすホストがなかった。とすれば解析の手間が簡略化されます。 「我々のようにopenstackのログを熟知しているもの」がこのルールを作れば、  利用者や一部スキル不足な運用者等でもログファイルを読むことなく原因がわ かります。
  • #47 ログ監視システムのデモをNTTブースで29日の○時からやります。 もしご興味あればマーケットプレイスのNTTブース(S14)までお越しください。
  • #50 ライセンス条項 Elasticsearch logstash Kibana https://www.elastic.co/legal/trademarks OpenStack http://www.openstack.org/brand/openstack-trademark-policy/ Zabbix http://www.zabbix.com/jp/policy.php