【わたしに♥おまかせ Zabbix①】Zabbixの構成要素とパラメーターについて

Zabbix, まるごとおまかせZabbix, わたしにおまかせZabbix, 製品紹介

はじめまして!プラットフォーム技術部の齊藤(沙)です。

私の所属するプラットフォーム技術部では、今年の1月から Zabbix の環境構築・保守サポートを低価格・短納期で実現する新サービス「まるごとおまかせZabbix」の提供を開始しました。

そんな「まるごとおまかせZabbix」をより便利で有用なサービスとするために日々奮闘中の私がアークシステム ザビ家(あくまで諸先輩方の趣味ですが。。)の一員として、Zabbix に関する日々の取り組みやナレッジをご紹介していきます!

まとめ記事作りました♥

Zabbixとは?

Zabbix とはオープンソースの監視ソフトウェアであり、サーバー、ネットワーク、アプリケーションなど様々な監視を行う際に使われる製品です。

アークシステムでは約10年前から Zabbix に着目し、技術のキャッチアップやソリューションへの活用を進めてきました。

Zabbixを知ろう – 構成要素編

まずは整理も兼ねて Zabbix の構成要素についておさらいしてみましょう。Zabbix の基本的な構成要素は・・・

  • Webインターフェース監視設定及び監視履歴情報を保管する
    • Web ブラウザを介して設定の変更、監視結果の確認を行うユーザーインターフェース
  • Zabbixサーバー
    • 監視や通知処理を行うマネージャーサーバー
  • データベース
    • 監視設定及び監視履歴情報を保管する

の3つで、その他にも監視や運用要件に合わせて導入を検討すると・・・

  • Zabbixエージェント
    • 監視対象上で動作するより詳細な監視を行うための監視エージェント
  • Zabbix Java Gateway
    • Zabbix サーバーと AP サーバーの間を仲介して JMX 監視を行う
  • Zabbixプロキシ
    • Zabbix サーバーの代わりに監視を行い、監視負荷の分散や通信要件の簡素化を図る
  • Zabbix Sender
    • パフォーマンスデータを Zabbix サーバーで処理するために送信するコマンドラインユーティリティ
  • Zabbix get
    • Zabbix エージェントと通信して、エージェントから必要な情報を取得するのに使用するコマンドラインユーティリティ

があります。改めて列挙してみると結構たくさんありますね。

Zabbixを知ろう – 設定ファイル編: Webインターフェース

次に、各構成要素の仕様について調べるためにそれぞれの設定ファイルを確認していきます。

まずは「Web インターフェース」です。PHP で開発されており、PHP が利用可能な Web サーバー上で動作します。「Web インターフェース」に関する設定ファイルは以下があります。

※ 各設定ファイルの Path は Web サーバーに Apache を利用した場合の例です。

/etc/zabbix/web/zabbix.conf.php

こちらは、主にWebインターフェースがデータベースへ接続するための設定が記載されるファイルです。

$DB['TYPE']     = 'MYSQL';                      #データベースタイプ
$DB['SERVER']   = 'localhost';                  #データベースの宛先
$DB['PORT']     = '0';                          #データベースのPort番号
$DB['DATABASE'] = 'zabbix';                     #データベース名
$DB['USER']     = 'zabbix';                     #データベースへの接続ユーザー
$DB['PASSWORD'] = 'zabbix';                     #データベースへの接続ユーザーパスワード
$ZBX_SERVER      = 'localhost';                 #Zabbixサーバーの宛先
$ZBX_SERVER_PORT = '10051';                     #ZabbixサーバーのPort番号
$ZBX_SERVER_NAME = 'Zabbix-Server01';           #Webインターフェース上に表示されるZabbixサーバーの名前

Web インターフェースへの初回アクセス時のインストール処理で指定した情報はこちらの設定ファイルに記載がされます。接続先のデータベースや Web インターフェースに表示される Zabbix サーバーの名前を変更したい場合に編集します。

/etc/zabbix/web/maintenance.inc.php

こちらは、Webインターフェース自身のメンテナンスを行うための設定が記載されるファイルです。

define('ZBX_DENY_GUI_ACCESS', 1);                              #Webインターフェースのメンテナンスの有効(1)/無効(1以外)
$ZBX_GUI_ACCESS_IP_RANGE = array('127.0.0.1');                 #メンテナンス中でも接続可能とするIPアドレスのレンジ
$_REQUEST['warning_msg'] = 'Zabbix is under maintenance.';     #メンテナンス中にWebインターフェースに表示するインフォメーションメッセージ

Web インターフェースのメンテナンスモード設定は Web サーバーの再起動が不要で、設定変更後即時反映されます。マルチテナント方式での利用時にはとっても便利な機能ですね。

もうちょっとだけ待っててねっ!

/etc/httpd/conf.d/zabbix.conf

こちらは Web サーバー用の設定が記載されるファイルです。

php_value max_execution_time 300                                #動作処理に対してPHPが強制終了するまでの時間(秒)
php_value memory_limit 128M                                     #PHPによるメモリ使用量の制限値
php_value post_max_size 16M                                     #POST およびファイルのアップロードで許可される最大サイズ
php_value upload_max_filesize 2M                                #ファイルのアップロードで許可される最大サイズ
php_value max_input_time 300                                    #スクリプトが POST、GET などの入力をパースする最大時間(秒)
php_value date.timezone Asia/Tokyo                              #タイムゾーンの指定

初期構築時にタイムゾーンの設定を行うために編集するファイルなので比較的馴染みのある設定ファイルです。構築後も、 以下のような事象が発生した場合は本ファイルを編集します。

  • Web インターフェース上で履歴データや概要ページを描画出来なくなった場合
    • memory_limit」をチューニング
  • 大量の監視設定を XML でインポート/エクスポートする際、エラーが出力されて処理が進まない場合
    • post_max_size」「upload_max_filesize」をチューニング
upload_max_filesize を増やそう

まとめ

一言で Zabbix といっても様々な構成要素が存在し、それぞれに設定ファイルが存在します。Web インターフェースだけでもいろいろな場所にいろんな設定がされているので要チェックです。

Webインターフェースのチューニングは「/etc/httpd/conf.d/zabbix.conf」で!

次回は Zabbix サーバーに関する設定ファイルと内部プロセスについて一緒に勉強しましょう!

次回の記事はこちら。

アークシステムでは、Zabbixの環境構築や保守サポートを低価格・短納期で実現する「まるごとおまかせZabbix」を提供しています。 本サービスの詳細や、Zabbixを活用したソリューションにご興味をお持ちの方がいらっしゃいましたら サービス紹介ページ からお気軽にお問合わせ下さい。

  • 株式会社アークシステムの来訪管理・会議室予約システム BRoomHubs
  • 低コスト・短納期で提供するまるごとおまかせZabbix