More Related Content
Similar to Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断 (20)
More from さくらインターネット株式会社 (20)
Zabbix で Mastodon を監視する Sidekiq / Redis を中心に Mastodon 健康診断
- 2. 自己紹介
• 鷲北 賢(わしきた けん)
• 1998年4月入社
• バックボーンのお守りからサービス開発まで
─ 初期の専用サーバ、データセンター構築
─ オンラインゲームプロジェクト
─ CTO兼取締役、などなど
• 2009年より、さくらインターネット研究所 所長
─ 仮想化技術の研究(Linux KVM)
─ さくらのVPS開発ヘルプ
• 2011年より、さくらのクラウド・プロデューサー兼務
• @ken_washikita@mstdn.jp
• https://facebook.com/ken_washikita
2
- 8. Mastodon
• Twitterライクな分散型SNS
─ 誰もが自由に作れるインスタンス
─ インスタンス内だけでなく、外部ユーザ
をフォローできる(リモートフォロー)
─ リモートフォローにより「連合」が形成
─ リモートTL、連合TLが形成される
• 日本でのブーム
─ 4月10日のASCII総研の記事をきっかけ
にブームが発生
─ 世界最大級のインスタンスが国内に乱立
する事態に(mstdn.jp、Pawoo、
friends.nico)
─ 全世界ユーザの半数が日本人という状況
8
- 14. 社内Slackより…
isidai 10:06
@m-yokota
mstdn.jp やってる nullkalさん、相互フォローで
知り合いだったので、無償化されている僕のさく
らのクラウドアカウントをユーザー切り出して貸
し出しました。
負荷が落ち着いた頃に自宅サーバに戻るなりVPS
に行ってもらうなりしようと思っていますが、そ
れまではクラウドに預かってもらって宜しいで
しょうか。
m-yokota 10:08
@isidai はい、ぜひぜひ!
14
わずか2分で支援決定
- 17. Mastodonスタートアップスクリプト リリース
• Mastodonのスタートアップスクリプトが完成
─ スタートアップスクリプトとは?
サーバの作成と同時に実行されるスクリプト
プレ・インストールなどの作業を実施できる
WordPressサーバのワンボタン作成などが人気
• Mastodonスタートアップスクリプトの特長
─ 新規ドメインを取得すれば、残りの作業は全自動
(起動までは15分~30分)
─ サーバ作成、メール設定、DNS設定、Let’s Encrypt設定
─ Mastodonインストールまでが全自動
• リリースしたらアクセス殺到
─ 公開したら20分でサーバがダウン
─ あわててスケールアップして対応
17
- 23. サーバの監視
• サーバが動いているか?(基本メトリック)
─ アクセス監視(ping)
─ ポート監視(HTTPS、SSH)
• ハードウェアの状態は?(基本メトリック)
─ OS監視(CPU負荷、メモリ使用量、ディスク空き容量)
─ ネットワーク監視(トラフィック量、レイテンシ)
• アプリケーションの状態は?
─ ページ監視
about/moreをチェックし、ユーザ数/toot数/接続インスタンス
数を見る
ログインやホーム画面、TLを見てみる
APIリクエストを投げて応答を確認する
• ミドルウェアの状態は?
─ 構成要素のメトリックを採取、分析する
23
- 24. Zabbix
• オープンソースの監視ツール
• 利点
─ 使いやすい(慣れている)
─ 監視→条件による発報→通知のフローが作りやすい
標準テンプレートにより多くのメトリックが監視可能
自作テンプレートも比較的簡単に作れる
─ 条件を設定し、発報(通知)をプログラムできる
─ 異常検知を通知するほか、障害対応自動化も可能
• 欠点
─ グラフデザインは好みが分かれる
─ データストアが非効率(処理が重い)
─ 過去データを溜め込むのに向いていない
24
- 31. 監視対象ミドルウェア
• nginx ー Webサーバ
─ これが止まるとアクセスができなくなる
• PostgreSQL ― データベースサーバ
─ すべてのデータが詰まっている
─ 負荷が集中しやすい場所だが、Mastodonでは実はそれほど
でもない
• Sidekiq ― メッセージハンドラ
─ 多数のメッセージを整理し、処理するためのミドルウェア
─ tootを交換するMastodonの仕組みの要(かなめ)
─ データベースよりも負荷が集中する場所
─ RedisはSidekiqを利用する際に必要になるミドルウェア
31
- 37. Redis: Commands Processed [cps] & Latency [msec]
37
• Commands Processed
─ Redisが処理したコマンド数を毎秒に換算して表示
─ Sidekiqメッセージ数に比例する(一致はしない)
• Latency
─ Redisが処理に要した時間をサンプリングして計測
─ busy具合の指標として計測
─ 個人的には、偏差が大きく参考にならないと悩み中
- 47. ○○人のインスタンスの運営には、どれぐらいのスペックが必要?
• よくいただくご質問です
─ が、実はよく分かりません
• ユーザ数は、サーバ負荷にあまり影響を与えません
─ CPU負荷は主にtoot数によって決まります
tootが多くなるほど、メッセージ数が増え、CPUとトラフィックに
高い負荷がかかります
少ない人数でも短いメッセージを大量にやり取りするケースでは高
負荷・大量トラフィックになりがちです
─ ディスク容量はリモートフォローにも左右されます
デフォルトでは、リモートユーザが持っているメディアファイルも
コピーしてしまいます
相手がメディアファイルを大量に持っていると、ディスクを消費し、
大量トラフィックに繋がります
47