SlideShare a Scribd company logo
Zabbixのパフォーマンスチューニング
    & インストール時の注意点




    2010/07/30 @ 第2回ZABBIX-JP勉強会
     ZABBIX-JP 代表 寺島広大 @kodai74
      http://kodai74.blogspot.com




                   1
アジェンダ



• Zabbixのインストールとインストール時の注意点


• とりあえず監視してみる


• Zabbixサーバのチューニングポイント


• パフォーマンス測定




                2
Zabbixインストールと
インストール時の注意点



      3
Zabbixの動作環境
         要設定&チューニング!
                          監視サーバ                監視対象
データベース
   MySQL
 PostgreSQL
   SQLite
   Oracle
                                            SNMPエージェント
              データ保存                    監視
                       Zabbixサーバ

Webインターフェース                                 Zabbixエージェント
 (Apache + PHP)



     表示・設定                 障害通知




                                   パッケージインストール
                  管理者
                                   4
Zabbixサーバのインストール
• CentOS   / RHEL 
    ✓   ZABBIX-JPのyumリポジトリを登録
        # rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-
        release-5-3.noarch.rpm

    ✓   yumで一発インストール

        # yum install zabbix zabbix-server zabbix-server-mysql 
        zabbix-web zabbix-web-mysql



• Debian   / Ubuntu 
    ✓   aptで一発インストール

        # apt-get install zabbix zabbix-server




                                        5
Zabbixサーバの設定




• /etc/zabbix/zabbix_server.conf 
    ✓   DBName=データベース名
    ✓   DBUser=データベースユーザ
    ✓   DBPassword=データベースパスワード
    ✓   DBSocket=DBのソケットファイルのパス




                         6
後からハマらないためのMySQL設定
• Zabbixデータベース作成前に/etc/my.cnfを変更
• 文字化け回避のためのエンコード設定

             設定パラメータ                            説明

  default-character-set=utf8            デフォルトエンコードをutf8に設定

                                        SQLクライアントの設定に関わらず、
  skip-character-set-client-handshake
                                        サーバ側のエンコード設定を使用

• データ保存ファイルの設定

     設定パラメータ                               説明

                         単一のデータファイルの肥大化を防ぐために、テーブル
  innodb_file_per_table
                          ごとにデータファイルを作成。DB作成後は変更不可


                                  7
MySQLの起動                           DB作成


• MySQLの起動
   # service mysqld start




• DBと接続用アカウントの作成
   # mysql -uroot
   > create database zabbix;
   > grant all privileges on zabbix.* to zabbix@localhost identified by ‘pass’;



• Zabbixデータベースの初期データのインポート
   # mysql -uroot zabbix < /usr/share/doc/zabbix-server-XXX/schema/mysql.sql
   # mysql -uroot zabbix < /usr/share/doc/zabbix-server-XXX/data/data.sql
   # mysql -uroot zabbix < /usr/share/doc/zabbix-server-XXX/data/images_mysql.sal




                                       8
Zabbixの起動とWebインターフェースの設定


• Zabbixサーバの起動

   # service zabbix-server start




• Apacheの起動
   # service httpd start



• ブラウザでWebインターフェースにアクセス
    ✓ http://zabbix-server-host/zabbix




                                   9
Webインストーラの実行


• インターフェースの

設定ファイルを作成




• インストーラ完了

  ログイン画面

• Zabbixサーバのインストール完了!

                10
Zabbixエージェントのインストール

• CentOS   / RHEL 
    ✓   ZABBIX-JPのyumリポジトリを登録
        # rpm -ivh http://www.zabbix.jp/binaries/relatedpkgs/rhel5/i386/zabbix-jp-
        release-5-3.noarch.rpm

    ✓   yumで一発インストール

        # yum install zabbix zabbix-agent




• Debian   / Ubuntu 
    ✓   aptで一発インストール

        # apt-get install zabbix zabbix-agent



                                        11
Zabbixエージェントの設定&起動




• /etc/zabbix/zabbix_agentd.conf 
    ✓   Server=ZabbixサーバのIPアドレス
    ✓   Hostname=Zabbixサーバに監視対象として登録する時のホスト名
    ✓   ListenIP=ListenするIPアドレス




                            12
