วันพฤหัสบดีที่ 18 พฤศจิกายน พ.ศ. 2553

เอา Log ใน Squid ใส่ใน Mysql

สั่ง
apt-get install syslog-ng
เสร็จแล้วแก้ไขไฟล์ /etc/syslog-ng/syslog-ng.conf
เพิ่ม
######################
destination d_mysql {
pipe("/var/log/mysql.pipe"
template("
CREATE TABLE IF NOT EXISTS  log_$YEAR$MONTH$DAY  (
   host  varchar(32) default NULL,
  facility   varchar(10) default NULL,
   priority  varchar(10) default NULL,
   level  varchar(10) default NULL,
   tag  varchar(10) default NULL,
  datetime  datetime default NULL,
   program  varchar(15) default NULL,
  msg  text,
   seq  bigint(20) unsigned NOT NULL auto_increment,
  PRIMARY KEY  (seq),
  KEY host (host),
  KEY  program (program),
  KEY  datetime (datetime),
  KEY  priority  (priority),
  KEY  facility (facility)
)   DEFAULT CHARSET=tis620 COLLATE=tis620_bin;\n\n
INSERT INTO log_$YEAR$MONTH$DAY
(host, facility, priority, level, tag, datetime, program, msg,seq) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG','$YEAR-$MONTH-$DAY
$HOUR:$MIN:$SEC','$PROGRAM', '$MSG',null );\n\n") template-escape(yes));
};
######################

filter f_proxyS { match("http"); };
log {
source(s_all);
filter(f_proxyS);
destination(d_mysql);
};
จบการแก้ไขไฟล์
สร้างไฟล์
/etc/syslog2mysql.sh
มีเนื้อหา
#!/bin/bash
if [ ! -e /var/log/mysql.pipe ]
then
/usr/bin/mkfifo /var/log/mysql.pipe
fi
while [ -e /var/log/mysql.pipe ]
do
/usr/bin/mysql  -uroot -p1234  syslog < /var/log/mysql.pipe > /dev/null
done

จบ
เสร็จแล้วสั่ง
/etc/init.d/syslog-ng restart
sh  /etc/syslog2mysql.sh &
ใน squid.conf
เพิ่ม
access_log  syslog
หนึ่งบรรทัด
แล้วสั่ง
squid -k reconfig
ใน db สร้างฐานข้อมูลชื่อ syslog จบจ้า

ไม่มีความคิดเห็น:

แสดงความคิดเห็น