SlideShare a Scribd company logo
1 of 46
システムの運用・監視のコツ



      株式会社ハートビーツ
           坂口 利樹


            2009/12/04
agenda

    インフラエンジニアのお仕事

    監視とは

    なぜ監視が必要なのか

    どうやって監視するか

    監視チームを作る
誰?

    坂口利樹 ( さかぐちとしき )
   twitter : tsakaguchi
   Mail : sakaguchi.toshiki@gmail.com

    インフラエンジニア

    エンジニア歴 2 年半 ( しんそつ )

    PostgreSQL Confarence 2009 Tokyo/Fall  実行委員
インフラエンジニアのお仕事
         定例業務
          定例業務                        非定例業務
                           設計、アーキテクト
                           ●

管理
●                              ●
                                   ボトルネックの解析・ログ解析
    ●
        機器・設定情報の管理                 高負荷プロセスの分析
    ●
        リソース管理                 ●
                                   運用方法・監視方法の検討・提案
    ●
        バックアップ
    ●
        権限・セキュリティ管理        選定
                           ●

                               ●
                                   ネットワーク・サーバ
監視
●
                                   OS ・アプリケーション
    ●
        システム・機器の稼働状況、              iDC ・回線等の選定
        リソース状況・ログ出力、改竄検知       ●
                                   負荷テスト
    ●
        障害対応
                           構築
                           ●

問い合わせ対応・サポート
●                              ●
                                   サーバ、機器のセットアップ
    ●
        社内外からの問い合わせ                ラックマウント・ケーブリング
                                   SSL 証明書取得・設定
インフラエンジニアのお仕事
         定例業務
          定例業務                        非定例業務
                           設計、アーキテクト
                           ●

管理
●                              ●
                                   ボトルネックの解析・ログ解析
    ●
        機器・設定情報の管理                 高負荷プロセスの分析
    ●
        リソース管理                 ●
                                   運用方法・監視方法の検討・提案
    ●
        バックアップ
    ●
        権限・セキュリティ管理        選定
                           ●

                               ●
                                   ネットワーク・サーバ
監視
●
                                   OS ・アプリケーション
    ●
        システム・機器の稼働状況、              iDC ・回線等の選定
        リソース状況・ログ出力、改竄検知       ●
                                   負荷テスト
    ●
        障害対応
                           構築
                           ●

問い合わせ対応・サポート
●                              ●
                                   サーバ、機器のセットアップ
    ●
        社内外からの問い合わせ                ラックマウント・ケーブリング
                                   SSL 証明書取得・設定
監視とは
監視とは

    システムやネットワークの状況変化を
    知るための情報収集活動
なぜ監視が必要なのか
なぜ監視が必要なのか

    大前提:ビジネス・サービスが動いている
     
         高可用性が求められる
     
         すべての障害を予期することは困難


         機能停止         性能低下


     機能監視             性能把握
監視の種類を分類
            機能監視                    性能把握

●
 L1 〜 L3 ネットワーク
●
 L4 〜 L7 サービス
    ●   HTTP(S)         システムリソース
                        ●

        POP3(S)
                                CPU 使用量
    ●
                            ●
    ●   SMTP(S)
    ●   IMAP(S)             ●
                                メモリ使用量
        DNS
                                Disk I/O
    ●
                            ●
    ●   SSH
    ●   (S)FTP              ●
                                Network( 遅延・帯域 )
    ●
        DB への接続状態           ●
                                DB の内部状態
    ●
        プロセス死活
    ●
        ログ出力
    ●   RAID
監視の種類を分類
            機能監視                    性能把握

●
 L1 〜 L3 ネットワーク
●
 L4 〜 L7 サービス
    ●   HTTP(S)         システムリソース
                        ●

        POP3(S)
                                CPU 使用量
    ●
                            ●
    ●   SMTP(S)
    ●   IMAP(S)             ●
                                メモリ使用量
        DNS
                                Disk I/O
    ●
                            ●
    ●   SSH
    ●   (S)FTP              ●
                                Network( 遅延・帯域 )
    ●
        DB への接続状態           ●
                                DB の内部状態
    ●
        プロセス死活
    ●
        ログ出力
    ●   RAID
