graylog2 是一个开源的日志存储系统,是由java语言编写的server,能够接收TCP,UDP,AMQP的协议发送的日志信息,并且基于mongodb数据库服务器快速存储,能够通过一个基于ruby编写的web管理界面,让轻松管理你的日志。

本人根据网上的教程进行了下总结,环境:centos 6.4 32bit

一.源码包下载

#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 

其中mongodb也可以通过yum安装,具体方法如下:

1、在CentosBase.repo中加入
-------------------------------------------------------------------------------------
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686
gpgcheck=0
-------------------------------------------------------------------------------------
2、yum install mongo-10gen-server #服务端
3、yum install mongo-10gen        #客户端

二.安装相关依赖包
yum -y install gcc* openssl-devel glib2-devel autoconf readline-devel curl-devel expat-devel gettext-devel zlib-devel

三.安装并配置mongodb数据库(如果手动安装mongodb需执行以下1和2步骤,通过yum安装直接跳至3步)
1.安装mongodb
useradd mongodb
mkdir -pv /data/db chown -R mongodb:mongodb /data
tar 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
2.为mongodb提供服务启动脚本,并启动
vim /etc/init.d/mongod  
#内容如下
#!/bin/bash

# chkconfig: - 90 11
# description: mongodb server SysV script

. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/mongod ]; then
       . /etc/sysconfig/mongod
fi
mongod=/usr/local/mongodb/bin/mongod
prog=mongod
lockfile=/data/db/mongod.lock
RETVAL=0
OPTIONS="--fork --logpath=/data/mongod.log"  

start() {
       echo -n $"Starting $prog: "
       daemon  $mongod $OPTIONS  
       RETVAL=$?
       echo
       [ $RETVAL = 0 ]  
       return $RETVAL
}
stop() {
   echo -n $"Stopping $prog: "
   killproc -p ${lockfile}  $mongod
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && rm -f ${lockfile}
}
case "$1" in
 start)
   start
   ;;
 stop)
   stop
   ;;
 restart)
   stop
   start
   ;;
 status)
   status -p ${lockfile} $mongod
       RETVAL=$?
   ;;
 *)
   echo $"Usage: $prog {start|stop|restart|status|}"
   exit 1
esac
exit $RETVAL
----------------------------------------------------

chmod a+x /etc/init.d/mongod 

chkconfig --add mongod 

chkconfig mongod on 

service mongod start 

3.创建graylog2所需数据库实例

/usr/local/mongodb/bin/mongo 

>use graylog2 

>db.addUser('graylog','123456') 

>exit 

四.安装graylog2-server

1.安装JDK环境

cd /usr/src 

chmod a+x jdk-6u21-linux-i586.bin 

./jdk-6u21-linux-i586.bin 

mv jdk1.6.0_21/ /usr/local/ 

cd /usr/local/ 

ln -sv jdk1.6.0_21 jdk 

 

添加java环境变量, 

vim /etc/profile 

JAVA_HOME=/usr/local/jdk 

PATH=$JAVA_HOME/bin:$PATH 

export JAVA_HOME PATH 

 

source /etc/profile 

2.安装graylog-server

cd /usr/src 

tar -xvf graylog2-server-0.9.5.tar.gz -C /usr/local/ 

useradd graylog 

chown -R graylog:graylog /usr/local/graylog2-server-0.9.5/ 

cd /usr/local 

ln -sv graylog2-server-0.9.5 graylog2 

cp /usr/local/graylog2/graylog2.conf.example  /etc/graylog2.conf 

3.配置garylog2-server

vim /etc/graylog2.conf  修改内容如下 

syslog_listen_port = 515    #将默认的514端口修改为其他未使用端口,因为514端口是syslog-ng默认的端口,这里需要用syslog-ng的514端口来接收其他服务器发来的日志,并进行处理的, 

syslog_protocol = udp 

 

mongodb_useauth = true 

mongodb_user = graylog     #访问mongodb的用户名 

mongodb_password = 123456   #访问mongodb用户名的密码 

mongodb_host = localhost    #mogodb的主机 

mongodb_database = graylog2 #存储日志的数据库 

mongodb_port = 27017        #访问mongodb的端口,默认是27017  

...... 

...... 

 

为了方便起见这里修改下graylog-server服务启动脚本配置文件 

sed -i 's/java/$JAVA_CMD/' /usr/local/graylog2/bin/graylog2ctl 

sed -i '2 aJAVA_CMD=/usr/local/jdk/bin/java' /usr/local/graylog2/bin/graylog2ctl 

4.将graylog2-server添加为系统服务并启动

vim /etc/init.d/graylog2  #内容如下 

#!/bin/bash 

# chkconfig: - 83 19 

# description: graylog2-server SysV script 

 

GRAYLOG_BIN=/usr/local/graylog2/bin 

cd $GRAYLOG_BIN && ./graylog2ctl $1 

 

------------------------------------------- 

chmod a+x /etc/init.d/graylog2 

chkconfig --add graylog2 

chkconfig graylog2 on 

service graylog2 start 

五.安装graylog2-web-interface

1.安装ruby脚本语言环境

tar xvf yaml-0.1.4.tar.gz 

cd yaml-0.1.4 

./configure --prefix=/usr/local/yaml 

make 

make install 

tar xvf ruby-1.9.2-p0.tar.gz 

cd ruby-1.9.2-p0 

./configure --prefix=/usr/local/ruby --enable-shared --disable-install-doc --with-opt-dir=/usr/local/yaml 

make 

make install 

 

在PATH环境变量中添加 

echo 'PATH=/usr/local/ruby/bin:$PATH  export PATH' >> /etc/profile

 

source /etc/profile 

2.安装graylog2-web-interface

tar 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-interface 

cd graylog2-web-interface 

gem install bundler     #需要连网 

bundle install      #需要联网 

3.配置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的数据库名 

 

-------------------------------------------------- 

vim /usr/local/graylog2-web-interface/config/general.yml #根据自己的需要修改,不做任何修改也没关系, 

vim /usr/local/graylog2-web-interface/config/email.yml   #根据自己的需要修改,不做任何修改也没关系,

 

配置日志切割 cat > /etc/logrotate.d/graylog2-web-interface <

4.启动graylog2-web-interface,自己可以照着上面的服务启动脚本的例子写一个SysV风格的脚本

cd /usr/local/graylog2-web-interface && ./script/rails server -e production & 

5.首次访问graylog2-web界面的配置

打开浏览器输入http://服务器IP:3000就打开graylog2的web界面了. 

首次使用需要做一些配置,只需要添加一个管理员帐号即可


参阅文档


http://ant595.blog.51cto.com/5074217/1081094

http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html

http://blog.csdn.net/ckh8913/article/details/6747077