原文地址:http://blog.chinaunix.net/uid-11065483-id-3654882.html
由于公司內需要監控QQ的上下線記錄,原本使用了分光+Panabit+Splunk的結構來做記錄。Panabit的使用是相當舒服的,可是當一天內的Splunk的日志記錄超過了500MB的時候,Splunk的Free版本卻不能再使用了,這讓我非常的郁悶。于是我開始尋找其他的解決方案,終于被我發現了Graylog2。Graylog2配合MongoDB可以快速檢索LOG的信息,這對于每天有大量日志需要記錄并偶爾需要檢索重要信息的場景中,十分的有用。
? ? Graylog2安裝完后的效果圖如下:
????
? ??效果還可以吧,使用Quickfilter可以快速檢索相關的Message。“一萬年太久,只爭朝夕”,咱說干就干!下面開始介紹如何安裝Graylog2。
一.源碼包下載
點擊(此處)折疊或打開
cd /usr/src#mongodb數據庫,在此的主要作用是存儲日志信息wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.2.1.tgz#graylog2日志服務器wget http://cloud.github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.5.tar.gz#yaml是一種編程語言,wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz#ruby腳步語言wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz#graylog2-web界面wget http://cloud.github.com/downloads/Graylog2/graylog2-web-interface/graylog2-web-interface-0.9.5p2.tar.gz#eventlog,安裝syslog-ng需要先安裝eventlogwget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.4/source/eventlog_0.2.12.tar.gz#syslog-ng日志服務器,wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.3.5/source/syslog-ng_3.3.5.tar.gz#JDK,java環境JDK下載地址, http://www.oracle.com/technetwork/java/javase/downloads/index.html 打開此鏈接下載相應的jdk版本,這里以jdk-6u21-linux-i586.bin ? ? ?你可以按上面的來下載,或者也可以到我的網盤上下載,地址是:http://www.kuaipan.cn/file/id_11613978115442246.htm。
二.安裝相關依賴包
點擊(此處)折疊或打開
yum -y install gcc* openssl-devel glib2-devel ? ??操作系統推薦使用CentOS 5.7 X64版本。我在使用CentOS 6版本的時候在進行到gem install bundler的時候會出現一個文件未找到,Google上的解決方案不多,但是我發現可以使用Find搜索之后根目錄之后,再將此文件拷貝到上級目錄中就可以解決了。我有強迫癥,所以我還是推薦使用CentOS 5.7 X64版本。????
三.安裝并配置mongodb數據庫
????1.安裝mongodb
點擊(此處)折疊或打開
useradd mongodbmkdir -pv /data/dbchown -R mongodb:mongodb /datatar xvf /usr/src/mongodb-linux-i686-2.2.1.tgz -C /usr/local/cd /usr/local/ln -sv mongodb-linux-i686-2.2.1 mongodb ? ??Mongo的基本操作可以參見:http://blog.csdn.net/shirdrn/article/details/7105539? ??
????2.為mongodb提供服務啟動腳本,并啟動
點擊(此處)折疊或打開
#vim /etc/init.d/mongod #內容如下————————————————————————————————#!/bin/bash# chkconfig: - 90 11# description: mongodb server SysV script . /etc/rc.d/init.d/functionsif [ -f /etc/sysconfig/mongod ]; then. /etc/sysconfig/mongodfimongod=/usr/local/mongodb/bin/mongodprog=mongodlockfile=/data/db/mongod.lockRETVAL=0OPTIONS="--fork --logpath=/data/mongod.log" start() {echo -n $"Starting $prog: "daemon $mongod $OPTIONSRETVAL=$?echo[ $RETVAL = 0 ]return $RETVAL}stop() {echo -n $"Stopping $prog: "killproc -p ${lockfile} $mongodRETVAL=$?echo[ $RETVAL = 0 ] && rm -f ${lockfile}}case "$1" instart)start;;stop)stop;;restart)stopstart;;status)status -p ${lockfile} $mongodRETVAL=$?;;*)echo $"Usage: $prog {start|stop|restart|status|}"exit 1esacexit $RETVAL ????
????3.修改權限+開機自啟動
點擊(此處)折疊或打開
chmod a+x /etc/init.d/mongodchkconfig --add mongodchkconfig mongod onservice mongod start ????
????4.創建graylog2所需數據庫實例
點擊(此處)折疊或打開
/usr/local/mongodb/bin/mongo>use admin>db.addUser('admin','password')>use graylog2>db.addUser('graylog','redhat')>exit ????這里的用戶名:“Graylog和redhat”是后面Graylog2連接數據庫需要使用的。如果后面Graylog2連接Mongo失敗,可以使用命令:db.auth("graylog", ",redhat")將用戶添加到認證中。
四.安裝graylog2-server
????
????1.安裝JDK環境
點擊(此處)折疊或打開
cd /usr/srcchmod a+x jdk-6u21-linux-i586.bin./jdk-6u21-linux-i586.binmv jdk1.6.0_21/ /usr/local/cd /usr/local/ln -sv jdk1.6.0_21 jdk ????
????2.添加java環境變量
點擊(此處)折疊或打開
#vim /etc/profile——————————————————JAVA_HOME=/usr/local/jdkPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH——————————————————#source /etc/profile最后不要忘記source一下 ????
????3.安裝graylog-server
點擊(此處)折疊或打開
cd /usr/srctar -xvf graylog2-server-0.9.5.tar.gz -C /usr/local/useradd graylogchown -R graylog:graylog /usr/local/graylog2-server-0.9.5/cd /usr/localln -sv graylog2-server-0.9.5 graylog2cp /usr/local/graylog2/graylog2.conf.example /etc/graylog2.conf ????
????4.配置garylog2-server
點擊(此處)折疊或打開
vim /etc/graylog2.conf——————————————————————syslog_listen_port = 515 #將默認的514端口修改為其他未使用端口,因為514端口是syslog-ng默認的端口,這里需要用syslog-ng的514端口來接收其他服務器發來的日志,并進行處理的syslog_protocol = udpmongodb_user = graylog #訪問mongodb的用戶名mongodb_password = redhat #訪問mongodb用戶名的密碼mongodb_host = localhost #mogodb的主機mongodb_database = graylog2 #存儲日志的數據庫mongodb_port = 27017 #訪問mongodb的端口,默認是27017 ????
????5.修改下graylog-server服務啟動腳本配置文件
點擊(此處)折疊或打開
sed -i 's/java/$JAVA_CMD/' /usr/local/graylog2/bin/graylog2ctlsed -i '2 aJAVA_CMD=/usr/local/jdk/bin/java' /usr/local/graylog2/bin/graylog2ctl ????
????6.將graylog2-server添加為系統服務并啟動
點擊(此處)折疊或打開
vim /etc/init.d/graylog2 #內容如下—————————————————————————————————#!/bin/bash## chkconfig: - 83 19# description: graylog2-server SysV script# GRAYLOG_BIN=/usr/local/graylog2/bincd $GRAYLOG_BIN && ./graylog2ctl $1 ????
????7.修改權限+自啟動
點擊(此處)折疊或打開
chmod a+x /etc/init.d/graylog2chkconfig --add graylog2chkconfig graylog2 onservice graylog2 start
五.安裝graylog2-web-interface
????
????1.安裝ruby腳本語言環境
點擊(此處)折疊或打開
cd /usr/srctar xvf yaml-0.1.4.tar.gzcd yaml-0.1.4./configure --prefix=/usr/local/yamlmakemake installcd /usr/srctar xvf ruby-1.9.2-p0.tar.gzcd ruby-1.9.2-p0./configure --prefix=/usr/local/ruby --enable-shared --disable-install-doc --with-opt-dir=/usr/local/yamlmakemake install ????
????2.修改PATH中的環境變量
點擊(此處)折疊或打開
PATH=......:/usr/local/ruby/bin #在PATH中添加ruby的路徑,不要忘記再source一下 ????
????3.安裝graylog2-web-interface
點擊(此處)折疊或打開
cd /usr/srctar xvf graylog2-web-interface-0.9.5p2.tar.gz -C /usr/local/cd /usr/local/chown -R graylog:graylog /usr/local/graylog2-web-interface-0.9.5p2/ln -sv graylog2-web-interface-0.9.5p2/ graylog2-web-interfacecd graylog2-web-interfacegem install bundler #需要連網bundle install #需要聯網 ????
????4.配置graylog2-web-interface
點擊(此處)折疊或打開
vim /usr/local/graylog2-web-interface/config/mongoid.yml #內容如下—————————————————————————————————————————————————————————————————production:host: localhost #mongodb的主機port: 27017 #mongodb的端口號username: graylog #mongodb的用戶名password: redhat #mongodb的用戶名密碼database: graylog2 #mongodb的數據庫名 ????
????5.配置日志切割
點擊(此處)折疊或打開
cat > /etc/logrotate.d/graylog2-web-interface <<EOF/usr/local/graylog2-web-interface/log/*log {size=512Mrotate 90copytruncatedelaycompresscompressnotifemptymissingok }EOF ????
????6.啟動graylog2-web-interface
點擊(此處)折疊或打開
cd /usr/local/graylog2-web-interface && ./script/rails server -e production & ? ??這里我沒有學上面再做一個服務腳本,而是直接跑到機器上在/etc/profile中添加TMOUT=0,然后再輸入上面這句,就結束了。我喜歡屏幕上不停滾動的信息,很有科技感。?
????7.訪問Graylog2的web界面
????打開瀏覽器輸入-->http://服務器IP:3000<--就打開Graylog2的web界面了。首次使用基本只要增加一個管理員帳號就ok了。
六.安裝并配置syslog-ng服務
????
????1.安裝eventlog
點擊(此處)折疊或打開
cd /usr/src/tar xvf eventlog_0.2.12.tar.gzcd eventlog-0.2.12./configure --prefix=/usr/local/eventlogmakemake install ????
????2.安裝syslog-ng
點擊(此處)折疊或打開
cd /usr/srctar xvf syslog-ng_3.3.5.tar.gzcd syslog-ng-3.3.5export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig./configure --prefix=/usr/local/syslog-ngmakemake install ????
????3.配置syslog-ng
點擊(此處)折疊或打開
cat > /usr/local/syslog-ng/etc/syslog-ng.conf <<EOF@version: 3.3@include "scl.conf"source s_local {system();internal();};#設置日志的來源為本機udp的514端口source s_network { udp(ip(0.0.0.0) port(514)); }; #將日志發送到本機的udp515端口進行處理,515端口是graylog2-server的端口,destination d_local { udp("127.0.0.1" port(515) ); };log {source(s_local);source(s_network);destination(d_local);};EOF ????
????4.添加為系統服務
點擊(此處)折疊或打開
vim /etc/init.d/syslog-ng #內容如下____________#!/bin/bash## chkconfig: - 60 27# description: syslog-ng SysV script.. /etc/rc.d/init.d/functions syslog_ng=/usr/local/syslog-ng/sbin/syslog-ngprog=syslog-ngpidfile=/usr/local/syslog-ng/var/syslog-ng.pidlockfile=/usr/local/syslog-ng/var/syslog-ng.lockRETVAL=0STOP_TIMEOUT=${STOP_TIMEOUT-10} start() {echo -n $"Starting $prog: "daemon --pidfile=$pidfile $syslog_ng $OPTIONSRETVAL=$?echo[ $RETVAL = 0 ] && touch ${lockfile}return $RETVAL} stop() {echo -n $"Stopping $prog: "killproc -p $pidfile -d $STOP_TIMEOUT $syslog_ngRETVAL=$?echo[ $RETVAL = 0 ] && rm -f $lockfile $pidfile} case "$1" instart)start;;stop)stop;;status)status -p $pidfile $syslog_ngRETVAL=$?;;restart)stopstart;;*)echo $"Usage: $prog {start|stop|restart|status}"RETVAL=2esacexit $RETVAL ????
????5.開機自啟動
點擊(此處)折疊或打開
chmod a+x /etc/init.d/syslog-ngkillall syslogdchkconfig --add syslog-ngchkconfig syslog-ng onservice syslog-ng start
? ??至此,Graylog2的配置已經完成了。大家把Syslog往Graylog2上吐就可以了。若有安裝失敗或者出錯的地方歡迎留言。
????
? ??最后,要感謝http://ant595.blog.51cto.com/blog/5074217/1081094的博客,我只是在實驗了之后,再廣播一下。同時注明了我的操作而已。
轉載于:https://www.cnblogs.com/davidwang456/p/4485433.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的graylog2+syslog-ng+mongodb构建集中管理日志服务器 --转载的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。