*Apache [#i106df72]
[[Apache:+http://httpd.apache.org/]]
Linux用WWWサーバの代名詞。
apache2.4からは設定方法が色々と変更されているので注意。
*ZABBIX [#j4037e5d]
[[zabbix:+http://www.zabbix.com/jp/]]
統合監視システム。やろうと思えば、ログとかも収集出来る。
基本は公式のwikiがあるのでそれを見ればわかる。以下参考資料(wiki)
[[zabbix 1.8:+https://www.zabbix.com/documentation/jp/1.8/manual/installation/installation_from_source]]
[[zabbix 2.2:+https://www.zabbix.com/documentation/2.2/manual/installation/install]]
[[zabbix RPM:+http://www.zabbix.jp/documents/installation/install-rpm]]
~
*インストール [#xd3830dd]
*インストール [#a234c2d8]
&size(16){&font(b){0. 前提条件};};
-[[zabbix-server>#deb5846c]]
-[[zabbix-agentd>#t8492ea9]]

以下を前提でメモしてある。
 ・zabbixは"ver 2.2.1rc1"を使用。
 各IPアドレスは、
 ・zabbix-server = 192.168.1.10
 ・zabbix-agentd = 192.168.1.10,192.168.11.11
 とする。
~
&size(16){&font(b){1. 前準備};};
ソースから入れる前にpkgconifgを統一しておく。
他の場合でもやった方がよさそうだが、書くのが面倒くさいので省略。
(Linux入れたら、とりあえずLAMP構築するだろうからここだけで大丈夫だべ)
 # cd /usr/local/lib64
 # ln -s /usr/lib64/pkgconfig .
 # cd /usr/local/lib
 # mkdir /usr/lib/pkgconfig
 # ln -s /usr/lib/pkgconfig .
後は、https通信用に[[OpenSSL>Linux/Source/OpenSSL]]も入れておく。
予め、必須なミドルウェアを入れておく。
[[Apache>Linux/Source/Apache]]
[[MySQL>Linux/Source/MySQL]]
[[PHP:+http://jp2.php.net/downloads.php]] <- まだ書いていない(´・ω・`)
ミドルウェアを入れた後にzabbix用ユーザ、グループを作成。
 # groupadd zabbix
 # useradd -g zabbix -d /var/zabbix -s /sbin/nologin
その後、zabbixで監視する物に対応するライブラリ(snmp-develとか)を突っ込む。
ライブラリ関係までmakeするのだと、切りが無いのでサクッとapt-getなりyumなりするのを推奨。
~
&size(16){&font(b){2. APRのビルド・インストール};};
apacheのソースと一緒にビルドする方法もあるらしいが、
自分の環境では上手くいかなかったので別々にビルドする。
 # tar zxvf apr-1.4.6.tar.gz
 # cd apr-1.4.6
 # ./configure --prefix=/usr/local/apr
*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 --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
 # make
 # make test
 # make install
~
&size(16){&font(b){3. APR-Utilのビルド・インストール};};
 # tar zxvf apr-util-1.5.1.tar.gz
 # cd apr-util-1.5.1
 # ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
 # make
 # make test
 # make install
&size(16){&font(b){2-2. zabbix-serverの設定};};
./configureを打つ時にzabbix-serverの設定ファイル保存先を、sysconfdirで指定しても良いのだが、
折角prefix指定をやっているのでシンボリックリンクで対処する。
 # cd /etc
 # ln -s /usr/local/zabbix/etc ./zabbix
 # cd zabbix
 # vi zabbix_server.conf
~
&size(16){&font(b){4. Apacheのビルド・インストール};};
initの名前を“httpd”にするとyumとかで入れた物と被ってエラーになる場合がある。
よって、今回は“apache”という名前にしてインストールする。
[[PCRE>Linux/PCRE]]がまだ入ってない場合は、apacheのソースをビルドする前に入れておく事。
 # tar zxvf httpd-2.4.3.tar.gz
 # cd httpd-2.4.3
 # vi config
 
&font(b){※全部一行で書く};
 --prefix=/usr/local/apache
 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/openssl --with-pcre=/usr/local/pcre
 --enable-ssl --enable-suexec --enable-rewrite --enable-auth-digest --enable-dav --enable-so

 # ./configure `cat ./config`
最低限、以下の項目を設定しておく。
&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用にMySQLのユーザとデータベースを作成する。
ユーザのパスワードは、zabbix_server.confに書いた物と同じにする。
もし、MySQLの設定でデータベースのデフォルト文字コードがUTF8になっていないのなら、
データベースを作成する時に文字コードをUTF8指定にして作成する。
 # mysql -u root -p
 Enter password: {rootのパスワード}
 > create database zabbix;
 > grant all on zabbix.* to zabbix identified by 'zabbix_pass';
 > flush privileges;
 > exit;
 
 #UTF8でのデータベース作成コマンド
 > create database zabbix default character set utf8;
~
データベースを作ったら、zabbixのソースに付いているSQLテンプレートを流し込んでデフォルトデータを作る。
&font(b){※流し込む順番は以下で固定。};毎回パスワード聞かれるけど、頑張って打ち込んでいく。
 # mysql -u root -p zabbix < {zabbixのソースコード}/database/mysql/schema.sql
 # mysql -u root -p zabbix < {zabbixのソースコード}/database/mysql/images.sql
 # mysql -u root -p zabbix < {zabbixのソースコード}/database/mysql/data.sql
~
&size(16){&font(b){2-4. 起動準備};};
zabbix-server起動スクリプトのコピーとかを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビューションならそれに合わせる。
 # cp {zabbixのソースコード}/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
 # chmod 755 /etc/init.d/zabbix_server
 # chkconfig --add zabbix_server
 # chkconfig zabbix_server on
 
 ※起動スクリプトの中にある"ZABBIX_BIN"を修正する。
 ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_server"
~
&size(16){&font(b){2-5. Apacheの設定};};
zabbix用にApacheのディレクトリを作成し、extraコンフィグも書く。
説明の為、apacheのDocumentRootを"/var/apache/html"とする。
※セキュリティとかを考慮していないので、WANに公開している鯖でzabbix-serverを構築する時は注意。
 # 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/zabbix
 # 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アドレス]/zabbix/"にアクセスをして、画面の指示に従いつつインストールを完了させる。
途中で、
 ・PHPのモジュールが足りない -> PHPをリビルド
 ・PHPの必要要件(メモリ容量等)が足りない -> /etc/php.iniを書き換え、apache再起動
 ・MySQLに接続出来ない -> MySQLとzabbix-serverの設定を見直す
 ・zabbix.conf.phpを設置出来ない -> 一時的にパーミッションを書き換えるか、手動配置
等を行う必要が出てくる。その時はその都度対応していく。
~
*zabbix-agentd [#t8492ea9]
&size(16){&font(b){3-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
~
*設定 [#y199b6f5]
&size(16){&font(b){I. apacheスクリプトのコピー};};
 # cp /usr/local/apache/bin/apachectl /etc/init.d/apache
 # chmod 755 /etc/init.d/apache
 # ln -s /etc/init.d/apache /etc/init.d/httpd
 # ln -s ../init.d/apache /etc/rc3.d/S96apache
&size(16){&font(b){3-2. zabbix-agentdの設定};};
事前に、zabbix-serverをインストールしていて、シンボリックリンクを張ってあった場合は再度張らないでOK
 # cd /etc
 # ln -s /usr/local/zabbix/etc ./zabbix
 # cd zabbix
 # vi zabbix_agentd.conf
~
&size(16){&font(b){II. ユーザーの準備};};
 # adduser www -d /var/apache -s /sbin/nologin
 # rm -rf /var/apache
 # mkdir -p /var/apache/html
 # chown -R root.www /var/apache
最低限、以下の項目を設定しておく。
 ※設定例
 //IPアドレスが"192.168.1.10"のマシンを想定
 LogFile=/var/log/zabbix/zabbix_agentd.log
 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
 Server=192.168.1.10
 ServerActive=192.168.1.10
 Hostname={ホストネームを英語で書く。他と被らない事}
 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
~
&size(16){&font(b){III. apacheの設定};};
 # cd /usr/local/apache/conf
 
&font(b){※以下のファイルを設定していく。他は必要の応じて};
 # vi httpd.conf
 # vi extra/httpd-default.conf
 # vi extra/httpd-languages.conf
&size(16){&font(b){3-3. 起動準備};};
zabbix-agentd起動スクリプトのコピーを行う。
※今回はfedora/CentOS用スクリプトを使用。他のディストリビューションならそれに合わせる。
 # cp {zabbixのソースコード}/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
 # chmod 755 /etc/init.d/zabbix_agentd
 # chkconfig --add zabbix_agentd
 # chkconfig zabbix_agentd on
 
 ※起動スクリプトの中にある"ZABBIX_BIN"を修正する。
 ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"
~
*アクセス制限 [#g3b1d5ea]
apache2.2系統とapache2.4系統ではアクセス制限のやり方が変わっているので注意
&size(16){&font(b){A. apache2.2};};
全てのアクセス許可する
 Order allow,deny
 Allow from all
*後始末 [#c65254bd]
後は、zabbix-server,zabbix-agentdの再起動テストや、
マシンごとリブートした時に正常稼働するかのチェックを行っていく。
負荷が結構高いので、いらないテンプレートは無効にした方が良い

全てのアクセスを拒否する
 Order deny,allow
 Deny from all
~
&size(16){&font(b){B. apache2.4};};
全てのアクセスを許可する
 Require all granted

全てのアクセスを拒否する
 Require all denied