†zabbix統合監視システム。やろうと思えば、ログとかも収集出来る。基本は公式のwikiがあるのでそれを見ればわかる。前提条件zabbix-serverzabbix-proxyzabbix-agentd以下を前提でメモしてある。192.168.1.10,192.168.11.11とする。必須なミドルウェアを入れておく。ApacheMySQLPHPミドルウェアを入れた後にzabbix用ユーザ、グループを作成。zabbixその後、zabbixで監視する物に対応するライブラリ(snmp-develとか)を突っ込む。ライブラリ関係までmakeするのだと、切りが無いのでサクッとapt-getなりyumなりするのを推奨。zabbix-serverのビルド公式wikiの通りにソースを調理していく。zabbix-serverを入れる時は殆どの場合でzabbix-agentdも入れる筈なので一緒に入れておく。zabbix-agentdのみインストールする場合は下記参照。prefix指定をやっているのでシンボリックリンクで対処する。zabbix_server.conf最低限、以下の項目を設定しておく。MySQLの準備zabbix用のDBを作成する前にMySQLのコンフィグをチューニングする。zabbixはInnoDB方式で書き込んでいく為、普段の設定とは少し違う項目が増える。あと、zabbixはデータ量が凄く多いのでチューニングをしないとDB容量がすぐGB単位になる。※アイテム数150を毎分取得していくと、一日で20Mバイトは使う。詳細はオフィシャルのwikiを見る事。一例としてこんな感じにする。/etc/my.cnf---#DBファイルをテーブル毎に管理する。innodb_file_per_table#実メモリ容量の50%~70%程度がいいらしい。1024M#HDDの容量に応じて変化させる。32M,64M,128M程度が無難。それ以上だとあまり意味がなくなる。32Mzabbix用にMySQLのユーザとデータベースを作成する。ユーザのパスワードは、zabbix_server.confに書いた物と同じにする。MySQLの設定でデータベースのデフォルト文字コードがUTF8になっていないのなら、データベースを作成する時に文字コードをUTF8指定にして作成する。exit;データベースを作ったら、zabbixのソースに付いているSQLテンプレートを流し込んでデフォルトデータを作る。※流し込む順番は以下で固定。毎回パスワード聞かれるけど、頑張って打ち込んでいく。起動準備zabbix-server起動スクリプトのコピーとかを行う。※今回はfedora/CentOS用スクリプトを使用。他のディストリビューションならそれに合わせる。on-----※起動スクリプトを修正する。Apacheの設定zabbix用にApacheのディレクトリを作成し、extraコンフィグも書く。説明の為、apacheのDocumentRootを"/var/apache/html"とする。※セキュリティとかを考慮していないので、WANに公開している鯖でzabbix-serverを構築する時は注意。all</Directory>設定を書き換えたらzabbixのPHPを移動させ、apacheの再起動をする。WebインストールWebブラウザを起動して、"http://[zabbix-serverのIPアドレス]/zabbix/"にアクセスをして、画面の指示に従いつつインストールを完了させる。等を行う必要が出てくる。その時はその都度対応していく。zabbix-proxyのビルド負荷分散目的でzabbixを多段構成とする場合は、zabbix-proxyを間に入れる必要がある。zabbix-proxyはzabbix-serverと同じくMySQLを利用するので事前にインストールしておく。zabbix-proxyのソースコードはzabbix-serverと同じものを利用する。zabbix-proxyの設定zabbix-serverと同じく、シンボリックリンクを張って対処する。zabbix_proxy.confzabbix-proxyのセキュリティを担保する為にパッシブモード[ProxyMode=1]を推奨。[ProxyOfflineBuffer]が短すぎると、ログがロストする場合がある為、1週間=168時間程度まで長くしておくのが良い。MySQLzabbix-proxy用のInnoDB設定は、zabbix-serverと同じなので割愛。zabbix-proxyのDBに流し込むSQLテンプレートはschema.sqlだけ流し込む。serverと同じく、images/dataも流し込むとエラーが出力され、proxyが起動出来なくなる。起動準備zabbix-proxyの起動スクリプトは存在しないので、zabbix-serverの起動スクリプトを再利用する。zabbix-agentdのビルドソースコードはzabbix-serverと同じ。zabbix_agentd.conf最低限、以下の項目を設定しておく。※設定例//IPアドレスが"192.168.1.10"のマシンを想定LogFile=/var/log/zabbix/zabbix_agentd.logListenIP=192.168.1.10Server=192.168.1.10ServerActive=192.168.1.10Hostname={ホストネームを英語で書く}Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d///IPアドレスが"192.168.1.11"のマシンを想定LogFile=/var/log/zabbix/zabbix_agentd.logListenIP=192.168.1.11Server=192.168.1.10ServerActive=192.168.1.10Hostname={ホストネームを英語で書く。起動準備zabbix-agentd起動スクリプトのコピーを行う。※今回はfedora/CentOS用スクリプトを使用。他のディストリビューションならそれに合わせる。on-----※起動スクリプトの中身を修正する。後は、zabbix-server,zabbix-agentdの再起動テストや、マシンごとリブートした時に正常稼働するかのチェックを行っていく。ログローテートzabbix用のログローテートを行わないと、ログが肥大化していくので注意。zabbix}※OSごと再起動させて確認をする。zabbixのグラフ文字化け対策インストール直後だとグラフ表示用のフォントが入っていないので、OSにインストール済みのフォントへリンクして読み込む様にする。フォントに2バイト文字データが入っていればグラフで2バイト文字の表示をするがPゴシックが無難。標準だと、zabbixのグラフは最大2年間・最小とデフォルトが1時間を表示する設定になっている。この状態だと都合によっては見づらくなるので、PHPを書き換えて表示時間の調整を行う。設定する単位は秒になる(1時間=3600・1日=86400)。hourzabbix-4.0以降はグラフのタイムバーが廃止となった為、指定方法が「FROM-TO」の決め打ちとなる。1日(24時間)の表示をデフォルトにしたい場合、defines.inc.phpを下記の通り書き換える。結果としてディスクI/O不足による高負荷状態になる事がある。I/O待ちを防ぐには、テーブルを圧縮しディスクI/O負荷をCPU負荷に転換すれば対処出来る。参考情報:ネットワークトラフィックの値が取れません。windows機のNWトラフィックを計測するには、zabbixエージェントとperf_counter()を併用すれば取得出来る。通常の名前指定では取得出来ない為、トラフィック取得先の指定に工夫が必要になる。3.0から、コンポーネント間の通信を暗号化出来るようになった。Key)とSSL証明書(Cert)のどちらかを利用出来る。PSKでzabbix間を暗号化する場合は下記の通りとなる。PSKを利用する場合、zabbix-agentに設定するPSKアイデンティティ(TLSPSKIdentity)は暗号化せずに送信されるので注意する。こだわりが無ければ監視対象ホスト名のハッシュ値を設定すると良い。PSKアイデンティティはzabbix-server内で全ホスト名に対して一意である必要がある。ダブり登録がある場合、SSL通信の重複エラーが出たり、監視データを正常に受信出来なくなる。