Zabbixエージェントの起動


• Zabbixエージェントの起動

  # service zabbix-agent start




• Zabbixエージェント側に監視設定は不要
   ✓ 監視設定はZabbixサーバで集中管理

   ✓ Zabbixエージェントは起動しておくだけ




                                 13
Zabbixのインストールまとめ


• MySQLの設定がキモ!

• ソースからコンパイルする場合はZabbixの詳細を理解し

ておかないといけないが、RPMなら簡単にインストール
• ZABBIX-JPのRPMなら日本語利用にあたって必要な設定が

あらかじめ設定済み。インストール後すぐ使える

• Debian系のパッケージは日本語関連の設定が入っていな

いため、インストール後にPHPの設定を変更する必要あり


                 14
ZABBIX-JP RPMを使ったインストール手順




   http://www.zabbix.jp/documents

                 15
ZABBIX-JPマニュアル



• ZABBIX   インストレーションガイド
    ✓   Configureでインストールする
        手順を解説
    ✓   基本的な設定とカスタマイズ




           http://www.zabbix.jp/documents

                         16
とりあえず監視してみる




     17
テスト環境

• 監視対象をたくさん用意できないので...
  ✓ 2つの監視対象(Zabbixエージェント)を複数登録して監視

  ✓ ネットワーク的に遅延があまりない環境

                    監視サーバ         •Core   2 Duo 1.8GHz 
                                  •メモリ4GB

                                  •Zabbix   1.6.9-2.JP 
              Zabbixサーバ




    Zabbixエージェント            Zabbixエージェント
                    監視対象

                      18
利用するテンプレート

• ZABBIX-JPのTemplate_OS_Linuxを利用

          設定項目              アイテム数   トリガー数   監視間隔

 死活監視                         1       1


 CPU、メモリ、ネットワーク、ディスク         32       8


 プロセス、ポート                     8       5      5分


 その他                          6       2


 合計                          47      16



                       19
ホストの登録
• 同じ監視対象を複数ホストとして登録


           ホスト名          IPアドレス       テンプレート

 test001                 A.A.A.A   Template_OS_Linux

 test002                 A.A.A.A   Template_OS_Linux

 test003                 A.A.A.A   Template_OS_Linux

              ・
              ・
              ・




                    20
確認ポイント(1) - Zabbixサーバの負荷
• Zabbixサーバにもエージェントをインストール、スク

 リーンを作成して負荷状況を確認



ロードアベレージ                 CPU使用率



メモリ使用量                    スワップ



ネットワーク                     I/O


               21
確認ポイント(2) - キュー


• [管理]   [キュー]画面で監視の遅延有無を確認




                 22
確認ポイント(3) - Zabbixサーバの状態

• [レポート]   [Zabbixサーバの状態]画面でホスト、アイ
 テムの登録数を確認




                  23
確認ポイント(4) - 監視データ
• [監視データ]   [最新データ]画面でヒストリを表示して監
視データに遅延がないかを確認




                 24
ホスト追加 - ホスト10/アイテム500

0.2




                25
ホスト追加 - ホスト20/アイテム1000

0.2




                        赤:write I/O

                26
ホスト追加 - ホスト30/アイテム1500

0.2




                27
ホスト追加 - ホスト60/アイテム3000

0.2


                        赤: user time




                28
ホスト追加 - ホスト100/アイテム5000

0.2




             29
ホスト追加 - ホスト200/アイテム10000

0.2
                     赤: user time
                    黄: iowait time




            30
ホスト追加 - ホスト500/アイテム23000

2

                    赤: user time
                   黄: iowait time




           31
キュー - ホスト500/アイテム23000

• 特に遅延は発生していない




                 32
Zabbixのチューニングポイント




        33
その前に...Zabbixサーバの監視のしくみ

• Zabbixサーバのプロセス




                        Zabbixサーバプロセス
                         が複数起動します




                   34
Zabbixサーバのプロセス

• 起動直後のZabbixサーバのログを見ると...




                      役割ごとに処理を担当する
                      プロセスが起動している




                 35
Pollerプロセスの役割


