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:///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:////pub/ruby/1.9/ruby-1.9.2-p0.tar.gz 
#graylog2-web界面
wget http:///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 <<EOF /usr/local/graylog2-web-interface/log/*log {        size=512M        rotate 90        copytruncate        delaycompress        compress        notifempty        missingok } EOF

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



转载于:https://blog.51cto.com/johnsz/1581374