Golfreeze.packetlove.com: Life style of Golfreeze Canon400D Family kammtan.com Jazz Freebsd Unix Linux System Admin guitar Music

All about unix linux freebsd and FAQ for Packetlove.com Web hosting , Mail hosting , VoIP + IP PBX server => Mail issue , problem , configuration => Topic started by: golfreeze on มกราคม 23, 2011, 12:24:49 AM

Title: ลง mailgraph + syslog-ng ใน freebsd by golfreeze
Post by: golfreeze on มกราคม 23, 2011, 12:24:49 AM
ลง 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
Title: Re: ลง mailgraph + syslog-ng ใน freebsd by golfreeze
Post by: golfreeze on มีนาคม 24, 2011, 04:30:53 PM
ถ้า mailgraph มีปัญหาให้
#ps auxw | grep mailgraph

แล้ว kill process ทั้งสามไปก่อนจากนั้น


สั่ง รัน mailgraph ใหม่โดย
วิธีรันให้สร้างเป็น bg process แบบนี้

/usr/bin/perl /usr/local/sbin/mailgraph.pl --logfile /var/log/customer-maillog/maillog-total --daemon-rrd=/var/log/ --ignore-localhost --daemon-pid=/var/log/mailgraph.pid &
/usr/bin/perl /usr/local/sbin/mailgraph.pl --logfile /var/log/customer-maillog/maillog-smtp0 --daemon-rrd=/var/db/mailgraph/ --daemon-pid=/var/db/mailgraph/mailgraph8.pid &
/usr/bin/perl /usr/local/sbin/mailgraph.pl --logfile /var/log/customer-maillog/maillog-smtp1 --daemon-rrd=/var/db/mailgraph/ --daemon-pid=/var/db/mailgraph/mailgraph9.pid &

ถ้ารูปยังไม่ขึ้นลองไปเช๊ค ไฟล์ mailgraph.cgi แล้วดูตรง path ด้วยน่ะครับผม ว่ามันตรงกันหรือเปล่า
Title: Re: ลง mailgraph + syslog-ng ใน freebsd by golfreeze
Post by: golfreeze on มีนาคม 24, 2011, 04:45:28 PM
ที่ไฟล์ mailgraph.cgi ลองดูที่ path $rrd ให้ตรงด้วยนะครับ ต้องเป็นชื่อไฟล์ mailgraph.rrd นะครับ

my $host = (POSIX::uname())[1];
my $scriptname = 'mailgraph.cgi';
my $xpoints = 540;
my $points_per_sample = 3;
my $ypoints = 160;
my $ypoints_err = 96;
my $rrd = '/usr/local/www/apache22/data/mailgraph/mailgraph.rrd'; # path to where the RRD database is
my $rrd_virus = '/usr/local/www/apache22/data/mailgraph/mailgraph_virus.rrd'; # path to where the Virus RRD database is
my $tmp_dir = '/tmp/mailgraph'; # temporary directory where to store the images