• Zabbixエージェント、SNMPエージェント、シンプル

チェックのポート監視を行う専用のプロセス


データベース   (1) 監視リスト取得                 (2) 監視


                       Zabbixサーバ                 Zabbixエージェント
         (4) データを保存    Pollerプロセス   (3) データを返す   SNMPエージェント




                              36
Pingerプロセスの役割


• Ping監視を行う専用のプロセス


 データベース (1) 監視リスト取得                (2) Ping実行
                                     (fping)

                      Zabbixサーバ
                                                監視対象機器
          (3) 結果を保存   Pingerプロセス




                             37
Zabbixサーバの設定パラメータ(1)

• 監視プロセス数の調整
     設定パラメータ                      説明
                     Zabbixエージェント、SNMPエージェント、シンプル
  StartPollers=5
                       チェックを利用した監視用のプロセス起動数

  StartPingers=1           Ping監視用のプロセス起動数



• Zabbix   1.6
     設定パラメータ                      説明
                     DB書き込み前にメモリキャッシュを行う専用のプロセ
  StartDBSyncers=1
                        ス”DBSyncers”を起動。デフォルト無効



                           38
Zabbixサーバの設定パラメータ(2)

• Zabbix   1.8
        設定パラメータ                         説明

  CacheSize=8M                     監視設定のキャッシュサイズ


  CacheUpdateFrequency=60    監視設定のキャッシュを更新する間隔


  HistoryCacheSize=8M        ヒストリデータのメモリキャッシュサイズ


  TrendCacheSize=4M          トレンドデータのメモリキャッシュサイズ

                              テキスト形式のヒストリデータの
  HistoryTextCacheSize=16M
                                     キャッシュサイズ


                              39
MySQLの設定パラメータ(1)


• InnoDBのメモリ関連のパラメータ

      設定パラメータ                        説明        デフォルト値


                           InnoDBのデータのメモリキャッ
 Innodb_buffer_pool_size                        8MB
                                    シュサイズ


 ✓ デフォルト値が少なすぎる

 ✓ 物理メモリの8割まで割り当ててOKとマニュアルに記載あり

 ✓ ただし、OS、http、Zabbixサーバ用のメモリは残しておいてね




                               40
MySQLの設定パラメータ(2)
• InnoDBのログファイル関連のパラメータ
      設定パラメータ                        説明     デフォルト値
                            更新ログを記録するための
 innodb_log_file_size                            5MB
                                ファイルサイズ

 innodb_log_files_in_group    ログファイルの作成数          2


 ✓ ログファイルはMySQLのアプリケーションログ、ではなくDB書き込み前

  にデータを追記形式で保存しておくところ
 ✓ ログファイルの実体は/var/lib/mysql/ib_logfile*

 ✓ ログファイル設定を変更したら必ず

  MySQL停止        ib_logfile*削除    MySQL起動を行うこと
 ✓ ログファイルは64∼128MB×2もあれば十分。それ以上でもあまり効果

  はない
                                41
MySQL設定の参考書籍

• MySQL   InnoDBのパフォーマンス設定
 ✓ MyISAMに比べるとInnoDBは情報が少ない

 ✓ 参照系クエリのチューニングに比べると、更新系のチューニング情報は

  とても少ない


• 実践ハイパフォーマンスMySQL        第2版
 ✓ InnoDBのパフォーマンスチューニング

  のポイントや内部動作を詳細に解説
 ✓ Zabbixに関わらず、MySQLのチューニング本として

  お勧めです


                     42
その他のMySQLのチューニングポイント



• InnoDBはCPUでスケールしない
 ✓ 少なくともCentOS5    / RHEL5のMySQL 5.0.45ではスケールしない
 ✓ CPUはコア数より速度を優先する方が良い

 ✓ Hyper   Threadingは絶対OFF (過去に問題が出たことあり)


• Googleパッチ、InnoDBプラグイン
 ✓ InnoDBまわりの改善が多数

 ✓ CPU数に応じてスケールするようになっている




                          43
パフォーマンス測定




    44
設定変更前 - ホスト500/アイテム23000

2

                    赤: user time
                   黄: iowait time




           45
