Upgrade to Pro — share decks privately, control downloads, hide ads and more …

it_infra_summit_2014

 it_infra_summit_2014

「Zabbix を用いた OpenStack 監視について」
2014/07/14 の ITインフラSummit2014 の資料です

makocchi

July 31, 2014
Tweet

More Decks by makocchi

Other Decks in Technology

Transcript

  1.             @makocchi         

       https://www.facebook.com/makocchi0923       github.com/makocchi-git 自己紹介 長谷川  誠  -  株式会社サイバーエージェント   2014年4月にアメーバ事業部からアドテク本部へ  -  インフラエンジニア  -  Zabbix  Conference  Japan  2013        「Chef  による  Zabbix  監視自動化について  +α」 -  最近の出来事        LINE  乗っ取られた\(^o^)/ 2 14-7-24
  2. Zabbix を用いた OpenStack 監視について  / Agenda アジェンダ •  自己紹介 • 

    OpenStack  について •  Why  Zabbix •  OpenStack  Component  の監視 •  OpenStack  Instance  の監視 •  まとめ •  おわりに 3 14-7-24 {    "name":  ”hasegawa_makoto",    "description":  ”IT  Infra  Summit  2014",    "json_class":  "Chef::Role",    "chef_type":  "role",    "run_list":  [        "recipe[introduction]",        "recipe[OpenStack::explain]",        "recipe[zabbix::use]",        "recipe[OpenStack::Component]",        "recipe[OpenStack::Instance]",        "recipe[summary]”,        "recipe[closing]”,    ],    ”extra_run_lists":  {        "recipe[QandA]”    } } #  chef-solo  –o  it_infra_summit::2014
  3. Zabbix を用いた OpenStack 監視について  / OpenStack 5 14-7-24 OpenStack(http://www.openstack.org)  とは

    •  Rackspace,  NASAによって発足されたプロジェクト •  Iaas  基盤を提供するソフトウェア(component)の集合 •  OSS  だが、様々な大企業が力を入れている •  Red  Hat,  IBM,  HP,  Rackspae,  etc,,,, •  開発スピードも早い •  2014/04  Icehouse  release(2014.1) •  2014/10  Juno  release(2014.2)  予定 •  日本  OpenStack  ユーザ会  (http://openstack.jp)
  4. Zabbix を用いた OpenStack 監視について  / OpenStack Why  Zabbix なぜ  Zabbix

     を利用しているのか 6 14-7-24 #  chef-solo  –o  Zabbix::use
  5. Zabbix を用いた OpenStack 監視について  / OpenStack Why  Zabbix  ? 一番のポイントは

     API  が充実していること •  今の時代、Programmable  にインフラを構築できないと厳しい •  監視の設定も  Programmable  に •  API  で全て設定できる  Zabbix  であればそれが可能となる 死活監視とリソース監視に対応している •  Nagios  +  Munin  や  Nagios  +  Cacti  といった構成を  Zabbix  で集約 複数の  Component  で構成される  OpenStack •  Component  毎に  Template  を作成しておくことで管理が楽にできる Free  /  OSS •  ありがとうございます 7 14-7-24
  6. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の監視 -  Component

     編  - 8 14-7-24 #  chef-solo  –o  OpenStack::component
  7. Zabbix を用いた OpenStack 監視について  / OpenStack 9 14-7-24 OpenStack  の

     component  と  Zabbix  の  template  (1)   Core  Component Component Zabbix  template Compute(Nova) Nova  compute Nova  api Nova  cert Nova  conductor Nova  consoleauth Nova  novncproxy Nova  xvpvncproxy OpenStack_icehouse_Nova_compute OpenStack_icehouse_Nova_api OpenStack_icehouse_Nova_cert OpenStack_icehouse_Nova_conductor OpenStack_icehouse_Nova_consoleauth OpenStack_icehouse_Nova_novncproxy OpenStack_icehouse_Nova_xvpvncproxy Image  Service(Glance) Glance OpenStack_icehouse_Glance Identity(Keystone) Keystone OpenStack_icehouse_Keystone Networking(Neutron) Neutron  server Neutron  dhcp-agent Neutron  openvswitch-agent OpenStack_icehouse_Neutron_server OpenStack_icehouse_Neutron_dhcp_agent OpenStack_icehouse_Neutron_ovs_agent Object  Storage(Swift) Swift  account Swift  object Swift  container Swift  proxy OpenStack_icehouse_Swift_account OpenStack_icehouse_Swift_object OpenStack_icehouse_Swift_container OpenStack_icehouse_Swift_proxy ※その他 MySQL や Rabbit MQ  の監視も
  8. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  component  と

     Zabbix  の  template  (2) Component  毎に  template  を分けておくメリット •  1台のサーバーに複数の  Component  を入れて起動させるというケースが多い •  例えば  Nova  +  Glance  や  Nova  +  Keystone  等 •  負荷の状況や構成変更で  Component  を複数のサーバーに配置し直すことがあるかもしれない •  そういった場合に  Zabbix  側は  template  を移すだけで済む •  細分化することで管理しやすく •  Zabbix  template  は  xml  で  export  して  git  で管理 •  Component  毎に分かれていたほうが履歴が追いやすい Component  毎に  template  を分けておくデメリット •  (  ・ω・)ナニカアルカナ・・・ 10 14-7-24
  9. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  component  と

     Zabbix  の  template  (3) Component  の監視内容について •  そんなに特別なことはしていない •  各  Component  の  process  の有無、port  の  check、daemon  のメモリ使用量等 •  例えば  Nova  の  API  (openstack)  の監視項目 さすがにそれだけだと芸がないので・・ •  Keystone  の監視においては  token  がきちんと取れるかどうかのチェック •  Swift  においては  認証→コンテナ作成→オブジェクト作成→オブジェクト削除→コンテナ削除   •  Zabbix  Server  から  external  script  で監視している 11 14-7-24 監視項目名 Item  Key Network  -  Port  {$NOVA_API_PORT_OS}  is  in  LISTENING  state net.tcp.listen[{$NOVA_API_PORT_OS}] Simple  -  Port  {$NOVA_API_PORT_OS}  is  accepting  connection(s) net.tcp.service[tcp,,{$NOVA_API_PORT_OS}] Process  -  Number  of    {$NOVA_API_PROCESS}  processes proc.num[python,{$NOVA_API_USER},,{$NOVA_API_PROCESS}] Process  -  Memory  used  by  {$NOVA_API_PROCESS} proc.mem[python,{$NOVA_API_USER},,{$NOVA_API_PROCESS}]
  10. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の監視 -  Instance

     編  - 12 14-7-24 #  chef-solo  –o  OpenStack::Instance
  11. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  Instance  監視(1)

    OpenStack  では  Instance  を作成する際に  cloud-init  を使用することができる cloud-init  を使用して  boot  直後に任意の処理をさせることが可能  (User  Data) cloud-init  とは?   •  設定ファイルを書くことで初回サーバー起動時に自動的に様々な処理をしてくれる •  locale  の設定 •  ssh  の鍵の作成 •  hostname  の設定 •  /etc/hosts  の編集 •  rootfs  の伸長 •  などなど・・ (https://help.ubuntu.com/community/CloudInit) 13 14-7-24
  12. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  Instance  監視(2)

    User  Data  の内容は  instance  作成時に指定することができる これを利用して・・・ User  Data  内で  chef  が起動するようにしておき、 どの  role  を適用するか  Instance  作成時に指定する •  例えば  web  サーバーを作成する場合 •  web  用の  chef  role  を適用し、Zabbix  サーバーへ  API  で  Host  を登録後に  web  監視用の template  を適用させるといったことが可能 •  こういった仕組みを利用することで  base  となる  image  は最小限のものだけでよくなる 14 14-7-24 Web  用  image DB  用  image Cache  用  image … Base  image  +  User  Data  (web) Base  image  +  User  Data  (db) Base  image  +  User  Data  (cache) …
  13. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  Instance  監視(3)

     -  User  Data  の使い方 その1  :  ブラウザからポチポチやりたい  Dashboard  で埋め込む派 15 14-7-24 ここに実行させたい 内容を書く
  14. Zabbix を用いた OpenStack 監視について  / OpenStack OpenStack  の  Instance  監視(4)

     -  User  Data  の使い方 その2  :  ポチポチなんてやってらんねー!CUI  大好き!派 •  nova  command  で指定する場合 個人的に・・・ Dashboard(Horizon)  を利用する際には処理の内容を貼り付けないといけないが、 nova  経由であれば  file  で渡すことができる (いちいち内容を貼り付けないといけない  Dashboard  よりコッチのほうが楽) 16 14-7-24 $  nova  boot  web01  --flavor  1  --image  123  --key-name  your-key  --security-groups  your-sg  ¥      --user-data  project1_web.txt
  15. Zabbix を用いた OpenStack 監視について  / Summary まとめ •  OpenStack  の

     Component  を  Zabbix  から監視する際には、Component  毎に   template  を作って管理しやすくしましょう •  OpenStack  で作成した  Instance  の監視には  cloud-init  の仕組みをフル活用すべき •  cloud-init  (User  Data)内で  chef  を実行させる場合は  handler(Chef::Handler)  を 使ってきちんと結果を把握しておきましょう •  LINE  の乗っ取りに気をつけましょう\(^o^)/ Zabbix  を利用して、素敵な  OpenStack  Life  を! 18 14-7-24