はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team

9b741203feda475cbeae8b384de9f415?s=47 motemen
October 27, 2017

はてなサービスプラットフォームチームにおける Mackerel / Mackerel in Hatena Platform Team

2017/10/27 モニタリング勉強会の資料です https://mackerel-ug.connpass.com/event/68478/

9b741203feda475cbeae8b384de9f415?s=128

motemen

October 27, 2017
Tweet

Transcript

  1. 4.

    History of Mackerel 2007 はてな社内サーバ管理ツール 2013 クラウドサーバ監視サービス 開発開始 2014 Mackerel

    チーム結成 2014-05 ベータリリース 2014-09 正式リリース 2016-06 連続リリース100週達成
  2. 9.
  3. 15.

    プラグイン • github.com/mackerelio/mackerel-agent-plugins • Linux (fork, netstat), inode • Docker,

    Elasticsearch, fluentd, MySQL, nginx, ... • AWS: CloudFront, DynamoDB, RDS, ...
  4. 20.

    組織構造 Op Team Dev Team 1 Dev Team 2 Dev

    Team 3 Service B Service A Service C Service D
  5. 23.
  6. 26.

    HTTP レスポンス / サービスメトリック • より詳しいステータス状況 • fluentd で収集・集計 ◦

    fluent-plugin-mackerel ◦ レイテンシ ▪ average, 90/99 %ile ◦ ステータスコード ▪ percentage, count
  7. 30.

    ホストメトリック • ビルトイン: Loadavg, CPU%, Memory, Filesystem, ... • OS

    やミドルウェアに合わせたカスタムメトリック • 監視よりは観察用
  8. 33.

    Service/Role 世界観 • リポジトリが Service/Role 対応 ◦ hatena/Hatena-Identity • リポジトリ中のディレクトリが

    Service/Role 対応 ◦ nginx-config/Hatena-Identity/backend/nginx.conf ◦ chef/cookbooks/service-identity/recipes/backend.rb
  9. 37.

    その他 • イベントのグラフ投稿 ◦ Dev: デプロイ ◦ Op: chef 適用

    • mkr でサービス事情の監視 ◦ 旧: cron で DB 不整合の件数をメールで通知 ◦ 新: mkr throw でサービスメトリック投稿、監視閾値設定
  10. 40.

    設定した監視ポイント • 外形監視(レスポンスボディチェック) • nginx - app 間通信(専用エンドポイント + check-http)

    • app - DB 間通信(専用エンドポイント + check-http) • nginx: カスタムメトリック(mackerel-plugin-nginx) • app: カスタムメトリック(mackerel-plugin-gostats) • おまけ: app-version チェック
  11. 45.