ลง mailgraph + syslog-ng ใน freebsd
#cd /usr/ports/mail/mailgraph
#make install clean
เพิ่มใน /etc/rc.conf ตามนี้
mailgraph_enable="YES"
mailgraph_pidfile="/var/db/mailgraph/mailgraph.pid"
mailgraph_flags=""
logfile /var/log/maillog
"daemon-rrd=/var/db/mailgraph "ignore-localhost "daemon
"daemon-pid=${mailgraph_pidfile}"
mailgraph_user="root"
mailgraph_group="wheel"
สั่งให้ service ทำงาน
/usr/local/etc/rc.d/mailgraph start
ถ้าทำงานแล้วสั่ง
#/usr/local/etc/rc.d/mailgraph status
จะเป็น
mailgraph is running as pid 4406.
SYSLOG ธรรมดา
กรณีให้ส่ง log maillog มาจาก เครื่อง client (smtp0 , smtp1)
ฝั่ง client ที่ต้องการให้ ส่ง log มายังเครื่อง server ก็
ให้เข้าไปแก้ไข ใน
#vi /etc/syslog.conf
ยกตัวอย่างเช่น
ให้ maillog ส่ง log มาที่เครื่อง log server(xxx.yyy.zzz.100) ก็เพียงแค่
# ให้เก็บที่เครื่องตัวเอง กับส่งมาที่ ip xxx.yyy.zzz.100
mail.* -/var/log/maillog
mail.* @xxx.yyy.zzz.100
แล้วจัดการ save
แล้วสั่งให้ syslog ที่เครื่อง client restart 1 ครั้ง
#ตระกูล RH
/etc/init.d/syslog restart
แค่นั้นแล้วไปรอดูที่ cacti_syslog ครับ
แล้วไป config ให้ mailgraph.cgi ให้แสดงรูปให้ถูกที่
แล้วทำการสั่งให้ mailgraph ทำงานโดยเข้าไปเรียก
#/usr/local/sbin/mailgraph.pl --logfile /var/log/customer-maillog/maillog-total
--daemon-pid=/var/db/mailgraph/mailgraph.pid --daemon
ดูว่า service ทำงาน
#/usr/local/etc/rc.d/mailgraph status
จะเป็น
mailgraph is running as pid 4406.
ประมาณนั้น
ส่วนของ syslog-ng ( ฝั่ง server จะเป็น ) นั้น จะอยู่ที่
/usr/local/syslog-ng/syslog-ng.conf
สำหรับ config หลักๆ เป็น
source s_maillog_smtp0 { tcp(ip(116.68.146.13) port(21245)); }; #ควรตรงกับฝั่ง client
destination d_maillog_smtp0 { file("/var/log/customer-maillog/maillog-smtp0"); };
log { source(s_maillog_smtp0); destination(d_maillog_smtp0); }; #สามารถใส่ค่า filter ต่างได้ที่
ในส่วนของ "log" น่ะครับ
ข้อแนะนำ ส่วนของ filter สามารถใช้งานได้ดี เมื่อ log ที่ถูกส่งเข้ามาที่ server มีปริมาณไม่มากเกินไป
จะทำงานได้ ดี
แต่ ถ้ามีปริมาณเข้ามาเร็ว แนะนำ ให้ ส่วนของ client ทำการ ส่งเข้ามาเป็น socket แยก เลย ลองมาดูฝั่ง
client บ้างน่ะครั บ
options {
use_fqdn(no);
sync(0);
};
source s_maillog { unix-stream("/dev/log" max_connections(1000));
pipe("/proc/km
sg"); internal(); };
source s_file { unix-stream("/dev/log"); pipe("/proc/kmsg"); internal();
};
destination d_maillog { file("/var/log/maillog"); };
destination d_backup { tcp("10.20.0.252" port(20245)); }; # socket ควรส่งไปให้ ตรงกับ
ฝั่ง server น่ะครับ
destination d_tools { tcp("116.68.146.13" port(20245)); };# socket ควรส่งไปให้ ตรงกับ
ฝั่ง server น่ะครับ
destination d_tools_1 { tcp("116.68.146.13" port(21245)); };
log { source(s_maillog); destination(d_backup); };
log { source(s_maillog); destination(d_tools); };
log { source(s_maillog); destination(d_tools_1); };
log { source(s_maillog); destination(d_maillog); };
เมื่อ config เสร็จทั้งสองฝั่ง สั่งให้ restart service syslog-ng โดย
#killall syslog-ng
#/usr/local/sbin/syslog-ng
ครับ
ทำการปรับ permission maillog เป็น 644
#chmod 644 /var/log/customer_log/maillog*
แล้วสั่ง รันคำสั่ง ดังนี้
/usr/bin/perl /usr/local/sbin/mailgraph.pl --logfile /var/log/customer-maillog/maillog-smtp0
--daemon-rrd=/var/db/mailgraph/ --ignore-localhost --daemon
--daemon-pid=/var/db/mailgraph/mailgraph2.pid