29
アメーバオウンド x Mackerel @dblmkt

Mackerel Meetup #5 アメーバオウンドとMackerel

Embed Size (px)

Citation preview

Page 1: Mackerel Meetup #5 アメーバオウンドとMackerel

アメーバオウンド x

Mackerel

@dblmkt

Page 2: Mackerel Meetup #5 アメーバオウンドとMackerel

自己紹介• @dblmkt

• 株式会社サイバーエージェント アメーバ統括本部

• サービスインフラ担当 兼 マネージャ

• アメーバブログ

• アメーバオウンド ← 今日はこちら

• 主にデータベース(MySQL)、構成管理(ChefとかAnsibleとか)、監視、ミドルウェア周り

Page 3: Mackerel Meetup #5 アメーバオウンドとMackerel

ちょっと宣伝• 「SQLパフォーマンス詳解」翻訳しました

• http://sql-performance-explained.jp/

• ブログ記事などを人力で翻訳するプロジェクト Yakstやってます

• https://yakst.com/ja

• 翻訳仲間募集中

Page 4: Mackerel Meetup #5 アメーバオウンドとMackerel

アメーバのサービス

Page 5: Mackerel Meetup #5 アメーバオウンドとMackerel

アメーバのサービス

Page 6: Mackerel Meetup #5 アメーバオウンドとMackerel

アメーバのサービス

Page 7: Mackerel Meetup #5 アメーバオウンドとMackerel
Page 8: Mackerel Meetup #5 アメーバオウンドとMackerel

アメーバオウンド• あなただけのホームページ、ブログ、メディアをつくりましょう

• 簡単におしゃれなサイトを作れます

• 2015年3月サービス開始

• www.amebaownd.com

Page 9: Mackerel Meetup #5 アメーバオウンドとMackerel

Mackerelを知った経緯

• 2014年夏、アメーバオウンド開発開始

• 2014年11月ごろ、id:stanakaさんが来社

• いいなとは思ったけど使うイメージ湧かず

Page 10: Mackerel Meetup #5 アメーバオウンドとMackerel

( ́_ゝ`)フーン

Page 11: Mackerel Meetup #5 アメーバオウンドとMackerel

理由

• 当時ほとんどパブリッククラウド未使用

• クラウド監視サービスの魅力を感じなかった

• 自分でChef流して作ればいいじゃん

• 高いじゃん

Page 12: Mackerel Meetup #5 アメーバオウンドとMackerel

Web

DB Redis

CI

Page 13: Mackerel Meetup #5 アメーバオウンドとMackerel

なぜMackerel?• InfluxDB 0.8+Grafanaがいけてなかった!

• 更新はそこそこ高速・低負荷

• 参照がめちゃくちゃ重い

• あらゆるクエリがフルスキャン (0.9.xで劇的改善)

• そうだMackerelにしよう

Page 14: Mackerel Meetup #5 アメーバオウンドとMackerel

導入• 結構ゆっくりやって1ヶ月(実質1週間)

• Ansibleでサクッと

Page 15: Mackerel Meetup #5 アメーバオウンドとMackerel

導入の注意点(1)• OSのホスト名をつける!

• Mackerel上でのホスト名になります

• つけてないとdisplay_nameを使用する必要

Page 16: Mackerel Meetup #5 アメーバオウンドとMackerel

導入の注意点(2)

• サービスとロールの設計に注意

• ホスト名(内部DNSのレコード)の命名規則

• [環境]-[役割][通し番号].[サービス名].local

• 例、prd-dbs101.hoge.local

Page 17: Mackerel Meetup #5 アメーバオウンドとMackerel

• オーガニゼーション=サービス名

• サービス=環境(prd,stg,dev)

• ロール=役割

Page 18: Mackerel Meetup #5 アメーバオウンドとMackerel

応用

Page 19: Mackerel Meetup #5 アメーバオウンドとMackerel

Sensu pluginsを使う• Sensu用死活監視・メトリクス取得のスクリプト群

• mackerel-agent-pluginsで不足なら一見の価値

• http://sensu-plugins.io/

• RabbitMQ, Unicorn, Twemproxy, Riakなど

• gem installで導入

Page 20: Mackerel Meetup #5 アメーバオウンドとMackerel

Resque• キューの処理数やpendingキュー数など

Page 21: Mackerel Meetup #5 アメーバオウンドとMackerel

Golang• golang-stats-api-handlerから値を持ってくる

• ゴルーチン数やGC、ヒープの情報など

Page 22: Mackerel Meetup #5 アメーバオウンドとMackerel

スキーマに注意

• プラグインが値を渡す時のフォーマット

• デフォルトだと「ホスト名.監視対象.*」が多い

• ホスト名は除いた方がよい

Page 23: Mackerel Meetup #5 アメーバオウンドとMackerel

スキーマに注意• Mackerelは.(ドット)を区切りに最長一致したものを同じグラフに

• アラート設定をホストごとに作らなくてはならない

Page 24: Mackerel Meetup #5 アメーバオウンドとMackerel

現状

• ダッシュボードが徐々に見やすく

• 同種のカスタムメトリクスの積み重ねグラフがサポート

• 今週、InfluxDB+Grafanaを卒業!

Page 25: Mackerel Meetup #5 アメーバオウンドとMackerel
Page 26: Mackerel Meetup #5 アメーバオウンドとMackerel

Web

DB Redis

CI

Page 27: Mackerel Meetup #5 アメーバオウンドとMackerel

欲しい機能• 同種のカスタムメトリクスの積み重ねグラフサポート

• warn、critのどちらかを無効にできる or アラートの送信先を分けられる

• アラートを飛ばしたらコマンドを実行する

• 問題発生時の自動再起動

Page 28: Mackerel Meetup #5 アメーバオウンドとMackerel

結論

• まだ全部は置き換えられてない

• とはいえ導入も運用もカンタン & 見やすい

• 日々進化し続けている

• 使ってよかった!

Page 29: Mackerel Meetup #5 アメーバオウンドとMackerel

おわり