2017年5月17日Zabbix,まるごとおまかせZabbix,わたしにおまかせZabbix,製品紹介
こんにちは!プラットフォーム技術部の齊藤(沙)です。
前回は Zabbix の構成要素と、その一つであるWebインターフェースについて確認しました。今回は Zabbix の構成要素の中でも監視や通知機能を担っている Zabbixサーバー について確認していきたいと思います。
前回の記事はこちら。
まとめ記事作りました♥
Zabbixを知ろう -設定ファイル編: Zabbixサーバー-
ZabbixサーバーはC言語で開発されており、Windows を除く Linux、Unix 系のOS上で動作する監視マネージャーです。Zabbixサーバーに関する設定ファイルは以下があります。
/etc/zabbix/zabbix_server.conf
こちらは、内部プロセスの起動数や、ロギング、データベースの接続先など Zabbixサーバー に関する様々な設定が記載されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | ListenPort=10051
SourceIP=
LogType= file
LogFile= /var/log/zabbix/zabbix_server .log
LogFileSize=0
DebugLevel=3
PidFile= /var/run/zabbix/zabbix_server .pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket= /tmp/mysql .sock
DBPort=3306
StartPollers=5
StartIPMIPollers=0
StartPollersUnreachable=1
StartTrappers=5
StartPingers=1
StartDiscoverers=1
StartHTTPPollers=1
StartTimers=1
StartEscalators=1
JavaGateway=127.0.0.1
JavaGatewayPort=10052
StartJavaPollers=2
StartVMwareCollectors=0
VMwareFrequency=60
VMwarePerfFrequency=60
VMwareCacheSize=8M
VMwareTimeout=10
SNMPTrapperFile= /var/log/snmptt/snmptt .log
StartSNMPTrapper=1
ListenIP=127.0.0.1
HousekeepingFrequency=1
MaxHousekeeperDelete=5000
SenderFrequency=30
CacheSize=8M
CacheUpdateFrequency=60
StartDBSyncers=4
HistoryCacheSize=16M
HistoryIndexCacheSize=4M
TrendCacheSize=4M
ValueCacheSize=8M
Timeout=3
TrapperTimeout=300
UnreachablePeriod=45
UnavailableDelay=60
UnreachableDelay=15
AlertScriptsPath= /usr/lib/zabbix/alertscripts
ExternalScripts= /usr/lib/zabbix/externalscripts
FpingLocation= /usr/sbin/fping
Fping6Location= /usr/sbin/fping6
SSHKeyLocation=
LogSlowQueries=0
TmpDir= /tmp
StartProxyPollers=1
ProxyConfigFrequency=3600
ProxyDataFrequency=1
AllowRoot=0
User=zabbix
SSLCertLocation=${datadir} /zabbix/ssl/certs
SSLKeyLocation=${datadir} /zabbix/ssl/keys
SSLCALocation=
LoadModulePath=${libdir} /modules
LoadModule=
TLSCAFile=
TLSCRLFile=
TLSCertFile=
TLSKeyFile=
|
とってもたくさんのパラメーターがありますね!
初期構築時のセットアップや監視機能の拡張、パフォーマンスチューニングと様々なシーンで編集する機会がある設定ファイルです。
バージョンが進むにつれて、パラメーターも増加しており、LTS(長期サポート)バージョンでは3.0から新たに通信暗号化に関連するパラメーターが追加されています。
Zabbixサーバー のことをもっとよく知るために、続いて設定ファイルにも記載がある各内部プロセスについて確認していきます。
Zabbixを知ろう -Zabbixサーバー編: 内部プロセス その①-
Zabbix の構成要素の一つである Zabbixサーバー ですが、内部では役割に応じて様々な内部プロセスが動作しています。今回は監視機能を担う内部プロセスを中心に確認していきます。
Poller
Poller は、Zabbixエージェント や SNMP、シンプルチェックの一部などのポーリング系の監視を行います。Zabbix における監視項目の多くは Poller が実行を担うこととなるため、監視のパフォーマンスに大きく関連する内部プロセスです。
Poller の Busy 率が高い値で推移し続けたり、上記ポーリング系の監視 Queue の滞留などパフォーマンスに問題が生じた場合、Poller の起動数を増やすことでそれらの問題に対処します。
Poller に限った話ではないですが、各内部プロセスはデータベースへコネクションを張るため、起動数を増やした場合、データベース上の接続上限数が超過しないよう注意が必要です。
ICMP Pinger
ICMP Pinger は、fping を用いて ICMP Ping 監視を行います。
ICMP Pinger は監視対象機器が存在する Network レスポンスの影響を受けやすく、レイテンシが大きい場合、ICMP Pinger の Busy 率も上昇します。
Busy 率が高い値で推移し続けたり、Ping 監視の Queue の滞留が生じた場合は起動数を増やすことで対処します。ICMP による死活監視は多くの監視対象で実施すると思いますので、監視対象を追加時には ICMP Pinger の Busy 率に対して注視が必要です。
HTTP Poller
HTTP Poller は、HTTP や HTTPS によるWEB監視を行います。
HTTP Poller は、監視対象となるWebシステムのレスポンスの影響を受けやすく、レスポンスが悪い場合 HTTP Poller の Busy 率が上昇します。
Busy 率が高い値で推移し続けたり、WEB監視の Queue の滞留が生じた場合は、起動数を増やしたり、WEB監視設定上の TimeOut 設定を縮めることで対処します。
IPMI Poller
IPMI Poller は、IPMI によるHW監視を行います。
デフォルト設定では無効(起動数0)となっているため、HW監視を行う場合は起動数を増やし、有効化する必要があります。
IPMI Poller は監視対象のHW管理モジュールへコネクションを張ります。起動数を増やすとそれに応じてHW管理モジュールへの接続数も増加しますので、起動数を増やす場合にはHW管理モジュールのセッション数の上限値を超えないよう注意が必要です。
(私はZabbix触りたての頃、軽率に IPMI Poller の起動数を増やしてしまい、セッション上限超えの接続エラーを多発させ、監視通知の滞留を引き起こしてしまった苦い思い出があります。。。)
Java Poller
Java Poller は、 JMX(Java Management Extensions) 監視を行います。
JMX監視を行うためには、Zabbix の構成要素の一つである Zabbix Java Gateway の導入及び起動が必要となります。Java Poller は上記 Zabbix Java Gateway を介して、TOMCAT などのAPサーバーからスレッドやヒープに関する値を取得します。
起動数を変更する際には、Zabbix Java Gateway の START_POLLERS の値を上回らないよう注意が必要です。
Proxy Poller
Proxy Poller は Zabbix の構成要素の一つであるZabbixプロキシをパッシブモードで動作させている場合、それを介して監視を行います。
他の内部プロセス同様、Busy 率が上昇した場合は、起動数を増やすことで対処します。
Unreachable Poller
Unreachable Poller はネットワークエラー等で監視が行えなかった監視項目の再監視を行います。
ネットワークや監視対象の高負荷、障害発生時など監視が行えない状態が生じるとBusy率が急激に上昇するため比較的注視が必要な内部プロセスです。
Busy 率が上昇している場合は、上記障害や負荷の解消、リリース前の監視不能な監視対象のメンテナンスモード適用などの対応と併せて、起動数を増やすことで対処します。
まとめ
今回は、Zabbixサーバーの設定ファイルと、Zabbixサーバーの監視実行を主に担う内部プロセスについて、確認しました。考慮点は多々あるものの・・・Zabbixサーバーのチューニングは、
- 内部プロセスの起動数を増やす!※不用意に増やしすぎない!
- 各内部プロセスのBusy率は平常時30%以下になるように調整する
が大切ですね!
次回は、通知処理やデータベースへの書き込みなどを担う内部プロセスについて一緒に勉強しましょう!
次回の記事はこちら。
アークシステムは Zabbix Japan LLC の認定パートナー企業です。
当社はZabbixバージョン1.1の時代から監視ソリューションの活用を進め、Zabbixに関する製品・サービスの販売に加え、Zabbix関連サービスの提供を行っています。
Zabbixに関する
お問い合わせはこちらからお願いいたします。