Linux/Source/Zabbix
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
ns-lab
nowsky system-lab
DigiLoog
Linux
Windows
開始行:
*ZABBIX [#j4037e5d]
[[zabbix:+http://www.zabbix.com/jp/]]
統合監視システム。やろうと思えば、ログとかも収集出来る。
基本は公式のwikiがあるのでそれを見ればわかる。以下参考資...
[[zabbix Manual:+https://www.zabbix.com/documentation/cur...
[[zabbix RPM:+http://www.zabbix.jp/documents/installation...
~
*インストール [#a234c2d8]
&size(16){&font(b){0. 前提条件};};
-[[zabbix-server>#deb5846c]]
-[[zabbix-proxy>#mec6ad04]]
-[[zabbix-agentd>#t8492ea9]]
以下を前提でメモしてある。
各IPアドレスは、
・zabbix-server = 192.168.1.10
・zabbix-proxy = 192.168.1.20
・zabbix-agentd = 192.168.1.10,192.168.11.11
とする。
~
&size(16){&font(b){1. 前準備};};
予め、必須なミドルウェアを入れておく。
[[Apache>Linux/Source/Apache]]
[[MySQL>Linux/Source/MySQL]]
[[PHP>Linux/Source/PHP]]
ミドルウェアを入れた後にzabbix用ユーザ、グループを作成。
# groupadd zabbix
# useradd -g zabbix -d /var/zabbix -s /sbin/nologin zabbix
その後、zabbixで監視する物に対応するライブラリ(snmp-devel...
ライブラリ関係までmakeするのだと、切りが無いのでサクッとa...
~
*zabbix-server [#deb5846c]
&size(16){&font(b){2-1. zabbix-serverのビルド};};
公式wikiの通りにソースを調理していく。
zabbix-serverを入れる時は殆どの場合でzabbix-agentdも入れ...
zabbix-agentdのみインストールする場合は[[下記>#t8492ea9]]...
# tar zxvf zabbix-2.2.1rc1.tar.gz
# cd zabbix-2.2.1rc1
# ./configure --prefix=/usr/local/zabbix --enable-server...
# make
# make install
~
&size(16){&font(b){2-2. zabbix-serverの設定};};
./configureを打つ時にzabbix-serverの設定ファイル保存先を...
折角prefix指定をやっているのでシンボリックリンクで対処す...
# cd /etc
# ln -s /usr/local/zabbix/etc ./zabbix
# cd zabbix
# vi zabbix_server.conf
~
最低限、以下の項目を設定しておく。
&font(b){※設定例(例として、パスワードはzabbix_passにして...
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=16
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_pass
DBSocket=/tmp/mysql.sock <- MySQLのsock設定と同じにする
DBPort=3306 <- MySQLのポート設定と同じにする
ListenIP=192.168.1.10
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/
~
&size(16){&font(b){2-3. MySQLの準備};};
zabbix用のDBを作成する前にMySQLのコンフィグをチューニング...
zabbixはInnoDB方式で書き込んでいく為、普段の設定とは少し...
あと、zabbixはデータ量が凄く多いのでチューニングをしない...
&font(b){※アイテム数150を毎分取得していくと、一日で20Mバ...
詳細はオフィシャルの[[wiki>+https://www.zabbix.com/docume...
一例としてこんな感じにする。
# vi /etc/my.cnf
---
#DBファイルをテーブル毎に管理する。
innodb_file_per_table
#実メモリ容量の50%~70%程度がいいらしい。
innodb_buffer_pool_size = 1024M
#HDDの容量に応じて変化させる。32M,64M,128M程度が無難。そ...
innodb_log_file_size = 32M
~
zabbix用にMySQLのユーザとデータベースを作成する。
ユーザのパスワードは、zabbix_server.confに書いた物と同じ...
もし、MySQLの設定でデータベースのデフォルト文字コードがUT...
データベースを作成する時に文字コードをUTF8指定にして作成...
# mysql -u root -p
Enter password: {rootのパスワード}
> create database zabbix default character set utf8 coll...
> grant all on zabbix.* to zabbix identified by 'zabbix_...
> flush privileges;
> exit;
~
データベースを作ったら、zabbixのソースに付いているSQLテン...
&font(b){※流し込む順番は以下で固定。};毎回パスワード聞か...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
~
&size(16){&font(b){2-4. 起動準備};};
zabbix-server起動スクリプトのコピーとかを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビ...
# cp {zabbixのソースコード}/misc/init.d/fedora/core5/zab...
# chmod 755 /etc/init.d/zabbix_server
# chkconfig --add zabbix_server
# chkconfig zabbix_server on
-----
※起動スクリプトを修正する。
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
ZABBIX_PID="/var/run/zabbix"
if [ ! -e ${ZABBIX_PID} ] ; then
mkdir ${ZABBIX_PID}
chown zabbix.zabbix ${ZABBIX_PID}
chmod 750 ${ZABBIX_PID}
fi
~
&size(16){&font(b){2-5. Apacheの設定};};
zabbix用にApacheのディレクトリを作成し、extraコンフィグも...
説明の為、apacheのDocumentRootを"/var/apache/html"とする。
※セキュリティとかを考慮していないので、WANに公開している...
# vi /usr/local/apache/conf/extra/httpd-zabbix.conf
//Apache2.4での書き方
Alias /zabbix/ "/var/apache/zabbix/"
<Directory "/var/apache/zabbix">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Require all granted
</Directory>
//Apache2.2での書き方
Alias /zabbix/ "/var/apache/zabbix/"
<Directory "/var/apache/zabbix">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
~
設定を書き換えたらzabbixのPHPを移動させ、apacheの再起動を...
# cp {zabbixのソースコード}/frontends/php /var/apache/za...
# chown -R root.www /var/apache/zabbix
# chmod -R 750 /var/apache/zabbix
# find /var/apache/zabbix -type f -print | xargs chmod 640
# /etc/init.d/apache restart
~
&size(16){&font(b){2-6. Webインストール};};
Webブラウザを起動して、"http://[zabbix-serverのIPアドレス...
途中で、
・PHPのモジュールが足りない -> PHPをリビルド
・PHPの必要要件(メモリ容量等)が足りない -> /etc/php.ini...
・MySQLに接続出来ない -> MySQLとzabbix-serverの設定を見...
・zabbix.conf.phpを設置出来ない -> 一時的にパーミッショ...
等を行う必要が出てくる。その時はその都度対応していく。
~
*zabbix-proxy [#mec6ad04]
&size(16){&font(b){3-1. zabbix-proxyのビルド};};
負荷分散目的でzabbixを多段構成とする場合は、zabbix-proxy...
zabbix-proxyはzabbix-serverと同じくMySQLを利用するので事...
また、zabbix-proxyのソースコードはzabbix-serverと同じもの...
# tar zxvf zabbix-3.2.0.tar.gz
# cd zabbix-3.2.0
# ./configure --prefix=/usr/local/zabbix-3.2.0 --enable-...
# make
# make install
# cd /usr/local
# ln -s /usr/local/zabbix-3.2.0 zabbix
~
&size(16){&font(b){3-2. zabbix-proxyの設定};};
zabbix-serverと同じく、シンボリックリンクを張って対処する。
# cd /etc
# ln -s /usr/local/zabbix/etc zabbix
# cd zabbix
# vi zabbix_proxy.conf
zabbix-proxyのセキュリティを担保する為にパッシブモード[Pr...
[ProxyOfflineBuffer]が短すぎると、ログがロストする場合が...
1週間=168時間程度まで長くしておくのが良い。
ProxyMode=1 <- パッシブモードで動作
Server=192.168.1.10 <- zabbix-serverのIPアドレス
Hostname=zabbix-proxy <- zabbixに登録するzabbix-proxy名
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=16
DBHost=127.0.0.1
DBName=zabbix-proxy
DBUser=zabbix-proxy_user
DBPassword=zabbix-proxy_pass
DBSocket=/tmp/mysql.sock <- MySQLのsock設定と同じにする
DBPort=3306 <- MySQLのポート番号と同じにする
ProxyLocalBuffer=24
ProxyOfflineBuffer=168
ListenIP=192.168.1.20
Include=/usr/local/zabbix/etc/zabbix_proxy.conf.d/*.conf
~
&size(16){&font(b){3-3. MySQL};};
zabbix-proxy用のInnoDB設定は、zabbix-serverと同じなので割...
zabbix-proxyのDBに流し込むSQLテンプレートは&font(b){schem...
serverと同じく、images/dataも流し込むとエラーが出力され、...
# mysql -u root -p
Enter password: {rootのパスワード}
> create database zabbix-proxy default character set utf...
> grant all on zabbix-proxy.* to zabbix-proxy_user ident...
> flush privileges;
> exit;
---
# mysql -u root -p zabbix-proxy < {zabbixのソースコード}...
~
&size(16){&font(b){3-4. 起動準備};};
zabbix-proxyの起動スクリプトは存在しないので、zabbix-serv...
# cd /etc/init.d
# cat zabbix_server | sed -e 's/_server/_proxy/g' -e 's/...
# chmod 755 /etc/init.d/zabbix_proxy
# chkconfig --add zabbix_proxy
# chkconfig zabbix_proxy on
# /etc/init.d/zabbix_proxy start
~
*zabbix-agentd [#t8492ea9]
&size(16){&font(b){4-1. zabbix-agentdのビルド};};
ソースコードはzabbix-serverと同じ。
# tar zxvf zabbix-2.2.1rc1.tar.gz
# cd zabbix-2.2.1rc1
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make
# make install
~
&size(16){&font(b){4-2. zabbix-agentdの設定};};
事前に、zabbix-serverをインストールしていて、シンボリック...
# cd /etc
# ln -s /usr/local/zabbix/etc ./zabbix
# cd zabbix
# vi zabbix_agentd.conf
~
最低限、以下の項目を設定しておく。
※設定例
//IPアドレスが"192.168.1.10"のマシンを想定
LogFile=/var/log/zabbix/zabbix_agentd.log
ListenIP=192.168.1.10
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname={ホストネームを英語で書く}
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
//IPアドレスが"192.168.1.11"のマシンを想定
LogFile=/var/log/zabbix/zabbix_agentd.log
ListenIP=192.168.1.11
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname={ホストネームを英語で書く。他と被らない事}
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
~
&size(16){&font(b){4-3. 起動準備};};
zabbix-agentd起動スクリプトのコピーを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビ...
# cp {zabbixのソースコード}/misc/init.d/fedora/core5/zab...
# chmod 755 /etc/init.d/zabbix_agentd
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
-----
※起動スクリプトの中身を修正する。以下は一例。
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
ZABBIX_PID="/var/run/zabbix"
if [ ! -e ${ZABBIX_PID} ] ; then
mkdir ${ZABBIX_PID}
chown zabbix.zabbix ${ZABBIX_PID}
chmod 750 ${ZABBIX_PID}
fi
~
*インストール後のチューニング [#c65254bd]
後は、zabbix-server,zabbix-agentdの再起動テストや、
マシンごとリブートした時に正常稼働するかのチェックを行っ...
負荷が結構高いので、いらないテンプレートは無効にした方が...
~
&size(16){&font(b){5-1. ログローテート};};
zabbix用のログローテートを行わないと、ログが肥大化してい...
Linuxの場合はlogrotateを使うと簡単に設定出来る。
# vi /etc/logrotate.d/zabbix
--
/var/log/zabbix/*.log {
missingok
notifempty
sharedscripts
create 0664 zabbix zabbix
}
Windowsに導入したZabbixエージェントのログローテートをする...
ローテート用にバッチファイルを作成してタスクスケジューラ...
> notepad "C:\Program Files\Zabbix Agent\logrotate.bat"
--
@echo off
setlocal
set LOGFILE=agent.log
set ROTATE=7
set LOGDIR=C:\Program Files\Zabbix Agent\log
set LOGDAY=%date:~0,4%%date:~5,2%%date:~8,2%
ren "%LOGDIR%\%LOGFILE%" "%LOGFILE%-%LOGDAY%"
forfiles /S /P "%LOGDIR%" /M "*.log-*" /D -%ROTATE% /C "...
exit /B 0
|&ref(zabbix_source_01.png,left,nowrap,zoom,280x200);|&re...
~
&size(16){&font(b){5-2. zabbixのグラフ文字化け対策};};
インストール直後だとグラフ表示用のフォントが入っていない...
OSにインストール済みのフォントへリンクして読み込む様にす...
フォントに2バイト文字データが入っていればグラフで2バイト...
# cd /var/apache/zabbix/assets/fonts
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf ./ipagp.ttf
# vi ../include/defines.inc.php
---
#以下の項目に書き換える
define('ZBX_GRAPH_FONT_NAME', 'ipagp'); //font file name
...
define('ZBX_FONT_NAME', 'ipagp');
~
&size(16){&font(b){5-3. zabbixのグラフ標準表示時間の設定}...
標準だと、zabbixのグラフは最大2年間・最小とデフォルトが1...
この状態だと都合によっては見づらくなるので、PHPを書き換え...
設定する単位は秒になる(1時間=3600・1日=86400)。
# vi /var/apache/zabbix/include/defines.inc.php
---
#最小時間
define('ZBX_MIN_PERIOD', 3600); // 1 hour
#最大表示時間
define('ZBX_MAX_PERIOD', 63072000); // the maximum perio...
#デフォルトの表示時間
define('ZBX_PERIOD_DEFAULT', 3600); // 1 hour
zabbix-4.0以降はグラフのタイムバーが廃止となった為、指定...
1日(24時間)の表示をデフォルトにしたい場合、defines.inc.ph...
define('ZBX_PERIOD_DEFAULT_FROM', 'now-24h');
define('ZBX_PERIOD_DEFAULT_TO', 'now');
zabbix-5.2移行はデフォルト時刻の設定が管理コンソール上で...
その為、実質変更するのは最小時刻設定のみとなる。
#最小時間
define('ZBX_MIN_PERIOD', 3600); // 1 hour
~
&size(16){&font(b){5-4. DB領域の圧縮};};
監視する端末が増えると、zabbixがMySQLに書き込むデータ量も...
結果としてディスクI/O不足による高負荷状態になる事がある。
I/O待ちを防ぐには、テーブルを圧縮しディスクI/O負荷をCPU負...
・MySQLの準備
※innodbの値は環境に合わせて変更する
# mysqldump -u root -p -x --all-databases > mysql_dump.sql
# /etc/init.d/mysql stop
# rm ${MySQL_datadir}/ib_logfile* ${MySQL_datadir}/ibdata*
# vi /etc/my.cnf
---
innodb_file_format = Barracuda
innodb_buffer_pool_size = 2048M
innodb_log_files_in_group = 2
innodb_log_file_size = 64M
innodb_log_buffer_size = 64M
---
# /etc/init.d/mysql start
・テーブル形式の確認
$ mysql -u root -p
mysql> use information_schema;
mysql> select table_name, engine from tables where table...
+-----------------------+--------+
| table_name | engine |
+-----------------------+--------+
| acknowledges | InnoDB |
| actions | InnoDB |
| alerts | InnoDB |
| | |
| ... | ... |
| | |
| users_groups | InnoDB |
| usrgrp | InnoDB |
| valuemaps | InnoDB |
+-----------------------+--------+
・テーブル圧縮(InnoDBの場合)
mysql> use zabbix;
mysql> alter table acknowledges ROW_FORMAT=COMPRESSED KE...
mysql> alter table actions ROW_FORMAT=COMPRESSED KE...
mysql> alter table alerts ROW_FORMAT=COMPRESSED KE...
mysql> ...
mysql> alter table users_groups ROW_FORMAT=COMPRESSED KE...
mysql> alter table usrgrp ROW_FORMAT=COMPRESSED KE...
mysql> alter table valuemaps ROW_FORMAT=COMPRESSED KE...
mysql> alter table acknowledges engine InnoDB;
mysql> alter table actions engine InnoDB;
mysql> alter table alerts engine InnoDB;
mysql> ...
mysql> alter table users_groups engine InnoDB;
mysql> alter table usrgrp engine InnoDB;
mysql> alter table valuemaps engine InnoDB;
・テーブル圧縮(MyISAMの場合)
mysql> use zabbix;
mysql> alter table acknowledges engine MyISAM;
mysql> alter table actions engine MyISAM;
mysql> alter table alerts engine MyISAM;
mysql> ...
mysql> alter table users_groups engine MyISAM;
mysql> alter table usrgrp engine MyISAM;
mysql> alter table valuemaps engine MyISAM;
~
&size(16){&font(b){5-5. windowsのトラフィック計測};};
-[[参考情報:ネットワークトラフィックの値が取れません。>+h...
windows機のNWトラフィックを計測するには、zabbixエージェン...
しかし、NICを2つ積んでいる場合等により、NIC名に"#"が含ま...
通常の名前指定では取得出来ない為、トラフィック取得先の指...
・windows機のNIC名を取得
cmd> typeperf -qx
-> '#'が'_'になったり、'()'が'[]'になったりして出力される
-----
・zabbixテンプレート
タイプ:Zabbixエージェント
キー:perf_counter[\Network Interface({$ETH_NIC})\Bytes ...
-> "${ETH_NIC}"やホストマクロにNIC名を入れる
・例
Windows:[ネットワークとインターネット] -> [ネットワーク...
->"Microsoft Hyper-V ネットワーク アダプター #2"
zabbix :[設定] -> [テンプレート] -> [アイテム] -> [作成...
->"perf_counter[\Network Interface({$ETH_NIC})\By...
:[設定] -> [ホスト] -> [トラフィック計測するホス...
->"Microsoft Hyper-V ネットワーク アダプター _2"
~
&size(16){&font(b){5-6. zabbixの通信暗号化};};
zabbix 3.0から、コンポーネント間の通信を暗号化出来るよう...
暗号化を行う場合、事前共有鍵(Pre-Shared Key)とSSL証明書(C...
PSKでzabbix間を暗号化する場合は下記の通りとなる。
PSKを利用する場合、zabbix-agentに設定するPSKアイデンティ...
特にこだわりが無ければ監視対象ホスト名のハッシュ値を設定...
PSKアイデンティティはzabbix-server内で全ホスト名に対して...
ダブり登録がある場合、SSL通信の重複エラーが出たり、&color...
# openssl rand -hex 128 > /usr/local/zabbix/etc/zabbix_a...
# hostname | sha1sum
---
11ec2c2536cca57562de5d432bbd472d2a9a33e5
# vi zabbix_agentd.conf
---
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=11ec2c2536cca57562de5d4325bd472d2a9a33e5
TLSPSKFile=/usr/local/zabbix/etc/zabbix_agentd.psk
終了行:
*ZABBIX [#j4037e5d]
[[zabbix:+http://www.zabbix.com/jp/]]
統合監視システム。やろうと思えば、ログとかも収集出来る。
基本は公式のwikiがあるのでそれを見ればわかる。以下参考資...
[[zabbix Manual:+https://www.zabbix.com/documentation/cur...
[[zabbix RPM:+http://www.zabbix.jp/documents/installation...
~
*インストール [#a234c2d8]
&size(16){&font(b){0. 前提条件};};
-[[zabbix-server>#deb5846c]]
-[[zabbix-proxy>#mec6ad04]]
-[[zabbix-agentd>#t8492ea9]]
以下を前提でメモしてある。
各IPアドレスは、
・zabbix-server = 192.168.1.10
・zabbix-proxy = 192.168.1.20
・zabbix-agentd = 192.168.1.10,192.168.11.11
とする。
~
&size(16){&font(b){1. 前準備};};
予め、必須なミドルウェアを入れておく。
[[Apache>Linux/Source/Apache]]
[[MySQL>Linux/Source/MySQL]]
[[PHP>Linux/Source/PHP]]
ミドルウェアを入れた後にzabbix用ユーザ、グループを作成。
# groupadd zabbix
# useradd -g zabbix -d /var/zabbix -s /sbin/nologin zabbix
その後、zabbixで監視する物に対応するライブラリ(snmp-devel...
ライブラリ関係までmakeするのだと、切りが無いのでサクッとa...
~
*zabbix-server [#deb5846c]
&size(16){&font(b){2-1. zabbix-serverのビルド};};
公式wikiの通りにソースを調理していく。
zabbix-serverを入れる時は殆どの場合でzabbix-agentdも入れ...
zabbix-agentdのみインストールする場合は[[下記>#t8492ea9]]...
# tar zxvf zabbix-2.2.1rc1.tar.gz
# cd zabbix-2.2.1rc1
# ./configure --prefix=/usr/local/zabbix --enable-server...
# make
# make install
~
&size(16){&font(b){2-2. zabbix-serverの設定};};
./configureを打つ時にzabbix-serverの設定ファイル保存先を...
折角prefix指定をやっているのでシンボリックリンクで対処す...
# cd /etc
# ln -s /usr/local/zabbix/etc ./zabbix
# cd zabbix
# vi zabbix_server.conf
~
最低限、以下の項目を設定しておく。
&font(b){※設定例(例として、パスワードはzabbix_passにして...
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=16
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix_pass
DBSocket=/tmp/mysql.sock <- MySQLのsock設定と同じにする
DBPort=3306 <- MySQLのポート設定と同じにする
ListenIP=192.168.1.10
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/
~
&size(16){&font(b){2-3. MySQLの準備};};
zabbix用のDBを作成する前にMySQLのコンフィグをチューニング...
zabbixはInnoDB方式で書き込んでいく為、普段の設定とは少し...
あと、zabbixはデータ量が凄く多いのでチューニングをしない...
&font(b){※アイテム数150を毎分取得していくと、一日で20Mバ...
詳細はオフィシャルの[[wiki>+https://www.zabbix.com/docume...
一例としてこんな感じにする。
# vi /etc/my.cnf
---
#DBファイルをテーブル毎に管理する。
innodb_file_per_table
#実メモリ容量の50%~70%程度がいいらしい。
innodb_buffer_pool_size = 1024M
#HDDの容量に応じて変化させる。32M,64M,128M程度が無難。そ...
innodb_log_file_size = 32M
~
zabbix用にMySQLのユーザとデータベースを作成する。
ユーザのパスワードは、zabbix_server.confに書いた物と同じ...
もし、MySQLの設定でデータベースのデフォルト文字コードがUT...
データベースを作成する時に文字コードをUTF8指定にして作成...
# mysql -u root -p
Enter password: {rootのパスワード}
> create database zabbix default character set utf8 coll...
> grant all on zabbix.* to zabbix identified by 'zabbix_...
> flush privileges;
> exit;
~
データベースを作ったら、zabbixのソースに付いているSQLテン...
&font(b){※流し込む順番は以下で固定。};毎回パスワード聞か...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
# mysql -u root -p zabbix < {zabbixのソースコード}/datab...
~
&size(16){&font(b){2-4. 起動準備};};
zabbix-server起動スクリプトのコピーとかを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビ...
# cp {zabbixのソースコード}/misc/init.d/fedora/core5/zab...
# chmod 755 /etc/init.d/zabbix_server
# chkconfig --add zabbix_server
# chkconfig zabbix_server on
-----
※起動スクリプトを修正する。
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
ZABBIX_PID="/var/run/zabbix"
if [ ! -e ${ZABBIX_PID} ] ; then
mkdir ${ZABBIX_PID}
chown zabbix.zabbix ${ZABBIX_PID}
chmod 750 ${ZABBIX_PID}
fi
~
&size(16){&font(b){2-5. Apacheの設定};};
zabbix用にApacheのディレクトリを作成し、extraコンフィグも...
説明の為、apacheのDocumentRootを"/var/apache/html"とする。
※セキュリティとかを考慮していないので、WANに公開している...
# vi /usr/local/apache/conf/extra/httpd-zabbix.conf
//Apache2.4での書き方
Alias /zabbix/ "/var/apache/zabbix/"
<Directory "/var/apache/zabbix">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Require all granted
</Directory>
//Apache2.2での書き方
Alias /zabbix/ "/var/apache/zabbix/"
<Directory "/var/apache/zabbix">
Options FollowSymLinks MultiViews ExecCGI
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
~
設定を書き換えたらzabbixのPHPを移動させ、apacheの再起動を...
# cp {zabbixのソースコード}/frontends/php /var/apache/za...
# chown -R root.www /var/apache/zabbix
# chmod -R 750 /var/apache/zabbix
# find /var/apache/zabbix -type f -print | xargs chmod 640
# /etc/init.d/apache restart
~
&size(16){&font(b){2-6. Webインストール};};
Webブラウザを起動して、"http://[zabbix-serverのIPアドレス...
途中で、
・PHPのモジュールが足りない -> PHPをリビルド
・PHPの必要要件(メモリ容量等)が足りない -> /etc/php.ini...
・MySQLに接続出来ない -> MySQLとzabbix-serverの設定を見...
・zabbix.conf.phpを設置出来ない -> 一時的にパーミッショ...
等を行う必要が出てくる。その時はその都度対応していく。
~
*zabbix-proxy [#mec6ad04]
&size(16){&font(b){3-1. zabbix-proxyのビルド};};
負荷分散目的でzabbixを多段構成とする場合は、zabbix-proxy...
zabbix-proxyはzabbix-serverと同じくMySQLを利用するので事...
また、zabbix-proxyのソースコードはzabbix-serverと同じもの...
# tar zxvf zabbix-3.2.0.tar.gz
# cd zabbix-3.2.0
# ./configure --prefix=/usr/local/zabbix-3.2.0 --enable-...
# make
# make install
# cd /usr/local
# ln -s /usr/local/zabbix-3.2.0 zabbix
~
&size(16){&font(b){3-2. zabbix-proxyの設定};};
zabbix-serverと同じく、シンボリックリンクを張って対処する。
# cd /etc
# ln -s /usr/local/zabbix/etc zabbix
# cd zabbix
# vi zabbix_proxy.conf
zabbix-proxyのセキュリティを担保する為にパッシブモード[Pr...
[ProxyOfflineBuffer]が短すぎると、ログがロストする場合が...
1週間=168時間程度まで長くしておくのが良い。
ProxyMode=1 <- パッシブモードで動作
Server=192.168.1.10 <- zabbix-serverのIPアドレス
Hostname=zabbix-proxy <- zabbixに登録するzabbix-proxy名
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=16
DBHost=127.0.0.1
DBName=zabbix-proxy
DBUser=zabbix-proxy_user
DBPassword=zabbix-proxy_pass
DBSocket=/tmp/mysql.sock <- MySQLのsock設定と同じにする
DBPort=3306 <- MySQLのポート番号と同じにする
ProxyLocalBuffer=24
ProxyOfflineBuffer=168
ListenIP=192.168.1.20
Include=/usr/local/zabbix/etc/zabbix_proxy.conf.d/*.conf
~
&size(16){&font(b){3-3. MySQL};};
zabbix-proxy用のInnoDB設定は、zabbix-serverと同じなので割...
zabbix-proxyのDBに流し込むSQLテンプレートは&font(b){schem...
serverと同じく、images/dataも流し込むとエラーが出力され、...
# mysql -u root -p
Enter password: {rootのパスワード}
> create database zabbix-proxy default character set utf...
> grant all on zabbix-proxy.* to zabbix-proxy_user ident...
> flush privileges;
> exit;
---
# mysql -u root -p zabbix-proxy < {zabbixのソースコード}...
~
&size(16){&font(b){3-4. 起動準備};};
zabbix-proxyの起動スクリプトは存在しないので、zabbix-serv...
# cd /etc/init.d
# cat zabbix_server | sed -e 's/_server/_proxy/g' -e 's/...
# chmod 755 /etc/init.d/zabbix_proxy
# chkconfig --add zabbix_proxy
# chkconfig zabbix_proxy on
# /etc/init.d/zabbix_proxy start
~
*zabbix-agentd [#t8492ea9]
&size(16){&font(b){4-1. zabbix-agentdのビルド};};
ソースコードはzabbix-serverと同じ。
# tar zxvf zabbix-2.2.1rc1.tar.gz
# cd zabbix-2.2.1rc1
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make
# make install
~
&size(16){&font(b){4-2. zabbix-agentdの設定};};
事前に、zabbix-serverをインストールしていて、シンボリック...
# cd /etc
# ln -s /usr/local/zabbix/etc ./zabbix
# cd zabbix
# vi zabbix_agentd.conf
~
最低限、以下の項目を設定しておく。
※設定例
//IPアドレスが"192.168.1.10"のマシンを想定
LogFile=/var/log/zabbix/zabbix_agentd.log
ListenIP=192.168.1.10
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname={ホストネームを英語で書く}
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
//IPアドレスが"192.168.1.11"のマシンを想定
LogFile=/var/log/zabbix/zabbix_agentd.log
ListenIP=192.168.1.11
Server=192.168.1.10
ServerActive=192.168.1.10
Hostname={ホストネームを英語で書く。他と被らない事}
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
~
&size(16){&font(b){4-3. 起動準備};};
zabbix-agentd起動スクリプトのコピーを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビ...
# cp {zabbixのソースコード}/misc/init.d/fedora/core5/zab...
# chmod 755 /etc/init.d/zabbix_agentd
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
-----
※起動スクリプトの中身を修正する。以下は一例。
ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
ZABBIX_PID="/var/run/zabbix"
if [ ! -e ${ZABBIX_PID} ] ; then
mkdir ${ZABBIX_PID}
chown zabbix.zabbix ${ZABBIX_PID}
chmod 750 ${ZABBIX_PID}
fi
~
*インストール後のチューニング [#c65254bd]
後は、zabbix-server,zabbix-agentdの再起動テストや、
マシンごとリブートした時に正常稼働するかのチェックを行っ...
負荷が結構高いので、いらないテンプレートは無効にした方が...
~
&size(16){&font(b){5-1. ログローテート};};
zabbix用のログローテートを行わないと、ログが肥大化してい...
Linuxの場合はlogrotateを使うと簡単に設定出来る。
# vi /etc/logrotate.d/zabbix
--
/var/log/zabbix/*.log {
missingok
notifempty
sharedscripts
create 0664 zabbix zabbix
}
Windowsに導入したZabbixエージェントのログローテートをする...
ローテート用にバッチファイルを作成してタスクスケジューラ...
> notepad "C:\Program Files\Zabbix Agent\logrotate.bat"
--
@echo off
setlocal
set LOGFILE=agent.log
set ROTATE=7
set LOGDIR=C:\Program Files\Zabbix Agent\log
set LOGDAY=%date:~0,4%%date:~5,2%%date:~8,2%
ren "%LOGDIR%\%LOGFILE%" "%LOGFILE%-%LOGDAY%"
forfiles /S /P "%LOGDIR%" /M "*.log-*" /D -%ROTATE% /C "...
exit /B 0
|&ref(zabbix_source_01.png,left,nowrap,zoom,280x200);|&re...
~
&size(16){&font(b){5-2. zabbixのグラフ文字化け対策};};
インストール直後だとグラフ表示用のフォントが入っていない...
OSにインストール済みのフォントへリンクして読み込む様にす...
フォントに2バイト文字データが入っていればグラフで2バイト...
# cd /var/apache/zabbix/assets/fonts
# ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf ./ipagp.ttf
# vi ../include/defines.inc.php
---
#以下の項目に書き換える
define('ZBX_GRAPH_FONT_NAME', 'ipagp'); //font file name
...
define('ZBX_FONT_NAME', 'ipagp');
~
&size(16){&font(b){5-3. zabbixのグラフ標準表示時間の設定}...
標準だと、zabbixのグラフは最大2年間・最小とデフォルトが1...
この状態だと都合によっては見づらくなるので、PHPを書き換え...
設定する単位は秒になる(1時間=3600・1日=86400)。
# vi /var/apache/zabbix/include/defines.inc.php
---
#最小時間
define('ZBX_MIN_PERIOD', 3600); // 1 hour
#最大表示時間
define('ZBX_MAX_PERIOD', 63072000); // the maximum perio...
#デフォルトの表示時間
define('ZBX_PERIOD_DEFAULT', 3600); // 1 hour
zabbix-4.0以降はグラフのタイムバーが廃止となった為、指定...
1日(24時間)の表示をデフォルトにしたい場合、defines.inc.ph...
define('ZBX_PERIOD_DEFAULT_FROM', 'now-24h');
define('ZBX_PERIOD_DEFAULT_TO', 'now');
zabbix-5.2移行はデフォルト時刻の設定が管理コンソール上で...
その為、実質変更するのは最小時刻設定のみとなる。
#最小時間
define('ZBX_MIN_PERIOD', 3600); // 1 hour
~
&size(16){&font(b){5-4. DB領域の圧縮};};
監視する端末が増えると、zabbixがMySQLに書き込むデータ量も...
結果としてディスクI/O不足による高負荷状態になる事がある。
I/O待ちを防ぐには、テーブルを圧縮しディスクI/O負荷をCPU負...
・MySQLの準備
※innodbの値は環境に合わせて変更する
# mysqldump -u root -p -x --all-databases > mysql_dump.sql
# /etc/init.d/mysql stop
# rm ${MySQL_datadir}/ib_logfile* ${MySQL_datadir}/ibdata*
# vi /etc/my.cnf
---
innodb_file_format = Barracuda
innodb_buffer_pool_size = 2048M
innodb_log_files_in_group = 2
innodb_log_file_size = 64M
innodb_log_buffer_size = 64M
---
# /etc/init.d/mysql start
・テーブル形式の確認
$ mysql -u root -p
mysql> use information_schema;
mysql> select table_name, engine from tables where table...
+-----------------------+--------+
| table_name | engine |
+-----------------------+--------+
| acknowledges | InnoDB |
| actions | InnoDB |
| alerts | InnoDB |
| | |
| ... | ... |
| | |
| users_groups | InnoDB |
| usrgrp | InnoDB |
| valuemaps | InnoDB |
+-----------------------+--------+
・テーブル圧縮(InnoDBの場合)
mysql> use zabbix;
mysql> alter table acknowledges ROW_FORMAT=COMPRESSED KE...
mysql> alter table actions ROW_FORMAT=COMPRESSED KE...
mysql> alter table alerts ROW_FORMAT=COMPRESSED KE...
mysql> ...
mysql> alter table users_groups ROW_FORMAT=COMPRESSED KE...
mysql> alter table usrgrp ROW_FORMAT=COMPRESSED KE...
mysql> alter table valuemaps ROW_FORMAT=COMPRESSED KE...
mysql> alter table acknowledges engine InnoDB;
mysql> alter table actions engine InnoDB;
mysql> alter table alerts engine InnoDB;
mysql> ...
mysql> alter table users_groups engine InnoDB;
mysql> alter table usrgrp engine InnoDB;
mysql> alter table valuemaps engine InnoDB;
・テーブル圧縮(MyISAMの場合)
mysql> use zabbix;
mysql> alter table acknowledges engine MyISAM;
mysql> alter table actions engine MyISAM;
mysql> alter table alerts engine MyISAM;
mysql> ...
mysql> alter table users_groups engine MyISAM;
mysql> alter table usrgrp engine MyISAM;
mysql> alter table valuemaps engine MyISAM;
~
&size(16){&font(b){5-5. windowsのトラフィック計測};};
-[[参考情報:ネットワークトラフィックの値が取れません。>+h...
windows機のNWトラフィックを計測するには、zabbixエージェン...
しかし、NICを2つ積んでいる場合等により、NIC名に"#"が含ま...
通常の名前指定では取得出来ない為、トラフィック取得先の指...
・windows機のNIC名を取得
cmd> typeperf -qx
-> '#'が'_'になったり、'()'が'[]'になったりして出力される
-----
・zabbixテンプレート
タイプ:Zabbixエージェント
キー:perf_counter[\Network Interface({$ETH_NIC})\Bytes ...
-> "${ETH_NIC}"やホストマクロにNIC名を入れる
・例
Windows:[ネットワークとインターネット] -> [ネットワーク...
->"Microsoft Hyper-V ネットワーク アダプター #2"
zabbix :[設定] -> [テンプレート] -> [アイテム] -> [作成...
->"perf_counter[\Network Interface({$ETH_NIC})\By...
:[設定] -> [ホスト] -> [トラフィック計測するホス...
->"Microsoft Hyper-V ネットワーク アダプター _2"
~
&size(16){&font(b){5-6. zabbixの通信暗号化};};
zabbix 3.0から、コンポーネント間の通信を暗号化出来るよう...
暗号化を行う場合、事前共有鍵(Pre-Shared Key)とSSL証明書(C...
PSKでzabbix間を暗号化する場合は下記の通りとなる。
PSKを利用する場合、zabbix-agentに設定するPSKアイデンティ...
特にこだわりが無ければ監視対象ホスト名のハッシュ値を設定...
PSKアイデンティティはzabbix-server内で全ホスト名に対して...
ダブり登録がある場合、SSL通信の重複エラーが出たり、&color...
# openssl rand -hex 128 > /usr/local/zabbix/etc/zabbix_a...
# hostname | sha1sum
---
11ec2c2536cca57562de5d432bbd472d2a9a33e5
# vi zabbix_agentd.conf
---
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=11ec2c2536cca57562de5d4325bd472d2a9a33e5
TLSPSKFile=/usr/local/zabbix/etc/zabbix_agentd.psk
ページ名: