Zabbixのインストールと設定方法

Contents


Zabbixはオープンソースの統合監視ツールのひとつです。Nagios, Xymonと異なりサポートを受けやすいため、徐々にSIer案件として増えつつあります。Nagios, Xymonに比べGUI操作が多いのも、SIに好まれる理由のひとつです。 GUI操作が多いという事は、初心者の学習コストが低い代わりに自動化しづらいという事を意味します。ですので、サーバ台数は少ないものの厳密な監視が求められるような大企業の社内システムとしてお勧めです。

私はZabbix, Nagios, Xymonを実務で構築運用した事がありますが、Zabbixはとにかく面倒臭いというのが率直な感想でした。スピード感や自動化が求められるようなBtoC, Web系ではNagiosの方が使いやすいというのが個人的な感想です。

RDBMS インストールと設定

他の統合監視ツールは監視結果をRRD (Round Robin Database)に保存しますが、、ZabbixはRDBMSに監視結果を保存します。Zabbixが使用可能なRDBMSは、Oracle, MySQL, Postgresなど多数のRDBMSを利用する事ができます。 Zabbixサーバを使用するためには、まずRDBMSのインストールと設定を行う必要があります。

MySQL インストール 方法 [必須]

このページでは、多数派であるMySQLを利用したZabbixの構築方法を紹介します。インストール手順を簡単にしたいならば、MySQL5.1を、最新化による性能向上を期待したいならばMySQL5.6を選択ください。

MySQL 5.1 インストール 方法 [必須]

以下のコマンドでMySQL5.1をインストールします。

MySQL 5.6 インストール 方法 [必須]

CentOSの多くの場合は、mysql-libs 5.1がインストールされています。mysql-libs 5.1はMySQL5.6をインストールする際に、依存関係のエラーが発生してしまいます。

mysql-libs 5.1のアンインストールはやや注意が必要です。普通にアンインストールしてしまうと、crond, sysstatのような重要なパッケージも同時にアンインストールされてしまいます。この問題を防ぐのが互換性ライブラリMySQL-shared-compatです。MySQL-shared-compatをインストールする事によって、mysql-libsの互換性を維持する事ができます。

具体的には、以下のようにMySQL-shared-compatをインストールした後にmysql-libsをアンインストールします。このような手順を踏む事によって、crond, sysstatのアンインストールを防ぐことができます。

MySQLサーバはRPMパッケージでインストールするのがお勧めです。MySQL公式サイトからダウンロードしても良いですが、MySQL公式サイトは何かと面倒くさいです。お勧めなのは、北陸先端科学技術大学院大学です。MySQLのマイナーバージョンは適宜変更する必要がございますが、以下コマンドでRPMをインストールします。

MySQL innodb チューニング [任意]

MySQLはメモリの大きさに応じたチューニングが必要となります。監視サーバのスペックに応じたMySQLチューニングを行う事で、性能改善が期待できます。 環境に応じて適切な値が異なるので、確たる事は言えませんが、ここでは「書籍」のZabbix 統合監視 実践入門 version 2.2対応の設定例を紹介します。/etc/my.cnfのmysqldセクションに以下を追加します。

MySQL 文字コードの設定 [必須]

書籍や公式マニュアルを見ても必須という主張は見当たりませんが、私は過去の経験から文字コードの確認は必須であると考えています。 文字コードの確認を怠ると後々面倒な問題に巻き込まれます。 以下のようなコマンドを用いて、MySQLが使用する文字コードを調査します。恐らくデフォルト設定の場合ですと、utf8, latin1が混在していると思います。

設定方法は色々ありますが、私の場合は/etc/my.cnfに以下を加筆し、文字コードをUTF8に統一します。

MySQLを再起動して設定を反映させます。その後、設定を確認します。

MySQL データベースとユーザの作成 [必須]

MySQLにログインし、データベースとユーザを作成します。この設定例は、自宅サーバなのでユーザに対するパスワード定義を省略しておりますが、大企業の環境ではパスワード設定を忘れずに行って下さい。

Zabbix Serverのインストール

Zabbix リポジトリの登録

以下のRPMをインストールすると、自動的にZabbixリポジトリが登録されます。以下のコマンド例は、CentOS6 64bitを前提としていますが、他OS ( 例 : CentOS5, ubuntu, 32bit )もサポートされています。OSやアーキテクチャが以下の例と異なる場合は、Zabbixリポジトリを参照しつつ適切なRPMをインストールして下さい。

 Zabbix Server インストール

