Top Banner
クックパッドを 支えるZabbix 2015/11/20
43

クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Sep 03, 2019

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

クックパッドを 支えるZabbix

2015/11/20

Page 2: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

自己紹介

•加藤 優仁 •クックパッド株式会社 •Twitter:EugeneK •検索、バックアップ、監視等

Page 3: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

クックパッドとは

日本最大のレシピサービス

Page 4: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ
Page 5: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

クックパッドとは

•月間約6000万ユーザ •1000台以上のサーバを稼働

Page 6: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Zabbix事情

•アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Page 7: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Zabbixサーバ

•クックパッド自体がAWS上 •ZabbixもAWSで運用 •m2.4xlargeインスタンス •MySQLサーバが同居

Page 8: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Zabbix環境

•バージョン2.4.7を使用 •proxy、senderも利用(後述) •随時チューニングを実施(後述)

Page 9: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

導入経緯

•以前はNagios + Munin •2014年6月頃から置き換え

Page 10: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Zabbixにした理由

•サーバ台数増によってNagiosのポーリングが遅延した ‣ Zabbixのアクティブ監視で負荷を下げて解決

Page 11: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

•サーバ台数増によってMuninのグラフ生成が遅い ‣ 都度描画するZabbixならグラフが遅れない

Zabbixにした理由

Page 12: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

•死活監視と性能監視が別サービス ‣ Zabbixならどっちもできる

Zabbixにした理由

Page 13: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

AWSのサービス監視•RDS、ELB等 •Cloud Watchのメトリクスを取得してzabbix-senderで送信するスクリプトを実行

•Agent等の監視を使わないホストとして設定

Page 14: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

アーキテクチャ

Page 15: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

チューニング(zabbix)•Pollers ‣ グラフを見て過不足ないように調節

Page 16: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

•innodb_buffer_pool_size ‣ メモリの許す限り大きく割当

•innodb_flush_log_at_trx_commit ‣ 0に設定 (IO負荷を低減)

チューニング(MySQL)

Page 17: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

増減するサーバ

•トラフィックに応じてサーバが自動で増減する(オートスケール)

•時間帯、季節によって大きく変動 •コストを抑えるために増減

Page 18: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

トラフィック

Page 19: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

監視の追従

•増減するサーバに応じて監視も自動で増減させている

Page 20: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

監視アイテム数

Page 21: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

自動登録(増台時)•自動登録の機能を使ってサーバ起動時に監視対象に入れる

•ディスカバリによる自動登録は使っていない

•プロビジョニングツールと連携して適切なテンプレートを適用

Page 22: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

自動削除(縮退時)

定期的に実行されるスクリプトでAWSの情報とZabbixの情報を突合して停止したサーバをZabbix APIを使って削除

Page 23: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

グラフ一覧•スクリーンをいちいち設定するのは面倒

•Muninに慣れていた •Muninっぽいビューがあれば… •独自に開発

Page 24: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ
Page 25: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

Munin View

•Zabbix APIを使ってホストの一覧、グラフの一覧取得

•ホストグループ内のホストのグラフURLを生成して表示

Page 26: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

zv

•似たようなOSSツール •弊社菅原が開発 https://github.com/winebarrel/zv

Page 27: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

オペレーション効率化

•ckpd-zabbix-*コマンド •各サーバに組み込みのrubyスクリプト

•Zabbix APIを使って自動的に設定してくれる

Page 28: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-maintenance

•メンテナンス設定を自動で行う •主に手動で作業するときにアラートを抑止するために使っている

Page 29: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-maintenance

Page 30: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-enable

•モニタリングを有効化する •停止していたサーバを起動後に自動実行させて使う

Page 31: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-enable

Page 32: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-disable

•モニタリングを無効化する •サーバを無期限停止するときに停止直前に使っている

Page 33: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-disable

Page 34: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-cli•APIの動作確認を行うときに使用

•リクエストのJSONを与えるとAPIコールをして結果を表示する

Page 35: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-cli

Page 36: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ckpd-zabbix-*•各コマンドはcliへのエイリアス •コマンドごとに定形のAPIコールをしているだけ

•監視対象が自分自身の有効・無効を設定できるので自動化に役立つ

Page 37: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

chatops

Page 38: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

chatops

•アラートがチャット上に流れる •誰が対応中かなどの情報が自然と共有できる

Page 39: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

chatops

Page 40: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

•メンテナンス設定もチャットから行える

•誰が作業中かすぐにわかる •設定の仕方を覚えなくていい •裏でボットがAPIをコールしている

chatops

Page 41: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

あわせてよみたい

クックパッドにおけるサーバ監視と運用の工夫 http://techlife.cookpad.com/entry/2015/04/28/100000

Page 42: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

PR

クックパッドは積極採用中です! https://recruit.cookpad.com/

Page 43: クックパッドを 支えるZabbix - assets.zabbix.com · Zabbix事情 •アイテム数20万弱 •2000監視項目以上/秒 •トリガー数約5万 •Zabbixサーバは1台だけ

ご清聴ありがとうございました