Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
【OpenStack共同検証ラボ】
OpenStack監視・ログ分析基盤の作り方
NECネッツエスアイ株式会社
畠 泰三
2
はじめに
自己紹介
畠 泰三(はた たいぞう)
-NECネッツエスアイ(NESIC)所属
技術分野:
-サーバー・仮想化・ストレージ・監視
ただいま、VTJ様でお勉強中
3
ディストリビュータさ
んサイトにも
めぼしい情報が。。
きっかけ
4
OpenStackを運用しようとした時・・・・
・どこを監視するんだろ?
・ログチェックってどうするんだろ?
に対するこれを〜して〜するとできます!
といった情報が無くて困っ...
OpenStackログ事情①
5
サービス ログファイル
Nova
(7ファイル)
/var/log/nova/nova-api-metadata.log
/var/log/nova/nova-compute.log
/var/log/nova...
OpenStackログ事情②
6
引用:http://www.slideshare.net/VirtualTech-JP/ntt-openstack-summit-2015-tokyo-after-one-year-of-openstack-c...
何をやった?
7
OpenStack共同検証ラボの取り組みとして、
監視・ログ分析ができる基盤の作り方を検証しました。
検証した内容はOSSのように公開します。
#ブラッシュアップに皆様のお力をいただけると嬉しいです。
情報が
欲しい
情報が
...
公開するもの
8
[ドキュメント]
・OpenStack監視・ログ分析基盤のセットアップ手順書
[ログ収集]
・Fluentd設定ファイル
#Black/Whiteリストも今後公開していきます。
[監視]
・Zabbix監視テンプレート
・監視...
コントローラノード
コントローラノード
運用している環境
9
OpenStackコントローラ × 3台 , コンピュート x 2台
(OpenStack-Ansible Kilo)
ログ分析 x 1台 , 監視 x 1台
コントローラ
glan...
監視・ログ分析フロー図
10
ログ分析サーバ
監視サーバ
(Agent)
(Server)
監視・ログ分析フロー(ログ)
11
ログ分析サーバ
監視サーバ
(Agent)
(Server)
ログ収集/
タグ付け/転送・
Whiteリスト定義
ログ集約・
Elasticserchへ
ログ格納
ログ
蓄積/分析
分析結果
可視化・
Bla...
監視・ログ分析フロー(監視)
12
ログ分析サーバ
(Agent)
(Server)
各項目の監視
複数のZabbix GUI
をまとめて表示
Slackに障害発生
を通知
監視サーバ
Redmineに障害発生
チケット作成
13
ログ
監視
14
サービス ログファイル
Nova
(7ファイル)
/var/log/nova/nova-api-metadata.log
/var/log/nova/nova-compute.log
/var/log/nova/nova-schedule...
ログ分析② 出力パターンの揺れ
15
ログ名 タグ付けパターン タグ付け結果
neutron-
dnsmasq.log
^(?<time>.+[0-9]{2}(:[0-
9]{2}){2})
(?<process>[^ ]+)[(?<pid>[...
について
16
Fluentdとは・・・TREASURE DATA社が開発している
ログファイルの収集・転送・集約が行えるOSS
ログに正規表現でタグを付けし意味を付与し、収集・集約ができる
<source>
type tail
path /v...
について
17
Elasticserchとは・・・elastic社が開発している
ビックデータの蓄積・解析が行えるOSS
Kibanaによって解析結果の可視化が可能
"nova": {
"properties": {
"@timestamp":...
どう集めた?
18
ログ分析サーバ
Log 1 Log 2 Log 3 ① コンポーネントのログを収集
② ログの内容を正規表現でタグ付け
③ ログサーバに転送・集約
④ Elasticserchに格納
①
②
③
④
fluentdを使って
...
なんでタグをつけるの?
19
2016-07-15 17:27 Warning nova.scheduler… Compute_service Error ・・
2016-07-15 18:00 Error nova.api… API_serv...
20
Demo
どうチェックする?
21
ログに
[ignore]タグを付加
表示したい項目をルール定義 問題無いログに[ignore]タグ付与
して保存
↓
Kibanaのルールで[ignore]タグを
除外して表示
① 過去[1日]の[Level]が[Er...
22
ログ
監視
監視① 監視項目が多い
23
コンポーネント・サービス毎に監視項目(プロセス・ポート)定義が必要。
そのため、監視項目は小規模な環境でも多い。
24
OpenStack-Ansible
プロセス名 実際に動いているプロセス名
nova-api nova-api-os-
compute
nova-api-metadata
nova-api-os-
compute
nova-api
key...
各操作の裏でAPIが叩かれる。
APIダウン時は、命令リクエストが送信できず、操作不能となるため、
スクリプトで状態監視を実施
監視③ API監視の必要性
25
nova-
API
Message
Que
Horizon
コマンド
参考:htt...
nova-boot
リクエスト
全てのコンポーネント・サービス間通信はMessageQueを介する。
キューが溜まりすぎると命令リクエストが正常に処理されず、
システム全体の動作が不安定となりやすいため、
スクリプトで監視を実施
監視④ Mes...
27
まとめ
できたこと
[共通]
• 手順/設定ファイル公開
• 基盤構築手順 確立
[ログ分析]
• 34ファイル分のfluentd設定ファイル作成
• Kibanaでログ分析開始
[監視]
• OpenStackの監視ポイント
(プロセス・ポート・AP...
今後の取り組み
• Chaosmonky等で、常に障害を発生させる。
→監視アイテムやタグ付けルールの精度向上
• ログ解析ツール(Kibana)のユースケース/ルールの検討
• fluentdとKibanaのBlack/White リスト の...
30
宣伝
OpenStack共同検証ラボ
31
現在4社でコラボ中。
OpenStack共同検証ラボとは?
32
ブロードバンドタワー(BBT)様のDCで
OpenStackやSDN/NFVの評価検証から
DevOps的運用管理などのノウハウ蓄積&公開を
行っています。
#参加費用は無料です。
〜のノウハウが
自社に少ない・・
33
〜はどう使えば
運用しやすい?
〜をやるのに他
の人と話したい
お仲間募集中です!
ご興味のある方かはお気軽にお声がけください
検証機材
が・・
〜の技術を
検証したい
34
資料
OpenStack-Ansible構築手順書
35
OpenStack-Ansible構築手順書(Kilo/Mitaka)公開中
(http://enterprisecloud.jp/installguide-openstack-ansible...
について
36
Hatoholとは・・・MIRACLE LINUX社が開発しているOSS
複数のZabbix・NagiosのGUIを1つにまとめて表示ができる
Zabbix Zabbix Zabbix
表示している
Zabbixの
画面多いな。...
Upcoming SlideShare
Loading in …5
×

【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)

5,203 views

Published on

【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方
講師:畠泰三(NECネッツエスアイ)
アジェンダ:
- はじめに
- ログ管理
- OpenStack監視
- まとめ

Published in: Technology
  • Be the first to comment

【OpenStack共同検証ラボ】OpenStack監視・ログ分析基盤の作り方 - OpenStack最新情報セミナー(2016年7月)

  1. 1. 【OpenStack共同検証ラボ】 OpenStack監視・ログ分析基盤の作り方 NECネッツエスアイ株式会社 畠 泰三
  2. 2. 2 はじめに
  3. 3. 自己紹介 畠 泰三(はた たいぞう) -NECネッツエスアイ(NESIC)所属 技術分野: -サーバー・仮想化・ストレージ・監視 ただいま、VTJ様でお勉強中 3
  4. 4. ディストリビュータさ んサイトにも めぼしい情報が。。 きっかけ 4 OpenStackを運用しようとした時・・・・ ・どこを監視するんだろ? ・ログチェックってどうするんだろ? に対するこれを〜して〜するとできます! といった情報が無くて困ったので基盤を 作ってみました。 ググっても事例 しかヒットしない 情報が欲しい
  5. 5. OpenStackログ事情① 5 サービス ログファイル Nova (7ファイル) /var/log/nova/nova-api-metadata.log /var/log/nova/nova-compute.log /var/log/nova/nova-scheduler.log /var/log/nova/nova-api-os-compute.log /var/log/nova/nova-cert.log /var/log/nova/nova-conductor.log /var/log/nova/nova-consoleauth.log Keystone (3ファイル) /var/log/keystone/keystone-apache-error.log /var/log/keystone/keystone.log /var/log/keystone/ssl_access.log Neutron (9ファイル) /var/log/neutron/neutron-dnsmasq.log /var/log/neutron/neutron-ha-tool.log /var/log/neutron/neutron-dhcp-agent.log /var/log/neutron/neutron-l3-agent.log /var/log/neutron/neutron-linuxbridge-agent.log /var/log/neutron/neutron-metadata-agent.log /var/log/neutron/neutron-metering-agent.log /var/log/neutron/neutron-ns-metadata-proxy-*.log /var/log/neutron/neutron-server.log Glance (2ファイル) /var/log/glance/glance-api.log /var/log/glance/glance-registry.log Horizon (2ファイル) /var/log/horizon/horizon-error.log /var/log/horizon/ssl_access.log サービス ログファイル Cinder (3ファイル) /var/log/cinder/cinder-volume.log /var/log/cinder/cinder-scheduler.log /var/log/cinder/cinder-api.log RabbitMQ (6ファイル) /var/log/rabbitmq/rabbit*rabbit_mq_*.log /var/log/rabbitmq/rabbit*_rabbit_mq_*sasl.log /var/log/rabbitmq/shutdown_log /var/log/rabbitmq/shutdown_err /var/log/rabbitmq/startup_log /var/log/rabbitmq/startup_err GaleraCluster (1ファイル) /var/log/mysql_logs/galera_server_error.log Memcached (1ファイル) /var/log/memcached.log 計34ファイル + syslog
  6. 6. OpenStackログ事情② 6 引用:http://www.slideshare.net/VirtualTech-JP/ntt-openstack-summit-2015-tokyo-after-one-year-of-openstack-cloud-operation-ntt-docomo ログ出力数 80M行&100GB/日 (内クリティカル0)
  7. 7. 何をやった? 7 OpenStack共同検証ラボの取り組みとして、 監視・ログ分析ができる基盤の作り方を検証しました。 検証した内容はOSSのように公開します。 #ブラッシュアップに皆様のお力をいただけると嬉しいです。 情報が 欲しい 情報が 欲しい
  8. 8. 公開するもの 8 [ドキュメント] ・OpenStack監視・ログ分析基盤のセットアップ手順書 [ログ収集] ・Fluentd設定ファイル #Black/Whiteリストも今後公開していきます。 [監視] ・Zabbix監視テンプレート ・監視スクリプト(API,MessageQue) GitHubにて公開 https://github.com/openstack-lab
  9. 9. コントローラノード コントローラノード 運用している環境 9 OpenStackコントローラ × 3台 , コンピュート x 2台 (OpenStack-Ansible Kilo) ログ分析 x 1台 , 監視 x 1台 コントローラ glance galera keystone nova controller neutron horizon heat memcached rabbitmq コンピュート nova compute ログ分析 監視 Zabbix Hatohol Kibana Elasticserch
  10. 10. 監視・ログ分析フロー図 10 ログ分析サーバ 監視サーバ (Agent) (Server)
  11. 11. 監視・ログ分析フロー(ログ) 11 ログ分析サーバ 監視サーバ (Agent) (Server) ログ収集/ タグ付け/転送・ Whiteリスト定義 ログ集約・ Elasticserchへ ログ格納 ログ 蓄積/分析 分析結果 可視化・ Blackリスト定義
  12. 12. 監視・ログ分析フロー(監視) 12 ログ分析サーバ (Agent) (Server) 各項目の監視 複数のZabbix GUI をまとめて表示 Slackに障害発生 を通知 監視サーバ Redmineに障害発生 チケット作成
  13. 13. 13 ログ 監視
  14. 14. 14 サービス ログファイル Nova (7ファイル) /var/log/nova/nova-api-metadata.log /var/log/nova/nova-compute.log /var/log/nova/nova-scheduler.log /var/log/nova/nova-api-os-compute.log /var/log/nova/nova-cert.log /var/log/nova/nova-conductor.log /var/log/nova/nova-consoleauth.log Keystone (3ファイル) /var/log/keystone/keystone-apache-error.log /var/log/keystone/keystone.log /var/log/keystone/ssl_access.log Neutron (9ファイル) /var/log/neutron/neutron-dnsmasq.log /var/log/neutron/neutron-ha-tool.log /var/log/neutron/neutron-dhcp-agent.log /var/log/neutron/neutron-l3-agent.log /var/log/neutron/neutron-linuxbridge-agent.log /var/log/neutron/neutron-metadata-agent.log /var/log/neutron/neutron-metering-agent.log /var/log/neutron/neutron-ns-metadata-proxy-*.log /var/log/neutron/neutron-server.log Glance (2ファイル) /var/log/glance/glance-api.log /var/log/glance/glance-registry.log Horizon (2ファイル) /var/log/horizon/horizon-error.log /var/log/horizon/ssl_access.log サービス ログファイル Cinder (3ファイル) /var/log/cinder/cinder-volume.log /var/log/cinder/cinder-scheduler.log /var/log/cinder/cinder-api.log RabbitMQ (6ファイル) /var/log/rabbitmq/rabbit*rabbit_mq_*.log /var/log/rabbitmq/rabbit*_rabbit_mq_*sasl.log /var/log/rabbitmq/shutdown_log /var/log/rabbitmq/shutdown_err /var/log/rabbitmq/startup_log /var/log/rabbitmq/startup_err GaleraCluster (1ファイル) /var/log/mysql_logs/galera_server_error.log Memcached (1ファイル) /var/log/memcached.log 計34ファイル + syslog ログ分析① 大量のログファイル
  15. 15. ログ分析② 出力パターンの揺れ 15 ログ名 タグ付けパターン タグ付け結果 neutron- dnsmasq.log ^(?<time>.+[0-9]{2}(:[0- 9]{2}){2}) (?<process>[^ ]+)[(?<pid>[0- 9]+)]:s(?<message>.+)$ [time] May 7 14:13:28 [process] dnsmasq-dhcp [pid] 19663 [message] DHCPACK(ns-09 ・・・ neutron-ha- tool.log ^(?<time>[0-9]{2}-[0-9]{2}s[0- 9]{2}:[0-9]{2}) (?<process>[^ ]+) (?<type>[^ ]+) (?<message>.+)$ [time] 05-17 18:55 [process] neutron-ha-tool [type] DEBUG [message] list_agents: {u‘a・・・ neutron-dhcp- agent.log ^(?<time>[0-9]{4}-[^ ]* [^ ]*) (?<pid>[^ ]*) (?<level>[^ ]*) (?<message>.*)$ [time] 2016-05-17 17:00:39.106 [pid] 2853 [level] ERROR [message] oslo_messaging._・・・ 同じコンポーネントでもサービス毎にフォーマットの揺れがあり
  16. 16. について 16 Fluentdとは・・・TREASURE DATA社が開発している ログファイルの収集・転送・集約が行えるOSS ログに正規表現でタグを付けし意味を付与し、収集・集約ができる <source> type tail path /var/log/nova/nova-compute.log pos_file /var/log/td-agent/nova-compute.log format /^(?<time>[0-9]{4}-[^ ]* [^ ]*) (?<pid>[^ ]*) (?<level>[^ ]*) (?<message>.*)$/ time_format %Y-%m-%d %H:%M:%S.%L tag nova.log.nova-compute.log </source> 設定例
  17. 17. について 17 Elasticserchとは・・・elastic社が開発している ビックデータの蓄積・解析が行えるOSS Kibanaによって解析結果の可視化が可能 "nova": { "properties": { "@timestamp": { "format": "strict_date_optional_time||epoch_millis", "type": "date" }, "level": { "type": "string" }, "pid": { "type": "string" }, "log_tag": { "type": "string" }, "message": { "type": "string“ ・ ・
  18. 18. どう集めた? 18 ログ分析サーバ Log 1 Log 2 Log 3 ① コンポーネントのログを収集 ② ログの内容を正規表現でタグ付け ③ ログサーバに転送・集約 ④ Elasticserchに格納 ① ② ③ ④ fluentdを使って 各コンポーネントからログ収集
  19. 19. なんでタグをつけるの? 19 2016-07-15 17:27 Warning nova.scheduler… Compute_service Error ・・ 2016-07-15 18:00 Error nova.api… API_service ・・ Elasticserchでタグ単位でデータの絞り込み・解析可能 time: 2016-07-15 17:27 level: Warning message: nova.scheduler~Error time: 2016-07-15 18:00 level: Error message: nova.API~ MessageにErrorを含む ログ=1件 タグ付け 結果
  20. 20. 20 Demo
  21. 21. どうチェックする? 21 ログに [ignore]タグを付加 表示したい項目をルール定義 問題無いログに[ignore]タグ付与 して保存 ↓ Kibanaのルールで[ignore]タグを 除外して表示 ① 過去[1日]の[Level]が[Error] 以上のログを表示 ② 過去[1日]の[message]に [nova]と[~~~]を含むログを表示 Blackリスト ルール ① ルール ② Whiteリスト
  22. 22. 22 ログ 監視
  23. 23. 監視① 監視項目が多い 23 コンポーネント・サービス毎に監視項目(プロセス・ポート)定義が必要。 そのため、監視項目は小規模な環境でも多い。
  24. 24. 24 OpenStack-Ansible プロセス名 実際に動いているプロセス名 nova-api nova-api-os- compute nova-api-metadata nova-api-os- compute nova-api keystone keystone-ad keystone-se keystone-ad keystone-pu keystone-all ディストリビューション毎・インストール方法によって 監視対象プロセス確認及び監視対象の変更が必要。 監視② プロセス名が変わる
  25. 25. 各操作の裏でAPIが叩かれる。 APIダウン時は、命令リクエストが送信できず、操作不能となるため、 スクリプトで状態監視を実施 監視③ API監視の必要性 25 nova- API Message Que Horizon コマンド 参考:http://openstack.jp/assets/files/20121216/osc2012cloudjosugamqpv2-121216085708-phpapp02.pdf API API API nova- scheduler nova- compute nova-boot リクエスト nova-boot 実行 APIがダウンしているため、 nova-bootリクエストが MeesageQueに送信されない リクエスト はないな 新規 リクエストは ないな リクエストが 来るまで何も しない
  26. 26. nova-boot リクエスト 全てのコンポーネント・サービス間通信はMessageQueを介する。 キューが溜まりすぎると命令リクエストが正常に処理されず、 システム全体の動作が不安定となりやすいため、 スクリプトで監視を実施 監視④ MessageQue監視の必要性 26 nova- API Message Que 参考:http://openstack.jp/assets/files/20121216/osc2012cloudjosugamqpv2-121216085708-phpapp02.pdf nova- scheduler cinder- scheduler nova-boot リクエスト nova-boot 実行 nova-boot リクエストnova-boot リクエストnova-boot リクエストnova-boot リクエスト cinder-list 実行 cinder- API cinder-list リクエスト キューが溢れると 新規命令リクエスト が受け付けられない nova-boot リクエスト MessageQueが溢れる cinder-list リクエスト cinder-list リクエスト cinder-list リクエスト
  27. 27. 27 まとめ
  28. 28. できたこと [共通] • 手順/設定ファイル公開 • 基盤構築手順 確立 [ログ分析] • 34ファイル分のfluentd設定ファイル作成 • Kibanaでログ分析開始 [監視] • OpenStackの監視ポイント (プロセス・ポート・API・MessageQue)洗い出し/監視項目定義28
  29. 29. 今後の取り組み • Chaosmonky等で、常に障害を発生させる。 →監視アイテムやタグ付けルールの精度向上 • ログ解析ツール(Kibana)のユースケース/ルールの検討 • fluentdとKibanaのBlack/White リスト の追加 FluentFormatterの調査・検証・組み込み • API監視の深掘り – API応答速度、複数API組み合わせた処理の監視 29
  30. 30. 30 宣伝
  31. 31. OpenStack共同検証ラボ 31 現在4社でコラボ中。
  32. 32. OpenStack共同検証ラボとは? 32 ブロードバンドタワー(BBT)様のDCで OpenStackやSDN/NFVの評価検証から DevOps的運用管理などのノウハウ蓄積&公開を 行っています。 #参加費用は無料です。
  33. 33. 〜のノウハウが 自社に少ない・・ 33 〜はどう使えば 運用しやすい? 〜をやるのに他 の人と話したい お仲間募集中です! ご興味のある方かはお気軽にお声がけください 検証機材 が・・ 〜の技術を 検証したい
  34. 34. 34 資料
  35. 35. OpenStack-Ansible構築手順書 35 OpenStack-Ansible構築手順書(Kilo/Mitaka)公開中 (http://enterprisecloud.jp/installguide-openstack-ansible/)
  36. 36. について 36 Hatoholとは・・・MIRACLE LINUX社が開発しているOSS 複数のZabbix・NagiosのGUIを1つにまとめて表示ができる Zabbix Zabbix Zabbix 表示している Zabbixの 画面多いな。。 リージョンA リージョンB リージョンC Zabbix Zabbix Zabbix リージョンA リージョンB リージョンC 複数のZabbixか ら監視データを取 得・集約 運用ダッシュ ボード (Hatohol) Hatoholに登録されて いる Zabbixが持つ監視 データを閲覧可能 フィルタ

×