FreeBSD/php-syslog-ng
php-syslog-ng †
必要な環境 †
インストールフォルダは/home/syslog/public_htmlでバーチャルホストはsyslog-ng.co.jp、データベースはsyslogとする。
ソースを持ってくる †
http://code.google.com/p/php-syslog-ng/downloads/list
公開するディレクトリに展開 †
$ cd /home/syslog/public_html $ fetch http://php-syslog-ng.googlecode.com/files/php-syslog-ng-2.9.8.tgz $ tar zxvf php-syslog-ng-2.9.8.tgz
DBを作成しておく。 †
$ mysql -u ユーザ -pパスワード mysql> create database syslog;
DBにテーブルを追加 †
※最新バージョンの2.9.8fでは最初から作成されているので、必要なし。
ALTER TABLE logs ADD counter INT NOT NULL DEFAULT 1; ALTER TABLE logs ADD fo datetime default NULL; ALTER TABLE logs ADD lo datetime default NULL;
Apache側の設定 †
Apacheのバーチャルホスト設定 †
<VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/home/syslog/public_html/php-syslog-ng" ServerName syslog-ng.co.jp </VirtualHost> <Directory "/home/*/public_html"> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory>
php.iniの設定変更 †
# vi /usr/local/lib/php.ini memory_limit = 128M max_execution_time = 300
Apacheの再起動 †
# /usr/local/etc/rc.d/apache22 restart
インストールはWebから行う †
http://syslog-ng.co.jp/install/index.php
各種スクリプトファイルの設定 †
php-syslog-ngのcronログの格納場所作成 †
# mkdir -p /var/log/php-syslog-ng
スクリプトファイルのパスをperlで修正 †
# cd /home/syslog/public_html/php-syslog-ng/scripts/ # perl -i -pe 's/\/www\/php-syslog-ng/\/home\/syslog\/public_html\/php-syslog-ng/g' *
/etc/crontabに設定追加 †
各スクリプトのinclude_onceのパスは事前に修正しておく!
# vi /etc/crontab ------------------ 追加 ------------------------- @daily /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/logrotate.php >> /var/log/php-syslog-ng/logrotate.log @daily /usr/bin/find /home/syslog/public_html/php-syslog-ng/html/jpcache/ -atime 1 -exec rm -f '{}' ';' */5 * * * * /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log */5 * * * * /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/SqueezeDB-v2.0.php >> /var/log/php-syslog-ng/squeezedb.log
ログが多いとSqueezeDB-v2.0.phpが二重起動してしまう。 †
これで起動する際にプロセスが存在する場合は、exitする。
# vi /home/syslog/public_html/php-syslog-ng/scripts/SqueezeDB-v2.0.php 112 $array=array(); 113 exec("ps auxw|grep SqueezeDB|grep -v grep|awk '{print $2}'",$array); 114 if(count($array)>1) exit;
グラフを表示させるには †
fontをダウンロードする †
$ fetch http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2 $ tar jxvf sazanami-20040629.tar.bz2 $ mkdir /home/syslog/public_html/php-syslog-ng/font $ cp sazanami-20040629/sazanami-gothic.ttf /home/syslog/public_html/php-syslog-ng/font/sazanami-gothic.ttf
jpgraphの設定を変更 †
$ vi /home/syslog/public_html/php-syslog-ng/html/includes/jpgraph/jpg-config.inc DEFINE("TTF_DIR","/usr/share/fonts/truetype/msttcorefonts/"); -----------------↓変更----------------- DEFINE("TTF_DIR","/home/syslog/public_html/php-syslog-ng/font/"); $ vi /home/syslog/public_html/php-syslog-ng/html/includes/jpgraph/jpgraph.php FF_VERDANA => array(FS_NORMAL=>'verdana.ttf', FS_BOLD=>'verdanab.ttf', FS_ITALIC=>'verdanai.ttf', FS_BOLDITALIC=>'' ), -----------------↓変更----------------- FF_VERDANA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf', FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ),
トップページのグラフを表示させる。(php-syslog-ng-2.9.8f) †
php-syslog-ng/html/config/config.php編集 †
# vi php-syslog-ng/html/config/config.php 83 // Enable Overall Statistics Graph on main page (This will slow down main page rendering) 84 define('JPG_MAIN', 'OFF'); // Not implemented yet ↓ 83 // Enable Overall Statistics Graph on main page (This will slow down main page rendering) 84 define('JPG_MAIN', 'ON'); // Not implemented yet
php-syslog-ng/html/graph.jpegを書込み可能にする。 †
# chmod 666 php-syslog-ng/html/graph.jpeg # ll php-syslog-ng/html/graph.jpeg -rw-rw-rw- 1 matsui matsui 15208 2 20 16:37 html/graph.jpeg
scripts/logrotate.phpでエラーがでる。 †
Dropping all_logs if it exists ... Error in "function perform_query()" <br>Mysql_error: Access denied; you need the RELOAD privilege for this operation<br>Query was: FLUSH TABLES<br>ok.Renaming 'logs' to 'logs20090225' and 'templogs' to 'logs' ... ok.
対処 †
これはsyslog-ngのMySQLユーザに更新の権限が無い為に発生する。
rootでmysqlにログインして
mysql> update mysql.user set reload_priv='Y' where user like 'syslog';
ページ上部のリンクを外す †
Paypal linkの箇所をコメントアウトしてやればOK
$ vi php-syslog-ng/html/includes/html_header.php 136 <!-- Begin Paypal link --> 137 <!-- 138 <form action="https://www.paypal.com/cgi-bin/webscr" method="post"> 139 <input type="hidden" name="cmd" value="_donations"> 140 <input type="hidden" name="business" value="cdukes@cdukes.com"> 141 <input type="hidden" name="item_name" value="PHP-Syslog-NG"> 142 <input type="hidden" name="no_shipping" value="0"> 143 <input type="hidden" name="no_note" value="1"> 144 <input type="hidden" name="currency_code" value="USD"> 145 <input type="hidden" name="tax" value="0"> 146 <input type="hidden" name="lc" value="US"> 147 <input type="hidden" name="bn" value="PP-DonationsBF"> 148 <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="Donate to a good cause :-)"> 149 <div align="right"> 150 The code you support today may<br> 151 turn out to be <a href="http://en.wikipedia.org/wiki/Skynet_%28Terminator%29">SkyNet</a> tomorrow... 152 </div> 153 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1"> 154 </form> 155 --> 156 <!-- END Paypal link -->