MySQLのパラメータ変更
• /etc/my.cnf

              設定パラメータ                          設定値

  innodb_buffer_pool_size                    8MB   1024M


  innodb_log_file_size                        5MB   128M


  innodb_log_files_in_group                    2 (変更なし)



     ✓ Zabbixサーバ停止

     ✓ MySQLサーバ停止

     ✓ rm   -rf /var/lib/mysql/ib_logfile* 
     ✓ MySQLサーバ起動

                                 46
設定変更後 - ホスト500/アイテム23000

2

                    赤: user time
                   黄: iowait time




           47
ホスト追加 - ホスト800/アイテム38000

2

                          赤: user time
                ホスト100台
                          黄: iowait time
                追加時の負荷




           48
ホスト追加 - ホスト900/アイテム42000

2

                    赤: user time
                   黄: iowait time




           49
ホスト追加 - ホスト900/アイテム42000
• キューには溜まっていない




                 50
Zabbixサーバの設定パラメータ(1)
• 監視プロセス数の調整

     設定パラメータ                    説明

 StartPollers               5    20


 StartPingers               1    5


     ✓ Zabbixサーバの再起動




                       51
プロセス変更 - ホスト900/アイテム42000


2




            52
プロセス変更 - ホスト900/アイテム42000
• キューに溜まってしまっている




              53
Zabbixサーバのプロセス
• プロセスの動き
  ✓ Pollerプロセス、Pingerプロセスがそれぞれデータベースをオープ

   ンすることにより、不必要に起動数を増やすとパフォーマンスが落
   ちる
  ✓ 1.8では処理が変更され、パフォーマンスが向上している




                   54
Zabbixサーバの設定パラメータ(1)
• 監視プロセス数の調整


     設定パラメータ                 説明

 StartPollers               20    5

 StartPingers               5    1

 StartDBSyncers             0    1


     ✓ Zabbixサーバの再起動




                       55
DBSyncers - ホスト900/アイテム42000


2




             56
結論
• MySQLのチューニング
   ✓ innodb_buffer_pool_sizeとinnodb_log_file_sizeは必ず修正した

    方が良い
   ✓ I/Oパフォーマンスが向上する




• Zabbixサーバのプロセス
   ✓ キューに溜まっていなければPollerやPingerプロセス数の設定を変

    更しても効果なし。むしろ逆効果の場合もある
   ✓ StartDBSyncersは一定の効果あり




                          57
分散監視機能 (大規模システムの監視)

• Zabbixプロキシ
   ✓   Zabbixサーバに代わって監視を行う専用のサーバ
   ✓   スケールアウトすることにより監視の負荷分散が可能
   ✓   プロキシを使えばより監視対象を増やせる
                              監視設定と監視データの
                                 一元管理


                  Zabbixサーバ
  Zabbixプロキシサーバ               Zabbixプロキシサーバ




                   監視対象


                      58

More Related Content

PDF
Linux女子部 systemd徹底入門
PDF
AWSのログ管理ベストプラクティス
PDF
RHEL7/CentOS7 NetworkManager徹底入門
PPTX
Redisの特徴と活用方法について
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
PDF
Ansibleで始めるインフラ構築自動化
PDF
怖くないSpring Bootのオートコンフィグレーション
PPTX
さくっと理解するSpring bootの仕組み
Linux女子部 systemd徹底入門
AWSのログ管理ベストプラクティス
RHEL7/CentOS7 NetworkManager徹底入門
Redisの特徴と活用方法について
アーキテクチャから理解するPostgreSQLのレプリケーション
Ansibleで始めるインフラ構築自動化
怖くないSpring Bootのオートコンフィグレーション
さくっと理解するSpring bootの仕組み

What's hot (20)

