วันนี้มีโจทย์ของ user ต้องการทำ syslog-ng เพื่อรับ log จากอุปกรณ์แล้วให้ user สามารถดู log ผ่าน Web interface กับ command line ได้
ซึ่งปัจจุบันมี syslogng-web ที่ทางผู้พัฒนาของ syslog-ng ได้ช่วยกันพัฒนาขึ้นแล้วแชร์ไว้ที่ github ศูนย์รวม developer ของโลก
ซึ่งในการเก็บ log แล้วยิงผ่าน syslog-ng นั้น ถ้าจะให้แสดงในหน้าเว็บ ต้องเก็บ log ลง database ซึ่งก็มีให้เลือกใช้งานทั้ง mysql , mongodb
เหตุผลที่เลือก mongodb ก็เพราะมีการจัดเก็บข้อมูลได้ไวกว่า mysql และฉลาดในการค้นหา keyword การจัดเรียง index
และการค้นหาตามรูปแบบ $regex ซึ่งเขาเทพในเรื่องนี้อยู่แล้ว เลยต้องเลือก mongodb ครับผม
วิธีการติดตั้งก็มาดูกันเลยครับผม
###Install mongodb + syslog-ng-mongo-db + syslogng-web
Reference :
https://github.com/nlaplante/syslogng-web#apt-get update
#apt-get install mongodb-server
#/etc/init.d/mongod restart
###create syslog db
#mongo syslog
###create capped connection for syslog-ng (size depend hdd size)
#db.createCollection( "messages", { capped: true, size: 100000000 } )
###install mongodb-driver for syslog-ng
#apt-get install syslog-ng-core syslog-ng-mod-mongodb
###Add configure support for mongodb
#vi /etc/syslog-ng/syslog-ng.conf
destination mongodb { mongodb(); };
log { source(src); destination(mongodb); };
###restart syslog-ng
#/etc/init.d/syslog-ng restart
###Begin install syslog-ng-web
#cd /home/syslog-ng
#git clone
https://github.com/nlaplante/syslogng-web.git#cd syslogng-web
#apt-get install npm
#npm install
#npm install -g bower
#ln -s /usr/bin/nodejs /usr/bin/node
#sudo normaluser
$bower install
##Start syslogng-web
#node app.js &
###test access to check log via syslogng-web
#http://your_ip_address:3000
###reference doc
https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/http://anton.dollmaier.name/2013/11/23/storing-syslogs-mongodb-syslog-ng/