前提条件
以下がインストール済みであること、また正常に起動していることを確認してください。
- php
- php-gd
- php-mysql
- mysql
- mysql-server
- gcc
- httpd
- syslog-ng(インストール手順は 「syslog-ngインストール手順」 を参照ください。)
インストール
1.php-syslog-ngのバイナリをダウンロードする
cd /usr/local/src
wget http://php-syslog-ng.googlecode.com/files/php-syslog-ng-2.9.8m.tar.gz
2. php-syslog-ngのモジュールを/var/www/php-syslog-ngに展開する
mkdir /var/www/php-syslog-ng
cd /var/www/php-syslog-ng
tar xvzf /usr/local/src/php-syslog-ng-2.9.8m.tar.gz
3. apacheのphp-syslog-ng用ディレクトリ設定を行う
vi /etc/httpd/conf.d/syslog-ng.conf
Alias /php-syslog-ng/ /var/www/php-syslog-ng/html/
<Directory /var/www/php-syslog-ng/html/>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
4.config/,jpcache/をapache権限に変更
chown -R apache:apache /var/www/php-syslog-ng/html/config/
chown -R apache:apache /var/www/php-syslog-ng/html/jpcache/
5.php.iniを編集する
vi /etc/php.ini
;max_execution_time = 30 ; Maximum execution time of each script, in seconds
max_execution_time = 60 ; Maximum execution time of each script, in seconds
;magic_quotes_gpc = Off
magic_quotes_gpc = On
;display_errors = Off
display_errors = On
6.Apacheを再起動し、php-syslog-ngの画面からインストールを行う
/etc/init.d/httpd restart
インストール(php-syslog-ng画面)
ブラウザから 「http://サーバアドレス/php-syslog-ng/install/」 にアクセスします。
1.pre-installation check
インストール状況が正しいことを確認し、右上の「Next>>」ボタンを押して次へ進みます。
※項目に対し、インストール状況の結果が赤い文字で表示された場合、
該当のものがインストールされているか、バージョンが正しいか、などを確認してください。
2.license
ライセンスが表示されます。
ライセンスに同意し、画面下部のチェックボックスをチェックを行います。
右上の「Next>>」ボタンを押して次へ進みます。
3.step 1
MySQLの設定を行います。
適宜設定を行い、右上の「Next>>」ボタンを押して次へ進みます。
設定が完了したかを確認するダイアログが表示されるので、「OK」ボタンを押して次へ進みます。
4.step 2
サイト名の設定を行います。
任意のタイトルを入力し、右上の「Next>>」ボタンを押して次へ進みます。
5.step 3
詳細設定を行います。
適宜設定を行い、右上の「Next>>」ボタンを押して次へ進みます。
6.step4
設定したユーザー名と初期パスワードが表示されます。
ログイン画面を開き、ユーザー名と初期パスワードを入力しログインします。
正常にログインが完了し、以下の画面が表示されることを確認します。
設定
1.php-syslog-ng用のスクリプト内にあるパスを現環境用に置換する
cd /var/www/php-syslog-ng/scripts
perl -i -pe 's/\/www\/php-syslog-ng/\/var\/www\/php-syslog-ng/g' */*
2.php-syslog-ng用のcron設定を行う
mkdir /var/log/php-syslog-ng
crontab -e
# PHP-Syslog-NG
@daily php /var/www/php-syslog-ng/scripts/logrotate.php >> /var/log/php-syslog-ng/logrotate.log
@daily find /var/www/php-syslog-ng/html/jpcache/ -atime 1 -exec rm -f '{}' ';'
0,5,10,15,20,25,30,35,40,45,50,55 * * * * php /var/www/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log
3.syslog-ngの出力処理に、MySQLデータベースにsyslogを書き込むように設定する
(php-syslog-ngがデータベースに保存されたデータを画面出力に利用するため)
mkfifo /tmp/mysql.pipe
cp -p /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/org.syslog-ng.conf
vi /etc/syslog-ng/syslog-ng.conf
log_fifo_size (3072);
log_msg_size (3072);
destination d_mysql_p {
pipe("/tmp/mysql.pipe"
template("INSERT INTO logs
(host, facility, priority, level, tag, datetime, program, msg)
VALUES
( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC','$PROGRAM', '$MSG' );
\n") template-escape(yes));
};
log { source(s_sys); destination(d_mysql_p); };
log { source(s_remote); destination(d_mysql_p); };
4.userテーブルにsysloguserおよびsyslogadminが存在するか確認し、存在しない場合は、データをINSERTする
mysql -u root -p mysql
mysql> select host,user,password from user where user="sysloguser" or user="syslogadmin";
mysql> quit;
存在しない場合は、以下の処理を実施する
vi /tmp/insert.sql
INSERT INTO user (Host, User, Password) VALUES ('localhost','sysloguser', password('sysloguser'));
INSERT INTO user (Host, User, Password) VALUES ('localhost','syslogadmin',password('syslogadmin'));
mysql -u root -p mysql < /tmp/insert.sql
5.名前付きパイプファイルをデータベースに適宜書き込むため、syslog-ngの起動スクリプトを修正する(黄色部分)
vi /etc/init.d/syslog-ng
. /etc/init.d/functions
MYSQL="/usr/bin/mysql"
test -e /tmp/mysql.pipe || /usr/bin/mkfifo /tmp/mysql.pipe
start()
{
verify_config
echo -n $"Starting syslog-ng: "
if [ -e $SYSLOGNG_COMPAT_PID ]; then
failure "PID file for existing syslog daemon exists"
fi daemon syslog-ng $SYSLOGNG_OPTIONS
ln -sf $SYSLOGNG_PID $SYSLOGNG_COMPAT_PID
RETVAL=$?
echo
$MYSQL -u syslogadmin --password=syslogadmin syslog < /tmp/mysql.pipe &
syslog-ngを再起動します。
/etc/init.d/syslog-ng restart
動作確認
ブラウザから 「http://サーバアドレス/php-syslog-ng/login.php」 にアクセスします。
ログインを行うと、検索画面が表示されます。
なお、パスワードの変更はConfig画面から行います。