どうやって監視するか
どうやって監視するか

    監視ツールを使う

    メリット
     
         既に欲しい機能が作り込まれている

    オープンソース
        ZABBIX
        Hinemos
        Nagios
        hobbit(Xymon)
Google trend(world)
 hobbit      hinemos
 zabbix      Nagios
Google trend(Japan)
 hobbit      hinemos
 zabbix      Nagios
監視ツール選定 (1)

    機能
     
         スケジューリング
           
               人間のスケジュールに合わせた運用
                例:バッチ処理時間帯はある程度の負荷を許容 

    柔軟性
     
         プラグインで拡張可能か!?
         Nagios の場合、プラグインの exit code で判定
         0: OK
         1: WARNING
         2: CRITICAL
監視ツール選定 (2)

    性能
        Nagios の場合、 3 年前のマシン 1 台で 400 台く
          らいが目安
             Pentium4 3GHz, mem 1GB  で検証→ 400 台、 4000 項目程度は OK

     
         Nagios は AMQP と組み合わせてスケールアウト
          もできるらしい ( 未検証 )
監視ツール選定 (3)

    運用
     
         設定内容の管理
           
               バージョン管理システム ( ハートビーツでは SVN)
               で管理できると楽
     
         テスト環境の用意
           
               バージョン管理システムと組み合わせて
               テスト環境を構築しています
           
               テスト環境はメールが一切飛ばないようにしています
監視設定手順

2.設定・動作確認        1.チェックアウト

 Nagios(test)
                 3.コミット        SVN リポジトリ



5.設定反映
                  4 .チェックアウト
 Nagios (1)



7.設定反映

 Nagios (2)      6.チェックアウト
監視のポイント

    何のサービスが動いているか

    最適な監視
     
         必要なところ ( 使っているところ )
     
         監視項目をむやみに増やしすぎない
     
         使う側の視点
監視サーバのネットワーク

    2拠点から監視

    別キャリアのネットワーク

    Nagios(1)


                Internet   監視対象サーバ




    Nagios(2)
監視項目例 (Web サイト )

    外部                
                          内部
        HTTP/HTTPS           LoadAverage
     
         表示されるまでの時間        
                               メモリ
     
         文字列               
                               プロセス総数
     
         ログイン              
                               ログ出力
     
         シナリオ              
                               プロセス稼働状況
     
         回線使用状況            
                               DB レプリケーション
                           
                               Disk 残容量
                              Disk I/O
監視項目例 (JavaVM)

    プロセス死活

    ヒープ域不足 (Out of Memory)
   OOM Killer によりプロセスが Kill される
      
          Tomcat/Jboss プロセスサイズ
      
          ログ監視
監視項目例 (MySQL)

    Mysql Status の取得
   Web サーバから DB サーバへの接続

    レプリケーションの状況
      
          テーブルを作成して削除
システム監視だけじゃない!

    大事なのはビジネスなので、そのレイヤーまで見る!
   IBM 用語で「センス アンド レスポンド」というそうです

    例えば・・・
      
          システムのログインユーザ数を監視 (DB へのクエリ結
           果)
         広告からのサイト流入量を監視 (DB へのクエリ結果 )
閾値の調整

    閾値の決定ポリシー
     
         サービスによって様々
     
         運用しながら

    誤報
     
         なくすことはできない(宿命)
     
         減らすことはできる
           
               リトライチェック
           
               根本的な解決を !
誤報撲滅!

    遠い場合 (EC2 、中国にあるサーバ )
     
         パケットロスは容認
     
         リトライ回数を増やす

    対応しないアラートは誤報と同じ
     
         「アラートを無視する習慣」につながるので、重点
          的になくす!
     
         「アラートを無視する習慣」がついたら一巻の終わ
          り