以下のyumコマンドでZabbixサーバをインストールします。

なお、上記コマンドはMySQLを前提としていますが、他RDBMSを使用する場合は適宜パッケージを変更して下さい。yum searchコマンドなどを使用すれば、必要なパッケージはすぐに見つかると思います。

Zabbix Server 初期データの投入

Zabbixが必要とする初期データを投入します。初期データは/usr/share/doc/zabbix-server-mysql-2.2.4/create/に格納されています。データ間で依存関係があるため、schema.sql, images.sql, data.sqlの順番に投入して下さい。

データが投入された事を確認するために、2,3個適当にSQLを入力してみましょう。

Zabbix Server データベース接続の設定

Zabbix ServerはRDBMSに接続し、監視結果をRDBMSに保存します。RDBMSへの接続情報を/etc/zabbix/zabbix_server.confに設定します。設定例は以下の通りです。なお、パスワードを未定義の場合は、DBPasswordはコメントアウトされたままにして下さい。

 Zabbix Server の起動

以下のコマンドでZabbix Serverを起動させます。

起動後、zabbix_serverプロセスが存在するかを確認します。この時、データベース接続設定に誤りがあるならば、プロセスは停止しzabbix_serverプロセスが確認できなくなります。

zabbix_serverプロセスが存在しない場合は/var/log/zabbix/zabbix_server.logを確認します。以下はログ出力の一例ですが、データベース接続でエラーが発生している事が分かります。

Zabbix WEBインターフェースのインストール

Zabbix WEBインターフェース のインストール

Zabbixはブラウザによるインターフェースを備えています。以下のコマンドでWEBインターフェースをインストールして下さい。

WEBインターフェースはApacheによるWEBサーバを前提としております。Apacheがインストールされている場合は、自動的に以下のような/etc/httpd/conf.d/zabbix.confというファイルが作成されます。

zabbix.confの設定を反映させるために、Apacheを再起動します。

Zabbix WEBインターフェース 初期設定

Zabbix WEBインターフェース はユーザフレンドリーなWEB GUIによる初期設定画面を備えています。http://<ZabbixサーバのIPアドレス>/zabbixにアクセスし、設定画面を表示させます。

Zabbix 初期設定 Welcome

「Next」を押下し、次の設定画面に進みます。 zabbix インストール 初期設定画面1

Zabbix 初期設定 check of pre-requisites

PHPに関する設定確認画面が表示されます。 Zabbixの要件に準拠していない項目が赤字で表示されます。 zabbix インストール 初期設定画面2 何が赤字で表示されるかは、PHP設定やZabbixバージョンに依存します。Zabbix2.2かつPHP初期設定である場合は、”PHP time zone”が赤字で表示されると思います。 PHPの環境変数を設定する方法は以下の3つが存在します。

  • /etc/php.ini に設定を記述
  • Apache設定ファイル内に記述
  • アプリケーション内部で記述

この場合は、Zabbixが動作している範囲のみ影響を与えるのが無難であるので、Apache設定ファイルに記載する方法を採用します。/etc/httpd/conf.d/zabbix.confを以下のように編集します。

設定を反映させるために、apacheをreloadします。その後、赤字で表示された要件違反が解消されている事を確認します。

Zabbix 初期設定 configure DB connection

Zabbix WEBインターフェースからDBへの接続情報を設定します。データベース名、データベース接続ユーザ、データベース接続パスワードを設定します。

zabbix_install_003

Zabbix 初期設定 Zabbix Server details

Zabbix WEBインターフェースからZabbix サーバへの接続情報を設定します。恐らくZabbix WEBインターフェースとZabbix サーバは同一OS内にデフォルト設定でインストールする人が多いので、そのまま”Next”を押下してください。 zabbix_install_004

Zabbix 初期設定 Pre-Installation Summary

WEBインターフェース インストール前に設定を確認します。設定内容が意図通りである事を確認し、”Next”を押下します。 zabbix_install_005

Zabbix 初期設定 Install

インストール実行後に、”OK”と表示される事を確認します。 zabbix_install_006

Zabbix WEBインターフェース 動作確認

Zabbix WEBインターフェースを使用できる事を確認します。”http://<ZabbixサーバのIPアドレス>/zabbix”にアクセスし、以下のユーザ名とパスワードでログインできる事を確かめます。

  • ユーザ名 : Admin
  • パスワード : zabbix

