Upload
doublemarket
View
5.068
Download
1
Embed Size (px)
Citation preview
アメーバオウンド 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 アラートの送信先を分けられる
• アラートを飛ばしたらコマンドを実行する
• 問題発生時の自動再起動
結論
• まだ全部は置き換えられてない
• とはいえ導入も運用もカンタン & 見やすい
• 日々進化し続けている
• 使ってよかった!
おわり