閾値の調整例

    どこまでが正常なのか
        サイト表示: 3 秒〜 5 秒 ( 目標値 )
     
         LoadAverage : CPU のコア数
     
         SWAP : 20%
     
         プロセス総数
             Web サーバ (Apache­prefork) の場合
             稼働中のプロセス総数
                  +
             (MaxClients­ 稼働中の httpd プロセス数 )
対応の自動化

    イベントハンドラの活用

    LB から切り離す



    落とし穴に注意
    例: Apache の自動再起動スクリプト
         セマフォによるリソース管理の上限で Apache が自動起動されず、
          web サービスが復旧しない
      
          Apache 管理ユーザのセマフォの削除を手動で行い解決
監視の種類を分類
             障害監視            性能監視
●
  L1 〜 L3 ネットワーク死活
●
  L4 〜 L7 サービス監視
    ●   HTTP(S)
        POP3(S)
                         システムリソース
    ●

    ●   SMTP(S)          ●
    ●   IMAP(S)
    ●   DNS              ● CPU
        SSH
                           メモリ使用量
    ●

    ●   (S)FTP           ●
        DB への接続状態・内部
                         ● Disk I/O
    ●


●
    システムリソース
    ●
        ログインユーザ数         ● Network

        プロセス死活
                           DB の内部状態
    ●
                         ●
    ●   CPU
    ●
        Memory 使用量
    ●
        SWAP 使用量
    ●
        ディスク空き容量
    ●
        ログ出力
なぜ監視するか

    変化の把握
     
         ボトルネックの把握
           
               チューニング
              スケールアウト / スケールアップ
     
         後々必要になってくるので早い段階からの実装

    キャパシティプランニング
     
         このシステムでどれだけこなせるか
     
         どのタイミングで増設が必要になるか
どうやって監視するか

    ツールを使う
        MRTG
        Cacti
        Munin


        ZABBIX
        Hinemos
何を監視するか

    想定されるボトルネックはどこか?

    想定されるトラブルは何か?
監視項目例 (MySQL)
   Cacti
           Login Count /Session Count 
            InnoDB BuffrePool / I/O / Insert Buffer
            Row Operations / Log Buffer Size.....
さいごに・・・


 監視チームを作る
監視チームを作る

    監視と障害対応は切り離せない

    一人ではやりきれない
      
          夜間の障害対応
      
          複数同時の障害
      
          精神的・労務的な問題
   24 時間 365 日
      
          4 人は最低必要 ( 休み無し )
情報共有

    アラートメールの送信先
     
         インフラ担当だけでなく開発や企画担当の人も

    ドキュメント ( 監視仕様書 )
     
         人を育てるのにも有効
ドキュメントの書き方のコツ


    ネットワーク構成図

    アプリケーション構成図



    対応フローの確定

    監視項目ごとの状況確認方法

    監視項目ごとの対応方法
アプリケーション構成図 ( 例 )
                     hb-web01
            ハートビーツ                                      Postfix:25
Internet                 apache(123.123.1.1:80)
             共有 FW
                                      tomcat(8009)
                                                        MySQL:3306
                                                         (Master)
                                                                                                  hb-nfs01
                        apache2(123.123.1.21:80)
                                                                      ト
                                                                    ウン                                 ファイル共有
                                                               smb マ
                                                                      ト
                         vsftpd:21           sshd:22             ウン
                                                          sm   bマ     rs
                                                                           yn
                                                                                c+
                                                                                     ss
                                                                                          h
                     hb-webdev01                                                              バ
                                                                                                  ッ
                                                       Postfix:25                                  ク
                        apache(123.123.2.1:80)                                                         ア
                                                                                                        ッ
                                                                                                            プ
                                     tomcat(8009)
                                                       MySQL:3306                                               hb-backup01
                                                                                                                     MySQL:3307    MySQL:3306
                                                                                                                    Replication   Replication
                        apache2(123.123.2.2:80)                                                                         Slave         Slave

                                                                 rsync+ssh バックアップ                                                  sshd:22



                         vsftpd:21           sshd:22   svn リポジトリ
監視項目ごとの状況確認方法例
復旧方法例 (1)
復旧方法例 (2)
その他気をつける点

    ドキュメントの二重管理

    対応する人の決定