zabbix_install_007

Zabbix エージェントのインストール – Linux 環境

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

監視エージェントとは、監視サーバからの要求に応答する常駐プログラムの事を指します。Zabbixはエージェント監視もエージェントレス監視の両方が出来ますが、エージェントをインストールした方がより詳細な情報を取得できます。

エージェントは、Zabbixリポジトリ登録後、yumコマンドでインストールする事ができます。

以下のようなコマンドでエージェントを起動させます。

エージェントの設定

エージェントの設定を行います。最低限必要となる設定は、監視サーバIPアドレスとホスト名です。/etc/zabbix/zabbix_agentd.confをエディタで開き、以下のように編集します。

設定反映のため、エージェントを再起動します。

Zabbix エージェントのインストール – Windows 環境

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

Zabbix公式サイトより、Windows版Zabbix エージェントをダウンロードします。公式サイトのトップページで「Donwload」を押下して下さい。

zbx_windows_download_001

Zabbix 2.2系の「Download」リンクより、「zabbix_agents_2.2.7.win.zip」をダウンロードします。

zbx_windows_download_002

ダウンロードしたzipファイルを適当なディレクトリに展開します。以下スクリーンショットの設定例は、C:\Zabbix配下に展開して おります。

zbx_windows_download_003

Zabbix エージェントの設定

まずは、Zabbixエージェントの設定ファイルを作成します。「zabbix_agents_2.2.7.win\conf\zabbix_agentd.win.conf」にサンプルの設定ファイルが存在しますが、改行コードがLinux仕様になっていて非常に残念なサンプル設定になっております。

zbx_windows_install_001

この残念なサンプル設定か、またはLinux版zabbix_agentd.confを参考に設定ファイルを作成します。以下は、Windows版Zabbixエージェントの設定例です。

マニュアルにはWindows版でもLinux版でもzabbix_agentd.confの書式は同じと書かれていますが、実際にはWindows版でサポートされる設定はLinux版に比べ少ないです。Linux版では指定可能なPidFileをWindows版で指定するとエラーになります。エラーメッセージを見つつ、適宜、zabbix_agentd.confを作成して下さい。

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

「C:\Zabbix\zabbix_agents_2.2.7.win\bin\win64\」配下に「zabbix_agentd.exe」というファイルが存在します。このファイルをサービスとして起動できるようにする事で、Zabbixエージェントのインストールが完了します。

zbx_windows_install_002

Zabbixエージェントのインストールを行うには、まずコマンドプロンプトを管理者として実行します。

zbx_windows_install_003

Zabbixエージェントをサービスとして登録するには、zabbix_agentd.exeに–configと–installのオプションをつけて実行します。

サービスコンソールからZabbixエージェントを起動しても良いですが、サービスコンソール経由ではエラーメッセージを確認する事ができません。以下のように、zabbix_agentd.exeに–configと–startのオプションつけて、コマンドラインでZabbixエージェントを起動してみましょう。

正常に起動できればsuccessと表示されますし、zabbix_agentd.confにエラーがあればエラーメッセージが表示されます。

zbx_windows_install_004

Zabbix エージェント ファイアウォールの解放

tcp10050が疎通可能になるよう、適宜ファイアウォールを解放します。以下、Windows Server 2012 R2の設定例を示します。

Firewallの編集画面を開き、「Inbound Rules」「New Rule」の順で押下します。

zbx_windows_firewall_001

「Program」を選択します。

zbx_windows_firewall_002

「This program path:」にzabbix_agentd.exeへのファイルパスを指定します。

zbx_windows_firewall_003

Action, Profile, Nameを適宜編集し、新しいルールが追加された事を確認します。

zbx_windows_firewall_004

Zabbixサーバ側からzabbix_getコマンドを実行し、疎通可能な事を確認します。

Quick Start

Zabbixの動作を理解するために、「とりあえず動かしてみる」手順をまとめます。

WEBインターフェースの日本語化

Nagios, Xymonと違って高機能なZabbixは、どちらかというとエンタープライズ向けのソフトウェアです。ですので、恐らく多くの現場では日本語化のニーズがあると思います。

日本語化を行うには、まず、以下のように日本語パッケージをインストールする必要があります。

