使用mongodb做数据存储的graylog2日志系统搭建
一、安装准备 服务器:Red Hat Enterprise Linux Server release 5.6 (Tikanga) java运行环境:jdk1.6 ruby运行环境:ruby 1.9.2 graylog2-server:https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.5.tar.gz graylog2-web-inter
一、安装准备
服务器:Red Hat Enterprise Linux Server release 5.6 (Tikanga)
java运行环境:jdk1.6
ruby运行环境:ruby 1.9.2
graylog2-server:https://github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.5.tar.gz
graylog2-web-interface:https://github.com/downloads/Graylog2/graylog2-web-interface/graylog2-web-interface-0.9.5p2.tar.gz
二、部署graylog2-server(接收日志信息)
1.安装jdk1.6(安装步骤省略)
2.上传graylog2-server-0.9.5.tgz 至/opt目录下
tar zxvf graylog2-server-0.9.5.tgz
ln -s /opt/graylog2-server-0.9.5/graylog2.conf /etc/graylog2.conf
修改graylog2.conf中mongodb数据源的设置
3.启动:cd /opt/graylog2-server-0.9.5/bin/ && ./graylog2ctl start
4.测试:ps aux|grep graylog2 或者查看:/opt/graylog2-server-0.9.5/bin/nohup.out 有无错误信息
三、graylog2-web(web UI查看日志信息)
1.安装ruby到/usr/local下
下载ruby-1.9.2-p290.tar.gz:http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
上传ruby-1.9.2-p290.tar.gz到/opt下
tar zxvf ruby-1.9.2-p290.tar.gz
cd ruby-1.9.2-p290
./configure --prefix=/usr/local/ruby
make && make install
echo 'PATH=/usr/local/ruby/bin:$PATH export PATH' >> /etc/profile
source /etc/profile
测试是否安装成功:ruby -v
2.安装graylog2-web-interface
上传graylog2-web-interface.tgz 到/opt下
tar zxvf graylog2-web-interface.tgz
cd graylog2-web-interface
gem install bundler ---需连网
bundle install ---需连网
bundle exec rake db:mongoid:create_indexes RAILS_ENV=production
chmod +x ./script/rails
修改/opt/graylog2-web-interface/conf/下的mongod.yml、general.yml、email.yml
启动:script/rails server -e production
测试:http://localhost:3000
***后台启动:
后台启动需要修改:
/usr/local/ruby/lib/ruby/gems/1.9.1/gems/graylog2-declarative_authorization-0.5.2/lib/declarative_authorization/reader.rb 94行
reader.parse(File.read(file), file)修改成
reader.parse(File.read(Rails.root.join(file)), file)
然后
cd /opt/graylog2-web-interface
bundle install --local
启动:script/rails server -e production -d
*********
添加定时检查(如果某个错误消息达到设定的量可以报警,确保服务器可以发送邮件)
*/10 * * * * cd /opt/graylog2-web-interface && /usr/local/ruby/bin/rake RAILS_ENV=production streamalarms:send
*/10 * * * * cd /opt/graylog2-web-interface && /usr/local/ruby/bin/rake RAILS_ENV=production subscriptions:send
测试:可以先执行一下以上两行定时器脚本看是否生效
到此graylog2日志系统已经安装完毕,
接下来,就可以使用log4j把项目中的日志输出到graylog2了,
需下载gelf4j的jar包:https://github.com/t0xa/gelfj
log4j配置:
log4j.appender.graylog2=org.graylog2.log.GelfAppender
log4j.appender.graylog2.graylogHost=localhost
log4j.appender.graylog2.facility=test
log4j.appender.graylog2.extractStacktrace=true
log4j.appender.graylog2.layout=org.apache.log4j.PatternLayout
log4j.appender.graylog2.layout.ConversionPattern=%p %d{yyyy-MM-dd HH\:mm} %c.%M(%L) | %m%n
如果部署日志系统的服务器无法连网怎么办,下面就是提供一个离线安装的方法,前提是需要能连网的机器上安装好后把系统依赖的gems打包。具体方法
1.在已装好日志系统的机器上使用bundle pack把依赖的gems打包,会保存在vender/cache下,或者
把/usr/local/ruby/lib/ruby/gems/1.9.1/gems下的gems打包到不能连网的机器上。
2.在不能联网的机器上把/usr/local/ruby/lib/ruby/gems/1.9.1/gems下的gems都手工安装一下(使用gem install XXX.gem)
然后进入/opt/graylog2-web-interface ,执行bundle install --system 这样就能安装好所依赖的gems了,其他的和前面所述的操作一样
其他:
graylog2-web-interface默认时间显示是使用UTC,所以有8小时的时间差,修改方法是
vi /opt/graylog2-web-interface/config/application.rb
config.time_zone = 'Beijing'