対応する人の決定の補足

    お見合いが一番怖い
     
         ダウンタイムだけが伸びたら・・・ビジネスに影響大!

    誰がボールを持っているか、常に明確に!
     
         アラート同報だと誰がボールを持っているか不明確
     
         深夜の場合、ボールを受け取った後や、対応中にホストダウン ( 居
          眠り ) の可能性も・・・
     
         ハートビーツの場合、ひとりずつ電話をかけるのでボールの持ち
          主は明確になります
          対応完了のご連絡をいただけない場合、ベストエフォートでリ
          マインドもできます
終
    ご清聴ありがとうございました

More Related Content

What's hot

5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
kasaharatt
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
Insight Technology, Inc.
 

What's hot (20)

PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5PostgreSQL安定運用のコツ2009 @hbstudy#5
PostgreSQL安定運用のコツ2009 @hbstudy#5
 
PostgreSQL運用管理入門
PostgreSQL運用管理入門PostgreSQL運用管理入門
PostgreSQL運用管理入門
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#135ステップで始めるPostgreSQLレプリケーション@hbstudy#13
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜ゆるふわLinux-HA 〜PostgreSQL編〜
ゆるふわLinux-HA 〜PostgreSQL編〜
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~
 
PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"PostgreSQL Query Cache - "pqc"
PostgreSQL Query Cache - "pqc"
 
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
PostgreSQLアーキテクチャ入門(INSIGHT OUT 2011)
 
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited「今そこにある危機」を捉える ~ pg_stat_statements revisited
「今そこにある危機」を捉える ~ pg_stat_statements revisited
 
perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)perfを使ったpostgre sqlの解析(後編)
perfを使ったpostgre sqlの解析(後編)
 
C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努C16 45分でわかるPostgreSQLの仕組み by 山田努
C16 45分でわかるPostgreSQLの仕組み by 山田努
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
Osc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatypeOsc2015 hokkaido postgresql-semi-stuructured-datatype
Osc2015 hokkaido postgresql-semi-stuructured-datatype
 

Viewers also liked

プロレス 夏サミ 20140731(公開版)
プロレス 夏サミ 20140731(公開版)プロレス 夏サミ 20140731(公開版)
プロレス 夏サミ 20140731(公開版)
Daisuke Kawada
 

Viewers also liked (12)

CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025CloudFront構築事例 ハートビーツ 20121025
CloudFront構築事例 ハートビーツ 20121025
 
プロレス 夏サミ 20140731(公開版)
プロレス 夏サミ 20140731(公開版)プロレス 夏サミ 20140731(公開版)
プロレス 夏サミ 20140731(公開版)
 
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
OSSで実現するハイブリッドクラウド4ノードクラスタ ~Pacemakerのチケット機能で災害対策~
 
宣伝費ゼロで累計200万DLに至った経緯 - 写真加工スマホアプリMy Heart Camera と Pico Sweet
宣伝費ゼロで累計200万DLに至った経緯 - 写真加工スマホアプリMy Heart Camera と Pico Sweet宣伝費ゼロで累計200万DLに至った経緯 - 写真加工スマホアプリMy Heart Camera と Pico Sweet
宣伝費ゼロで累計200万DLに至った経緯 - 写真加工スマホアプリMy Heart Camera と Pico Sweet
 
インフラエンジニアになろう!
インフラエンジニアになろう!インフラエンジニアになろう!
インフラエンジニアになろう!
 
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
 
プロジェクトとプロジェクトマネジメントの基本
プロジェクトとプロジェクトマネジメントの基本プロジェクトとプロジェクトマネジメントの基本
プロジェクトとプロジェクトマネジメントの基本
 
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
 
コミュニケーション for MSP
コミュニケーション for MSPコミュニケーション for MSP
コミュニケーション for MSP
 
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っているMySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
 

Similar to hbstudy#06

ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
Recruit Technologies
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料
Shinichiro Isago
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
Recruit Technologies
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
Takahiro Inoue
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
Shinji Tanaka
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
 

