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 <<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
http://blog.csdn.net/ckh8913/article/details/6747077