Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Webサービスを支えるモニタリング PHPカンファレンス仙台 2019
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
What is it? Webサービスを モニタリング=監視する
Slide 4
Slide 4 text
What is it? “監視とは、あるシステムやそのシステムの コンポーネントの振る舞いや出力を観察し チェックし続ける行為である。” 入門 監視 「はじめに」から
Slide 5
Slide 5 text
What is it? なぜ監視が必要か?
Slide 6
Slide 6 text
What is it? 1. 素早く障害に気付くため 2. 素早く原因究明を行うため 3. システムの振る舞いを予測し、 未然に障害を防ぐため 下に行くほどより精度の高い監視が必要
Slide 7
Slide 7 text
What is it? アプリケーションエンジニアが サービスを運用するために必要なこと
Slide 8
Slide 8 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 アプリケーションを監視する 4 そーだいなる監視 5 まとめ
Slide 9
Slide 9 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 アプリケーションを監視する 4 そーだいなる監視 5 まとめ
Slide 10
Slide 10 text
自己紹介 曽根 壮大(34歳) 株式会社オミカレ 副社長/CTO • 日本PostgreSQLユーザ会 勉強会分科会 座長 • 3人の子供がいます • 技術的にはWeb/LL言語/RDBが好きです そ ね た け と も
Slide 11
Slide 11 text
自己紹介 曽根 壮大(34歳) 株式会社オミカレ 副社長/CTO • 日本PostgreSQLユーザ会 勉強会分科会 座長 • 3人の子供がいます • 技術的にはWeb/LL言語/RDBが好きです そ ね た け と も
Slide 12
Slide 12 text
婚活といえばオミカレ https://party-calendar.net/
Slide 13
Slide 13 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 自分たちのサービスを知る 4 そーだいなる監視 5 まとめ
Slide 14
Slide 14 text
Webサービスを見る Webサービスは生き物
Slide 15
Slide 15 text
Webサービスを見る Webサービスは生き物 ↓ 常に変化している
Slide 16
Slide 16 text
Webサービスを見る Webサービスは難しい
Slide 17
Slide 17 text
Webサービスを見る Webサービスは難しい ↓ 色んな要素の影響を受ける
Slide 18
Slide 18 text
Webサービスを見る クライアント インターネット サーバサイド 通信は常に往来してる DNS BGP ISP サーバ ネットワーク アプリケーション
Slide 19
Slide 19 text
Webサービスを見る クライアント インターネット サーバサイド 通信は常に往来してる DNS BGP ISP サーバ ネットワーク アプリケーション 最もわかりやすい領域 監視でサービスの状態を知る 自分たちでコントロール出来る
Slide 20
Slide 20 text
Webサービスを見る クライアント インターネット サーバサイド 通信は常に往来してる DNS BGP ISP サーバ ネットワーク アプリケーション ユーザの体験に一番効く部分 コントロール出来るが意図しない 挙動のことも多い だからこそ監視が必要
Slide 21
Slide 21 text
Webサービスを見る クライアント インターネット サーバサイド 通信は常に往来してる DNS BGP ISP サーバ ネットワーク アプリケーション 通常はコントロールできない領域 監視することで異常に早く気付く
Slide 22
Slide 22 text
Webサービスを見る それぞれをどう監視するか
Slide 23
Slide 23 text
Webサービスを見る それぞれをどう監視するか ↓ 入門 監視に書いてある
Slide 24
Slide 24 text
Webサービスを見る 監視のアンチパターン
Slide 25
Slide 25 text
Webサービスを見る • ツール依存 • 役割としての監視 • チェックボックス監視 • 監視を支えにする • 手動設定 監視のアンチパターン 入門監視に書いてある
Slide 26
Slide 26 text
Webサービスを見る 監視のデザインパターン
Slide 27
Slide 27 text
Webサービスを見る • 組み合わせ可能な監視 • ユーザ視点での監視 • 作るのでは無く買う • 継続監視 監視のデザインパターン 入門監視に書いてある
Slide 28
Slide 28 text
Webサービスを見る ビジネスを監視する
Slide 29
Slide 29 text
Webサービスを見る • PVや訪問数 • ダウンロード数 • ユーザの利用料 • クラウド料金 …etc ビジネスを監視する 入門監視に書いてある
Slide 30
Slide 30 text
Webサービスを見る
Slide 31
Slide 31 text
Webサービスを見る • SNSでバズる • テレビやニュースで取り上げられる • バグなどで想定外の挙動をする • SEOの順位が突然変わる …etc 意図しないサービスの反応
Slide 32
Slide 32 text
Webサービスを見る サービスの変化と システムの変化は相関
Slide 33
Slide 33 text
Webサービスを見る サービスを最も知っている人
Slide 34
Slide 34 text
Webサービスを見る サービスを最も知っている人 ↓ 作ってる人
Slide 35
Slide 35 text
Webサービスを見る だからエンジニアが サービスを見る=監視する
Slide 36
Slide 36 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 アプリケーションを監視する 4 そーだいなる監視 5 まとめ
Slide 37
Slide 37 text
アプリケーションを監視する どこから始めればいいの?
Slide 38
Slide 38 text
アプリケーションを監視する どこから始めればいいの? ↓ 大事なところから始めましょう
Slide 39
Slide 39 text
アプリケーションを監視する サービスが稼働している
Slide 40
Slide 40 text
アプリケーションを監視する サービスが稼働している ↓ 200を返している
Slide 41
Slide 41 text
アプリケーションを監視する サービスが稼働している ↓ 200を返している 外形監視はシンプルで始めやすい
Slide 42
Slide 42 text
アプリケーションを監視する サーバ or SaaS 定期的にリクエストする
Slide 43
Slide 43 text
アプリケーションを監視する • インターネット越しにcurlを叩く • GASからサイトをリクエストする • 外形監視出来るSaaSを使う …etc 外形監視の方法
Slide 44
Slide 44 text
アプリケーションを監視する モニタリング用の エンドポイントを作る
Slide 45
Slide 45 text
アプリケーションを監視する サーバ or SaaS { “user” : 1000, “party”: 30000, “request”: 40000, “images”: 3500, “reserve”: { “man”: 300, “woman”: 200 } } 監視したい内容を出力する エンドポイントを作る 記録してグラフにする
Slide 46
Slide 46 text
SaaSに任せる
Slide 47
Slide 47 text
REST API の監視 えいのうにっき Mackerel の CRE だけど、何か質問ある? 〜 回答編 https://blog.a-know.me/entry/2018/12/21/102752
Slide 48
Slide 48 text
アプリケーションを監視する アプリケーションに 監視の穴を作る
Slide 49
Slide 49 text
アプリケーションを監視する • レンタルサーバーでも出来る • アプリケーション側で出来る • SaaSと組み合せれば、すぐ出来る • シナリオテストのようにシステム を総括して見れる エンドポイントを作る
Slide 50
Slide 50 text
アプリケーションを監視する 自分で作るメトリック
Slide 51
Slide 51 text
アプリケーションを監視する 自分で作るメトリック ↓ 自分が理解できる
Slide 52
Slide 52 text
アプリケーションを監視する 監視を育てる
Slide 53
Slide 53 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 アプリケーションを監視する 4 そーだいなる監視 5 まとめ
Slide 54
Slide 54 text
そーだいなる監視 実際にやってることの例
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
そーだいなる監視 https://employment.en-japan.com/engineerhub/entry/2018/12/11/110000
Slide 57
Slide 57 text
そーだいなる監視 https://employment.en-japan.com/engineerhub/entry/2018/12/11/110000
Slide 58
Slide 58 text
そーだいなる監視 時々データの不整合あるッス! データの登録時のエラーを監視しよう
Slide 59
Slide 59 text
そーだいなる監視 https://employment.en-japan.com/engineerhub/entry/2018/12/11/110000 ここを監視する
Slide 60
Slide 60 text
そーだいなる監視 RDSのログを PHP経由で定期的にチェックする
Slide 61
Slide 61 text
そーだいなる監視 1. AWS SDK for PHPで downloadDBLogFilePortion関数を実行 2. Errorなどの特定のキーワードを拾ってalert 3. Mackerelのチェック監視の仕組みで通知
Slide 62
Slide 62 text
そーだいなる監視 AWS php mackerel-agent Slack ① SDKを実行 ② ログを取得 ③ ログを確認 ④Mackerel経由で通知 Mackerel-agentが定期的に実行する
Slide 63
Slide 63 text
詳しくはこちらの資料 https://speakerdeck.com/takahashiikki/postgresqljapan2018
Slide 64
Slide 64 text
そーだいなる監視 Apacheが時々固まるッス! Apacheの状態を見て、ハングしたら 自動で再起動させよう
Slide 65
Slide 65 text
そーだいなる監視 自動復旧を試みる
Slide 66
Slide 66 text
https://gist.github.com/soudai/85e437749c578e2e206670f961ed7279
Slide 67
Slide 67 text
そーだいなる監視 OS php mackerel-agent Apache ① コマンド実行 ② 結果を取得 ③ 閾値を超えた ④再起動 Mackerel-agentが定期的に実行する
Slide 68
Slide 68 text
そーだいなる監視 もちろんベストではないけど 深夜に起きる必要はなくなった
Slide 69
Slide 69 text
そーだいなる監視 抜本的な解決には もちろん継続的な監視が必要
Slide 70
Slide 70 text
そーだいなる監視 夜間バッチが時々詰まるッス! ルーク、 SHOW ENGINE INNODB STATUS を使え
Slide 71
Slide 71 text
そーだいなる監視 実際は人が SHOW ENGINE INNODB STATUS 生で読むのは難しい
Slide 72
Slide 72 text
そーだいなる監視 CloudWatchの値を使う
Slide 73
Slide 73 text
No content
Slide 74
Slide 74 text
そーだいなる監視 更新/削除が詰まってた ↓ MySQLのギャップロックで 待ち時間が発生
Slide 75
Slide 75 text
そーだいなる監視 Batchの処理と TV特集が被る
Slide 76
Slide 76 text
No content
Slide 77
Slide 77 text
そーだいなる監視 継続的にメトリックを取っていた
Slide 78
Slide 78 text
そーだいなる監視 継続的にメトリックを取っていた ↓ 原因究明ができた
Slide 79
Slide 79 text
そーだいなる監視 自分たちが知りたい問題を 監視する
Slide 80
Slide 80 text
あじぇんだ 1 自己紹介 2 Webサービスを見る 3 アプリケーションを監視する 4 そーだいなる監視 5 まとめ
Slide 81
Slide 81 text
まとめ
Slide 82
Slide 82 text
まとめ 入門 監視を読む
Slide 83
Slide 83 text
No content
Slide 84
Slide 84 text
まとめ ダイエットは体重計に乗るし、 健康診断では血圧を測る Webサービスも同じ
Slide 85
Slide 85 text
まとめ エンジニアには根拠が必要
Slide 86
Slide 86 text
まとめ エンジニアには根拠が必要 ↓ 根拠は技術で用意できる
Slide 87
Slide 87 text
まとめ テストはコードの品質の可視化 モニタリングはサービスの品質の可視化
Slide 88
Slide 88 text
まとめ 体重計に乗るだけでは痩せない
Slide 89
Slide 89 text
まとめ 体重計に乗るだけでは痩せない ↓ 可視化しただけでは品質は改善されない
Slide 90
Slide 90 text
まとめ イチローのバットを使っても イチローにはなれない
Slide 91
Slide 91 text
まとめ 自分たちが 改善のサイクルを回していく
Slide 92
Slide 92 text
“アプリケーションの監視は、 いわゆるインフラエンジニアより、 アプリケーションを一番理解している人が 監視を一番良くできる” おそらくはそれさえも平凡な日々 Songmu http://www.songmu.jp/riji/entry/2019-01-07-practical-monitoring.html まとめ
Slide 93
Slide 93 text
まとめ 自分たちの手でサービスを育てていく
Slide 94
Slide 94 text
ご清聴ありがとうございました