その後、WEBインターフェースにアクセスし、 Administration, Usersの順に押下します。プルダウンをUser GroupsからUsersに切り替え、該当のユーザをクリックします。

zab_japanese_001

Languageを”Japanese (ja_JP)”に変更し、”Save”を押下します。

zab_japanese_002

“Save”押下後に画面遷移を1回行うと、表示が日本語に切り替わります。

zab_japanese_003

localhostの監視

Zabbix 2.2系は、localhostに対する監視設定は投入されているものの、デフォルトの状態は無効になっています。設定, ホスト, ステータス欄の順に押下し、ステータスを”無効”から”有効”に切り替えます。

zab_minimal_monitor_001

1,2分待った後、監視データ, 最新データの順で押下します。”最新の値”欄に値が記録されている事から、監視が開始された事を確認します。

zab_minimal_monitor_002

監視対象の追加

監視対象のホストを追加する方法を説明します。設定, ホスト, ホストの追加の順に押下します。

zab_minimal_monitor_003

ホスト名, 所属グループ, IPアドレスを入力します。

zab_minimal_monitor_004

“テンプレート”タブを押下し、テンプレートの設定を行います。テンプレートとは、監視設定のセットの事を指します。

「新規テンプレートをリンク」欄に、”Linux”等の文字を入力します。すると、テンプレートの候補が表示されるので、適当なテンプレートを選びます。テンプレートを選び終わったら、”追加”を押下します。

zab_minimal_monitor_005

“保存”を押下します。

zab_minimal_monitor_006

「監視データ」, 「最新データ」の順に押下します。「グループ」「ホスト」を「すべて」に変更し、「ホスト」欄に先ほど追加したホストが表示される事を確認します。

zab_minimal_monitor_007

Tips

Zabbix バージョンアップ

Zabbix バージョンアップ 2.0 to 2.2
Zabbix バージョンアップ 2.0 to 2.2 – 事前準備

Zabbixのサービスを停止させます。

バージョンアップに失敗した時の切り戻しのために、バックアップを取得します。仮想化技術を使用しているならば、仮想化のバックアップ機能を使用すると良いでしょう。もし、物理サーバ上でZabbixを運用している場合は、以下のようにmysqldumpと設定ファイルをバックアップします。

Zabbix バージョンアップ 2.0 to 2.2 – RPM バージョンアップ

zabbixのRPMバージョンアップを行います。具体的なコマンドは以下の通りです。

Zabbix バージョンアップ 2.0 to 2.2 – データベースバージョンアップ

zabbixサーバを起動すると、自動的にデータベーススキーマが2.0から2.2にバージョンアップされます。まず、zabbix-serverを起動させます。

/var/log/zabbix/zabbix_server.logを確認し、バージョンアップが正常に行われた事を確認します。

Zabbix バージョンアップ 1.8 to 2.2

Zabbix 1.8から2.2へのバージョンアップはやや手間です。まず、1.8から2.0へバージョンアップし、2.0から2.2へバージョンアップする必要があります。

Zabbix バージョンアップ 1.8 to 2.2 – 事前準備

Zabbixのサービスを停止させます。

バージョンアップに失敗した時の切り戻しのために、バックアップを取得します。仮想化技術を使用しているならば、仮想化のバックアップ機能を使用すると良いでしょう。もし、物理サーバ上でZabbixを運用している場合は、以下のようにmysqldumpと設定ファイルをバックアップします。

Zabbix バージョンアップ 1.8 to 2.2 – RPM バージョンアップ

zabbixのRPMバージョンアップを行います。具体的なコマンドは以下の通りです。

Zabbix バージョンアップ 1.8 to 2.2 – 1.8 to 2.0データベースバージョンアップ

まず、1.8から2.0へ、データベースをバージョンアップさせます。Zabbix 2.2には、Zabbix 2.0のテーブル構成へ移行するスクリプトが同梱されています。”/usr/share/doc/zabbix-server-mysql-2.2.6/upgrades/dbpatches/2.0/mysql/upgrade”がバージョンアップを行うスクリプトです。このスクリプトに、mysqlコマンドと同様の引数(ユーザ名, パスワードなど)を渡して実行します。

Zabbix バージョンアップ 1.8 to 2.2 – 2.0 to 2.2 データベースバージョンアップ

2.0から2.2へのバージョンアップは自動的に行われます。zabbix-serverを起動すると、自動的にバージョンアップ処理が行われます。zabbix-serverを起動します。

