CentOS6でrsyslogが大幅にバージョンしてて、掲載していた内容と大きく異なったので3回目の再掲載。
うんで、今回はMySQLに放り込むログをフィルタリングするように設定してます。
■インストールしたパッケージ
・rsyslog-4.6.2-3.el6_1.4.x86_64
・rsyslog-mysql-4.6.2-3.el6_1.4.x86_64
■Mysqlのデータベース
対象ログ :local1(ネットワーク機器等のSyslog設定でファシリティー”local1″を受信する場合)
DBサーバ :localhost
DB名 :Syslog
アクセスユーザ:root(実際はrootは好ましくない。適宜変更する)
パスワード :test
■フィルタリングの内容(#### RULES ####以下)
対象ログ :local1
内容 :Netscreenのブロードキャストログ(キーワードは”dst=224.0.0.18″)だけを破棄。
上記の内容を元に設定例を記してます。
Mysqlにシスログを格納するデータベースを作成 # mysql -u root -p Syslog < /usr/share/doc/rsyslog-mysql-4.6.2/createDB.sql 設定ファイルを編集する # vi /etc/rsyslog.conf #### MODULES #### $ModLoad imuxsock.so $ModLoad imklog.so # Provides UDP syslog reception #$ModLoad imudp.so #$UDPServerRun 514 $ModLoad imudp $UDPServerRun 514 # Provides TCP syslog reception #$ModLoad imtcp.so #$InputTCPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 #### GLOBAL DIRECTIVES #### # Use default timestamp format $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat #### RULES #### $ModLoad ommysql.so if ( $syslogfacility-text == 'local1' ) and \ not ( $msg contains 'dst=224.0.0.18' ) then \ :ommysql:localhost,Syslog,root,test local2.* ~
うんで、併せてMysqlに放り込んだログをWEBで見るためのphpを載せてたんですが
AND検索に対応してないじゃないか。あまりにもお粗末すぎて話にならないんで以下を修正しました。
result.php
・変数一覧に”SEARCHKEYWORD”を追加
・AND検索用に検索キーワードを加工する為に以下を追加
//AND検索用に加工 $str = array(" "," and "," AND "); $SEARCHKEYWORD = str_replace($str," ",$SEARCHKEYWORD); $SEARCHWORD = str_replace(" ","% %",$SEARCHKEYWORD);
・表示する検索キーワードの変数をSEARCHKEYWORDに変更
変更前 echo "検索キーワード:".$SEARCHWORD; 変更後 echo "検索キーワード:".$SEARCHKEYWORD;
Syslog検索 from MySQL v1.1
https://www.isoppe.jp/db/
うんで内容ファイルを公開、と。https://www.isoppe.jp/upload/log/011.zip
以下が全文になります。複数ファイルを1つにまとめてます。
==================================
2/17 22:00 若干修正