PDF
単なるキャッシュじゃないよ!?infinispanの紹介
PPTX
Redis勉強会資料(2015/06 update)
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
Fluentdのお勧めシステム構成パターン
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PPTX
MongoDBが遅いときの切り分け方法
PDF
MySQLレプリケーションあれやこれや
PDF
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
PDF
【メモ】一般的に設計書に定義される項目例
PPTX
Python製BDDツールで自動化してみた
PPTX
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
PDF
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
PDF
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PPTX
マイクロサービスにおける 結果整合性との戦い
PDF
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
PPTX
Metaspace
PDF
コンテナにおけるパフォーマンス調査でハマった話
PDF
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
PDF
SQL大量発行処理をいかにして高速化するか
PDF
待ち事象から考える、Sql server の改善ポイント
単なるキャッシュじゃないよ!?infinispanの紹介
Redis勉強会資料(2015/06 update)
これからSpringを使う開発者が知っておくべきこと
Fluentdのお勧めシステム構成パターン
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
MongoDBが遅いときの切り分け方法
MySQLレプリケーションあれやこれや
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
【メモ】一般的に設計書に定義される項目例
Python製BDDツールで自動化してみた
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Db2 v11.5.4 高可用性構成 & HADR 構成パターンご紹介
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
マイクロサービスにおける 結果整合性との戦い
macOSの仮想化技術について ~Virtualization-rs Rust bindings for virtualization.framework ~
Metaspace
コンテナにおけるパフォーマンス調査でハマった話
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
SQL大量発行処理をいかにして高速化するか
待ち事象から考える、Sql server の改善ポイント
Ad

Similar to Zabbixのパフォーマンスチューニング & インストール時の注意点 (20)

PDF
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
PDF
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
PDF
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
PDF
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
PDF
Zabbix 1.8の概要と新機能
PDF
オープンソースでシステム監視!統合監視ソフトウェアZabbix
PDF
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
PDF
オープンソースでシステム監視!統合監視ソフトウェアZabbix
PDF
Zabbix 1.8の概要と新機能
PDF
Zabbix2.0の新機能と今後の開発ロードマップ
PDF
12 cyberagent
PDF
Zabbix社内勉強会資料-Zabbix2.0新機能紹介編-
PPTX
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
PDF
Zabbix-jp study #4 20111020 session2
PDF
Zabbix2.0.3の新機能と変更点
PDF
Zabbix製品・サービス紹介資料
PPTX
5分でインストール!awsでzabbix3.0
PPT
Zabbix-OSC-Fukuoka
PDF
Zabbixを使った効果的な運用管理の実現
PDF
Zabbixをもっと便利に!安全に!
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!統合監視ソフトウェアZABBIXの機能と利用事例のご紹介
統合監視ソフトウェア Zabbix新バージョン2.0の紹介
オープンソースでシステム監視!統合監視ソフトウェア"Zabbix 1.8"の新機能とデモ
Zabbix 1.8の概要と新機能
オープンソースでシステム監視!統合監視ソフトウェアZabbix
オープンソース統合監視ソフトウェア Zabbix 2.0によるクラウド監視
オープンソースでシステム監視!統合監視ソフトウェアZabbix
Zabbix 1.8の概要と新機能
Zabbix2.0の新機能と今後の開発ロードマップ
12 cyberagent
Zabbix社内勉強会資料-Zabbix2.0新機能紹介編-
自宅ラック勉強会 2.2 夏のZabbix特別教室 ~構築編~
Zabbix-jp study #4 20111020 session2
Zabbix2.0.3の新機能と変更点
Zabbix製品・サービス紹介資料
5分でインストール!awsでzabbix3.0
Zabbix-OSC-Fukuoka
Zabbixを使った効果的な運用管理の実現
Zabbixをもっと便利に!安全に!
Ad

More from Kodai Terashima (6)

PDF
ZabbixによるOpenStack/OpenContrailの監視
PDF
第6回 ZABBIX-JP勉強会
PDF
Zabbix 2.2の新機能とZabbixオフィシャルサービスの紹介
PDF
Zabbix in 2012
PDF
Why don't you start local community
PDF
ラトビアの生活とZabbix 2.0 & カンファレンスの話
ZabbixによるOpenStack/OpenContrailの監視
第6回 ZABBIX-JP勉強会
Zabbix 2.2の新機能とZabbixオフィシャルサービスの紹介
Zabbix in 2012
Why don't you start local community
ラトビアの生活とZabbix 2.0 & カンファレンスの話

Zabbixのパフォーマンスチューニング & インストール時の注意点