/var/log/zabbix/zabbix_server.logを確認し、バージョンアップが正常に行われた事を確認します。

データベース文字コードに関するエラー

Zabbixは、MySQLの文字コードの設定がUTF8である事を前提としております。一方、MySQLはバージョンにもよりますが、デフォルトはlatin1です。

もし、データベース側の文字コードをUTF8にするのを忘れると、以下のようなエラーメッセージが出力されます。

zab_japanese_004

Template App MySQL

“Template App MySQL”を使用するためには、エージェント側でMySQLユーザとパスワードの設定が必要になります。/etc/zabbix/zabbix_agentd.d/userparameter_mysql.confというファイルを見ると、特にユーザ名とパスワードの指定なく、mysql, mysqladminコマンドを実行している事が分かります。

危うく、私はこの設定ファイル内にユーザ名とパスワードをハードコードしようとする暴挙に走ろうとしてしまいましたが、ちょっと立ち止まってgoogle検索してみると、もっと保守しやすい方法が見つかりました。

自宅ラック勉強会 【 Zabbix 2.0 】zabbix 2.0による簡単 MySQL 監視 #Zabbix からの引用になりますが、MySQLのユーザ単位の設定ファイルを利用します。エージェント監視はZabbixユーザによって実行されますので、ユーザのホームディレクトリ配下にユーザ名とパスワードを記述した/var/lib/zabbix/.my.cnfを作成します。

パスワードを保存したファイルが一般ユーザから見えてしまうのは都合が悪いので、適宜パーミッションを設定します。

Zabbix ライフサイクル ( LTSとポイントリリース )

Zabbixに限った話ではありませんが、ソフトウェアのライフサイクルを意識したバージョンアップ計画は大切です。Zabbixには、LTS (Long Time Support) とポイントリリース(STS : Short Time Support)の2種類のバージョンが存在します。

zabbix_release_001

LST (Long Time Support)

LSTは1年半毎にリリースされる長期のサポートが受けられるエディションです。サポートを重視するSI案件では、特別な理由がない限りはLSTを使った方が無難です。

ポイントリリース ( STS : Short Time Support )

1年半毎のリリースでは、Zabbixに対する要望が取り込まれるまで、相当の時間を要してしまいます。このようなお客様に対する不満を解消する目的で設けられた考えが、ポイントリリースです。ポイントリリースは半年毎にリリースされる暫定バージョンです。LSTと異なりサポート期間は短いですが、新バージョンでどうしても必要な機能がある場合は利用すると良いでしょう。

LST vs ポイントリリース

特別な理由がない限りはLSTをお勧めします。以下の表の通り、ポイントリリースは半年毎のリリースですので、ポイントリリースを使う場合は半年毎のバージョンアップ工数を見積もらなければなりません。

zabbix_release_002

とは言っても、ポイントリリースを使うメリットもあるかもしれません。私なりに、LSTとポイントリリースのどちらを使うべきかの判断の観点をまとめてみました。参考にして頂けると幸いです。

  • ポイントリリースの新機能は絶対に必要なものかどうか。自力実装(例 : UserParameter)など、新規実装を代替する手段はあるか。
  • 運用部隊は、半年毎のバージョンアップコストを払うだけの体力的な余裕があるかどうか。
  • バージョンアップできずサポートを受けられなくなっても問題ないか。恐らくWEB系企業ならば、ソースコードが読めるエンジニアを抱えている事が多いので、サポートは気にする必要はないでしょう。

動作確認環境

Zabbix Serverの動作確認環境は以下の通りです。

  • 動作確認日 : 2014/10/22
  • Redhat 6.5 64bit ( AWS )
  • zabbix-server-2.2.6-1.el6
  • MySQL-server-5.6.21-1.el6
  • httpd-2.2.15-39.el6
  • php-5.3.3-38.el6

Zabbix Agent Linux版の動作確認環境は以下の通りです。

  • 動作確認日 : 2014/10/22
  • CentOS 6.5 64bit ( Sakura VPS )
  • zabbix-agent-2.2.6-1.el6

Zabbix Agent Windows版の動作確認環境は以下の通りです。

  • 動作確認日 : 2014/12/29
  • Windows Server 2012 R2 Base ( Amazon Web Service )
  • zabbix agent 2.2.7

シェアする

  • このエントリーをはてなブックマークに追加

フォローする