Similar to hbstudy#06 (20)

プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料VisualStudio2010ReadyDay Azureセッション資料
VisualStudio2010ReadyDay Azureセッション資料
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07Amazon Ec2 S3実践セミナー 2009.07
Amazon Ec2 S3実践セミナー 2009.07
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
 
認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤認証/認可が実現する安全で高速分析可能な分析処理基盤
認証/認可が実現する安全で高速分析可能な分析処理基盤
 
cross2012a fujya
cross2012a fujyacross2012a fujya
cross2012a fujya
 
2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services2015 0228 OpenStack swift; GMO Internet Services
2015 0228 OpenStack swift; GMO Internet Services
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
Zabbix2.0の新機能と今後の開発ロードマップ
Zabbix2.0の新機能と今後の開発ロードマップZabbix2.0の新機能と今後の開発ロードマップ
Zabbix2.0の新機能と今後の開発ロードマップ
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能Zabbix 1.8の概要と新機能
Zabbix 1.8の概要と新機能
 
Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所Javaアプリケーションサーバ 構築・運用の勘所
Javaアプリケーションサーバ 構築・運用の勘所
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護
 

Recently uploaded

Recently uploaded (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

hbstudy#06

  • 1. システムの運用・監視のコツ 株式会社ハートビーツ 坂口 利樹 2009/12/04
  • 2. agenda  インフラエンジニアのお仕事  監視とは  なぜ監視が必要なのか  どうやって監視するか  監視チームを作る
  • 3. 誰?  坂口利樹 ( さかぐちとしき )  twitter : tsakaguchi  Mail : sakaguchi.toshiki@gmail.com  インフラエンジニア  エンジニア歴 2 年半 ( しんそつ )  PostgreSQL Confarence 2009 Tokyo/Fall  実行委員
  • 4. インフラエンジニアのお仕事 定例業務 定例業務 非定例業務 設計、アーキテクト ● 管理 ● ● ボトルネックの解析・ログ解析 ● 機器・設定情報の管理 高負荷プロセスの分析 ● リソース管理 ● 運用方法・監視方法の検討・提案 ● バックアップ ● 権限・セキュリティ管理 選定 ● ● ネットワーク・サーバ 監視 ● OS ・アプリケーション ● システム・機器の稼働状況、 iDC ・回線等の選定 リソース状況・ログ出力、改竄検知 ● 負荷テスト ● 障害対応 構築 ● 問い合わせ対応・サポート ● ● サーバ、機器のセットアップ ● 社内外からの問い合わせ ラックマウント・ケーブリング SSL 証明書取得・設定
  • 5. インフラエンジニアのお仕事 定例業務 定例業務 非定例業務 設計、アーキテクト ● 管理 ● ● ボトルネックの解析・ログ解析 ● 機器・設定情報の管理 高負荷プロセスの分析 ● リソース管理 ● 運用方法・監視方法の検討・提案 ● バックアップ ● 権限・セキュリティ管理 選定 ● ● ネットワーク・サーバ 監視 ● OS ・アプリケーション ● システム・機器の稼働状況、 iDC ・回線等の選定 リソース状況・ログ出力、改竄検知 ● 負荷テスト ● 障害対応 構築 ● 問い合わせ対応・サポート ● ● サーバ、機器のセットアップ ● 社内外からの問い合わせ ラックマウント・ケーブリング SSL 証明書取得・設定
  • 7.
  • 8. 監視とは  システムやネットワークの状況変化を 知るための情報収集活動
  • 10. なぜ監視が必要なのか  大前提:ビジネス・サービスが動いている  高可用性が求められる  すべての障害を予期することは困難 機能停止 性能低下 機能監視 性能把握
  • 11. 監視の種類を分類 機能監視 性能把握 ● L1 〜 L3 ネットワーク ● L4 〜 L7 サービス ● HTTP(S) システムリソース ● POP3(S) CPU 使用量 ● ● ● SMTP(S) ● IMAP(S) ● メモリ使用量 DNS Disk I/O ● ● ● SSH ● (S)FTP ● Network( 遅延・帯域 ) ● DB への接続状態 ● DB の内部状態 ● プロセス死活 ● ログ出力 ● RAID
  • 12. 監視の種類を分類 機能監視 性能把握 ● L1 〜 L3 ネットワーク ● L4 〜 L7 サービス ● HTTP(S) システムリソース ● POP3(S) CPU 使用量 ● ● ● SMTP(S) ● IMAP(S) ● メモリ使用量 DNS Disk I/O ● ● ● SSH ● (S)FTP ● Network( 遅延・帯域 ) ● DB への接続状態 ● DB の内部状態 ● プロセス死活 ● ログ出力 ● RAID
  • 14. どうやって監視するか  監視ツールを使う  メリット  既に欲しい機能が作り込まれている  オープンソース  ZABBIX  Hinemos  Nagios  hobbit(Xymon)
  • 15. Google trend(world) hobbit hinemos zabbix Nagios
  • 16. Google trend(Japan) hobbit hinemos zabbix Nagios
  • 17. 監視ツール選定 (1)  機能  スケジューリング  人間のスケジュールに合わせた運用 例:バッチ処理時間帯はある程度の負荷を許容   柔軟性  プラグインで拡張可能か!? Nagios の場合、プラグインの exit code で判定 0: OK 1: WARNING 2: CRITICAL
  • 18. 監視ツール選定 (2)  性能  Nagios の場合、 3 年前のマシン 1 台で 400 台く らいが目安 Pentium4 3GHz, mem 1GB  で検証→ 400 台、 4000 項目程度は OK  Nagios は AMQP と組み合わせてスケールアウト もできるらしい ( 未検証 )
  • 19. 監視ツール選定 (3)  運用  設定内容の管理  バージョン管理システム ( ハートビーツでは SVN) で管理できると楽  テスト環境の用意  バージョン管理システムと組み合わせて テスト環境を構築しています  テスト環境はメールが一切飛ばないようにしています
  • 20. 監視設定手順 2.設定・動作確認 1.チェックアウト Nagios(test) 3.コミット SVN リポジトリ 5.設定反映 4 .チェックアウト Nagios (1) 7.設定反映 Nagios (2) 6.チェックアウト
  • 21. 監視のポイント  何のサービスが動いているか  最適な監視  必要なところ ( 使っているところ )  監視項目をむやみに増やしすぎない  使う側の視点
  • 22. 監視サーバのネットワーク  2拠点から監視  別キャリアのネットワーク Nagios(1) Internet 監視対象サーバ Nagios(2)
  • 23. 監視項目例 (Web サイト )  外部  内部  HTTP/HTTPS  LoadAverage  表示されるまでの時間  メモリ  文字列  プロセス総数  ログイン  ログ出力  シナリオ  プロセス稼働状況  回線使用状況  DB レプリケーション  Disk 残容量  Disk I/O
  • 24. 監視項目例 (JavaVM)  プロセス死活  ヒープ域不足 (Out of Memory)  OOM Killer によりプロセスが Kill される  Tomcat/Jboss プロセスサイズ  ログ監視
  • 25. 監視項目例 (MySQL)  Mysql Status の取得  Web サーバから DB サーバへの接続  レプリケーションの状況  テーブルを作成して削除
  • 26. システム監視だけじゃない!  大事なのはビジネスなので、そのレイヤーまで見る!  IBM 用語で「センス アンド レスポンド」というそうです  例えば・・・  システムのログインユーザ数を監視 (DB へのクエリ結 果)  広告からのサイト流入量を監視 (DB へのクエリ結果 )
  • 27. 閾値の調整  閾値の決定ポリシー  サービスによって様々  運用しながら  誤報  なくすことはできない(宿命)  減らすことはできる  リトライチェック  根本的な解決を !
  • 28. 誤報撲滅!  遠い場合 (EC2 、中国にあるサーバ )  パケットロスは容認  リトライ回数を増やす  対応しないアラートは誤報と同じ  「アラートを無視する習慣」につながるので、重点 的になくす!  「アラートを無視する習慣」がついたら一巻の終わ り
  • 29. 閾値の調整例  どこまでが正常なのか  サイト表示: 3 秒〜 5 秒 ( 目標値 )  LoadAverage : CPU のコア数  SWAP : 20%  プロセス総数 Web サーバ (Apache­prefork) の場合 稼働中のプロセス総数      + (MaxClients­ 稼働中の httpd プロセス数 )
  • 30. 対応の自動化  イベントハンドラの活用  LB から切り離す  落とし穴に注意 例: Apache の自動再起動スクリプト  セマフォによるリソース管理の上限で Apache が自動起動されず、 web サービスが復旧しない  Apache 管理ユーザのセマフォの削除を手動で行い解決
  • 31. 監視の種類を分類 障害監視 性能監視 ● L1 〜 L3 ネットワーク死活 ● L4 〜 L7 サービス監視 ● HTTP(S) POP3(S) システムリソース ● ● SMTP(S) ● ● IMAP(S) ● DNS ● CPU SSH メモリ使用量 ● ● (S)FTP ● DB への接続状態・内部 ● Disk I/O ● ● システムリソース ● ログインユーザ数 ● Network プロセス死活 DB の内部状態 ● ● ● CPU ● Memory 使用量 ● SWAP 使用量 ● ディスク空き容量 ● ログ出力
  • 32. なぜ監視するか  変化の把握  ボトルネックの把握  チューニング  スケールアウト / スケールアップ  後々必要になってくるので早い段階からの実装  キャパシティプランニング  このシステムでどれだけこなせるか  どのタイミングで増設が必要になるか
  • 33. どうやって監視するか  ツールを使う  MRTG  Cacti  Munin  ZABBIX  Hinemos
  • 34. 何を監視するか  想定されるボトルネックはどこか?  想定されるトラブルは何か?
  • 35. 監視項目例 (MySQL)  Cacti  Login Count /Session Count  InnoDB BuffrePool / I/O / Insert Buffer Row Operations / Log Buffer Size.....
  • 37. 監視チームを作る  監視と障害対応は切り離せない  一人ではやりきれない  夜間の障害対応  複数同時の障害  精神的・労務的な問題  24 時間 365 日  4 人は最低必要 ( 休み無し )
  • 38. 情報共有  アラートメールの送信先  インフラ担当だけでなく開発や企画担当の人も  ドキュメント ( 監視仕様書 )  人を育てるのにも有効
  • 39. ドキュメントの書き方のコツ  ネットワーク構成図  アプリケーション構成図  対応フローの確定  監視項目ごとの状況確認方法  監視項目ごとの対応方法
  • 40. アプリケーション構成図 ( 例 ) hb-web01 ハートビーツ Postfix:25 Internet apache(123.123.1.1:80) 共有 FW tomcat(8009) MySQL:3306 (Master) hb-nfs01 apache2(123.123.1.21:80) ト ウン ファイル共有 smb マ ト vsftpd:21 sshd:22 ウン sm bマ rs yn c+ ss h hb-webdev01 バ ッ Postfix:25 ク apache(123.123.2.1:80) ア ッ プ tomcat(8009) MySQL:3306 hb-backup01 MySQL:3307 MySQL:3306 Replication Replication apache2(123.123.2.2:80) Slave Slave rsync+ssh バックアップ sshd:22 vsftpd:21 sshd:22 svn リポジトリ
  • 44. その他気をつける点  ドキュメントの二重管理  対応する人の決定
  • 45. 対応する人の決定の補足  お見合いが一番怖い  ダウンタイムだけが伸びたら・・・ビジネスに影響大!  誰がボールを持っているか、常に明確に!  アラート同報だと誰がボールを持っているか不明確  深夜の場合、ボールを受け取った後や、対応中にホストダウン ( 居 眠り ) の可能性も・・・  ハートビーツの場合、ひとりずつ電話をかけるのでボールの持ち 主は明確になります 対応完了のご連絡をいただけない場合、ベストエフォートでリ マインドもできます
  • 46. ご清聴ありがとうございました