今回は最終回です。今までに作ったスクリプトやPHPファイルを
整理していきます。
まずスクリプトの保管場所は
/var/local/slog
取得ログの保管場所は
/var/local/slog/logs
HTMLファイルの保管場所は
/var/www/syslog
この3つにファイルが配置されます。
作成したスクリプトファイルは下記の通りです。
・syslogpick.sh 前日のログを取得する
・split.sh 取得したログを加工してMySQLに登録する
・today.sh 当日のログを取得してMySQLに登録する
まず日時で取得する為にcronに登録します。
# crontab -e
10 1 * * * /usr/local/slog/syslogpick.sh > /dev/null 2>&1
一応時間を少しおいて1時10分に起動するようにしました。
また、取得後にすぐMySQL登録したいのでsyslogpick.shに少し追記しました。
# vi syslogpick.sh
後ろの方です。
/var/local/slog/split.sh ←スクリプトを実行するようにしました。
echo ${DATE} syslog inport sucsess !! >> ${DIR}slog.log
echo =============================== >> ${DIR}slog.log
exit
続いてHTMLのファイルですが、
・header.html 全ページ共通のヘッダーHTML
・footer.html 全ページ共通のフッターHTML
・index.php 最初の画面
・syslog.css CSSファイル
・syslog.php syslog集計したのを表示させる
・csv.php csv出力用
・pick.php 当日ログを取得する為のページ
・today.php 当日ログの取得スクリプトを実行する
今回はCSSファイルだけ./css配下にしていますが、あとはホームディレクトリに配置します。
場所を変えるときはパスを変えるように気をつけて下さい。
また、logsにログが溜まってしまいますので定期的に削除します。
logrotateにてローテートさせてもいいですが、頭に日付を付けているのでそこで
2ヶ月前のログを削除するようにします。
# vi split.sh
## tmp log delete
rm -f ${DIR}${DATEDAY}_syslog.tmp1
rm -f ${DIR}${DATEDAY}_syslog.tmp2
## 2 manths ago log dalete
rm -f ${DIR}${DELDATE}_syslog
rm -f ${DIR}${DELDATE}_syslog.txt
## 2 manths ago data dalete
mysql -u root -psystem syslogdb -e “delete from syslogtable where DATE = ${DELDATE};”
## check date clear
echo > ${DIR}syslog_check.txt
slogについてはさほど大きくならないので何もしていませんが、logrotateで月1か週1位でローテート
させて4世代後に削除等にしたらいいと思います。
以上でSYSLOG検索くんの製作を終了します。