技術情報

php-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>>」ボタンを押して次へ進みます。

※項目に対し、インストール状況の結果が赤い文字で表示された場合、

  該当のものがインストールされているか、バージョンが正しいか、などを確認してください。

インストール画面:pre-installation check

 

2.license

ライセンスが表示されます。

ライセンスに同意し、画面下部のチェックボックスをチェックを行います。

右上の「Next>>」ボタンを押して次へ進みます。

インストール画面:license

 

3.step 1

MySQLの設定を行います。

適宜設定を行い、右上の「Next>>」ボタンを押して次へ進みます。

インストール画面:step1

 

設定が完了したかを確認するダイアログが表示されるので、「OK」ボタンを押して次へ進みます。

インストール画面:ダイアログ

 

4.step 2

サイト名の設定を行います。

任意のタイトルを入力し、右上の「Next>>」ボタンを押して次へ進みます。

インストール画面:step2

 

5.step 3

詳細設定を行います。

適宜設定を行い、右上の「Next>>」ボタンを押して次へ進みます。

インストール画面:step3

 

6.step4

設定したユーザー名と初期パスワードが表示されます。

インストール画面:終了

 

ログイン画面を開き、ユーザー名と初期パスワードを入力しログインします。

login

 

正常にログインが完了し、以下の画面が表示されることを確認します。

1stlogin

 

 

設定

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」 にアクセスします。

ログインを行うと、検索画面が表示されます。

search

 

なお、パスワードの変更はConfig画面から行います。

passwd

Pin It