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

Post on 06-Jan-2017

5.068 views 1 download

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

アメーバオウンド x

Mackerel

@dblmkt

自己紹介• @dblmkt

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

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

• アメーバブログ

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

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

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

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

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

• https://yakst.com/ja

• 翻訳仲間募集中

アメーバのサービス

アメーバのサービス

アメーバのサービス

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

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

• 2015年3月サービス開始

• www.amebaownd.com

Mackerelを知った経緯

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

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

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

( ́_ゝ`)フーン

理由

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

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

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

• 高いじゃん

Web

DB Redis

CI

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

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

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

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

• そうだMackerelにしよう

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

• Ansibleでサクッと

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

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

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

導入の注意点(2)

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

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

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

• 例、prd-dbs101.hoge.local

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

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

• ロール=役割

応用

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

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

• http://sensu-plugins.io/

• RabbitMQ, Unicorn, Twemproxy, Riakなど

• gem installで導入

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

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

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

スキーマに注意

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

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

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

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

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

現状

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

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

• 今週、InfluxDB+Grafanaを卒業!

Web

DB Redis

CI

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

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

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

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

結論

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

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

• 日々進化し続けている

• 使ってよかった!

おわり