原文地址: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。

一.源码包下载

点击(此处)折叠或打开

  1. cd /usr/src
  2. #mongodb数据库,在此的主要作用是存储日志信息
  3. wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.2.1.tgz
  4. #graylog2日志服务器
  5. wget http://cloud.github.com/downloads/Graylog2/graylog2-server/graylog2-server-0.9.5.tar.gz
  6. #yaml是一种编程语言,
  7. wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
  8. #ruby脚步语言
  9. wget ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p0.tar.gz
  10. #graylog2-web界面
  11. wget http://cloud.github.com/downloads/Graylog2/graylog2-web-interface/graylog2-web-interface-0.9.5p2.tar.gz
  12. #eventlog,安装syslog-ng需要先安装eventlog
  13. wget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.4/source/eventlog_0.2.12.tar.gz
  14. #syslog-ng日志服务器,
  15. wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.3.5/source/syslog-ng_3.3.5.tar.gz
  16. #JDK,java环境
  17. 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。

二.安装相关依赖包

点击(此处)折叠或打开

  1. 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

点击(此处)折叠或打开

  1. useradd mongodb
  2. mkdir -pv /data/db
  3. chown -R mongodb:mongodb /data
  4. tar xvf /usr/src/mongodb-linux-i686-2.2.1.tgz -C /usr/local/
  5. cd /usr/local/
  6. ln -sv mongodb-linux-i686-2.2.1 mongodb

Mongo的基本操作可以参见:http://blog.csdn.net/shirdrn/article/details/7105539

2.为mongodb提供服务启动脚本,并启动

点击(此处)折叠或打开

  1. #vim /etc/init.d/mongod #内容如下
  2. ————————————————————————————————
  3. #!/bin/bash
  4. # chkconfig: - 90 11
  5. # description: mongodb server SysV script
  6. . /etc/rc.d/init.d/functions
  7. if [ -f /etc/sysconfig/mongod ]; then
  8. . /etc/sysconfig/mongod
  9. fi
  10. mongod=/usr/local/mongodb/bin/mongod
  11. prog=mongod
  12. lockfile=/data/db/mongod.lock
  13. RETVAL=0
  14. OPTIONS="--fork --logpath=/data/mongod.log"
  15. start() {
  16. echo -n $"Starting $prog: "
  17. daemon $mongod $OPTIONS
  18. RETVAL=$?
  19. echo
  20. [ $RETVAL = 0 ]
  21. return $RETVAL
  22. }
  23. stop() {
  24. echo -n $"Stopping $prog: "
  25. killproc -p ${lockfile} $mongod
  26. RETVAL=$?
  27. echo
  28. [ $RETVAL = 0 ] && rm -f ${lockfile}
  29. }
  30. case "$1" in
  31. start)
  32. start
  33. ;;
  34. stop)
  35. stop
  36. ;;
  37. restart)
  38. stop
  39. start
  40. ;;
  41. status)
  42. status -p ${lockfile} $mongod
  43. RETVAL=$?
  44. ;;
  45. *)
  46. echo $"Usage: $prog {start|stop|restart|status|}"
  47. exit 1
  48. esac
  49. exit $RETVAL

3.修改权限+开机自启动

点击(此处)折叠或打开

  1. chmod a+x /etc/init.d/mongod
  2. chkconfig --add mongod
  3. chkconfig mongod on
  4. service mongod start

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

点击(此处)折叠或打开

  1. /usr/local/mongodb/bin/mongo
  2. >use admin
  3. >db.addUser('admin','password')
  4. >use graylog2
  5. >db.addUser('graylog','redhat')
  6. >exit

这里的用户名:“Graylog和redhat”是后面Graylog2连接数据库需要使用的。如果后面Graylog2连接Mongo失败,可以使用命令:db.auth("graylog", ",redhat")将用户添加到认证中。

四.安装graylog2-server
    
    1.安装JDK环境

点击(此处)折叠或打开

  1. cd /usr/src
  2. chmod a+x jdk-6u21-linux-i586.bin
  3. ./jdk-6u21-linux-i586.bin
  4. mv jdk1.6.0_21/ /usr/local/
  5. cd /usr/local/
  6. ln -sv jdk1.6.0_21 jdk

2.添加java环境变量

点击(此处)折叠或打开

  1. #vim /etc/profile
  2. ——————————————————
  3. JAVA_HOME=/usr/local/jdk
  4. PATH=$JAVA_HOME/bin:$PATH
  5. export JAVA_HOME PATH
  6. ——————————————————
  7. #source /etc/profile最后不要忘记source一下

3.安装graylog-server

点击(此处)折叠或打开

  1. cd /usr/src
  2. tar -xvf graylog2-server-0.9.5.tar.gz -C /usr/local/
  3. useradd graylog
  4. chown -R graylog:graylog /usr/local/graylog2-server-0.9.5/
  5. cd /usr/local
  6. ln -sv graylog2-server-0.9.5 graylog2
  7. cp /usr/local/graylog2/graylog2.conf.example /etc/graylog2.conf

4.配置garylog2-server

点击(此处)折叠或打开

  1. vim /etc/graylog2.conf
  2. ——————————————————————
  3. syslog_listen_port = 515 #将默认的514端口修改为其他未使用端口,因为514端口是syslog-ng默认的端口,这里需要用syslog-ng的514端口来接收其他服务器发来的日志,并进行处理的
  4. syslog_protocol = udp
  5. mongodb_user = graylog #访问mongodb的用户名
  6. mongodb_password = redhat #访问mongodb用户名的密码
  7. mongodb_host = localhost #mogodb的主机
  8. mongodb_database = graylog2 #存储日志的数据库
  9. mongodb_port = 27017 #访问mongodb的端口,默认是27017

5.修改下graylog-server服务启动脚本配置文件

点击(此处)折叠或打开

  1. sed -i 's/java/$JAVA_CMD/' /usr/local/graylog2/bin/graylog2ctl
  2. sed -i '2 aJAVA_CMD=/usr/local/jdk/bin/java' /usr/local/graylog2/bin/graylog2ctl

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

点击(此处)折叠或打开

  1. vim /etc/init.d/graylog2 #内容如下
  2. —————————————————————————————————
  3. #!/bin/bash
  4. #
  5. # chkconfig: - 83 19
  6. # description: graylog2-server SysV script
  7. #
  8. GRAYLOG_BIN=/usr/local/graylog2/bin
  9. cd $GRAYLOG_BIN && ./graylog2ctl $1

7.修改权限+自启动

点击(此处)折叠或打开

  1. chmod a+x /etc/init.d/graylog2
  2. chkconfig --add graylog2
  3. chkconfig graylog2 on
  4. service graylog2 start

五.安装graylog2-web-interface
    
    1.安装ruby脚本语言环境

点击(此处)折叠或打开

  1. cd /usr/src
  2. tar xvf yaml-0.1.4.tar.gz
  3. cd yaml-0.1.4
  4. ./configure --prefix=/usr/local/yaml
  5. make
  6. make install
  7. cd /usr/src
  8. tar xvf ruby-1.9.2-p0.tar.gz
  9. cd ruby-1.9.2-p0
  10. ./configure --prefix=/usr/local/ruby --enable-shared --disable-install-doc --with-opt-dir=/usr/local/yaml
  11. make
  12. make install

2.修改PATH中的环境变量

点击(此处)折叠或打开

  1. PATH=......:/usr/local/ruby/bin #在PATH中添加ruby的路径,不要忘记再source一下

3.安装graylog2-web-interface

点击(此处)折叠或打开

  1. cd /usr/src
  2. tar xvf graylog2-web-interface-0.9.5p2.tar.gz -C /usr/local/
  3. cd /usr/local/
  4. chown -R graylog:graylog /usr/local/graylog2-web-interface-0.9.5p2/
  5. ln -sv graylog2-web-interface-0.9.5p2/ graylog2-web-interface
  6. cd graylog2-web-interface
  7. gem install bundler #需要连网
  8. bundle install #需要联网

4.配置graylog2-web-interface

点击(此处)折叠或打开

  1. vim /usr/local/graylog2-web-interface/config/mongoid.yml #内容如下
  2. —————————————————————————————————————————————————————————————————
  3. production:
  4. host: localhost #mongodb的主机
  5. port: 27017 #mongodb的端口号
  6. username: graylog #mongodb的用户名
  7. password: redhat #mongodb的用户名密码
  8. database: graylog2 #mongodb的数据库名

5.配置日志切割

点击(此处)折叠或打开

  1. cat > /etc/logrotate.d/graylog2-web-interface <<EOF
  2. /usr/local/graylog2-web-interface/log/*log {
  3. size=512M
  4. rotate 90
  5. copytruncate
  6. delaycompress
  7. compress
  8. notifempty
  9. missingok }
  10. EOF

6.启动graylog2-web-interface

点击(此处)折叠或打开

  1. 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

点击(此处)折叠或打开

  1. cd /usr/src/
  2. tar xvf eventlog_0.2.12.tar.gz
  3. cd eventlog-0.2.12
  4. ./configure --prefix=/usr/local/eventlog
  5. make
  6. make install

2.安装syslog-ng

点击(此处)折叠或打开

  1. cd /usr/src
  2. tar xvf syslog-ng_3.3.5.tar.gz
  3. cd syslog-ng-3.3.5
  4. export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig
  5. ./configure --prefix=/usr/local/syslog-ng
  6. make
  7. make install

3.配置syslog-ng

点击(此处)折叠或打开

  1. cat > /usr/local/syslog-ng/etc/syslog-ng.conf <<EOF
  2. @version: 3.3
  3. @include "scl.conf"
  4. source s_local {
  5. system();
  6. internal();
  7. };
  8. #设置日志的来源为本机udp的514端口
  9. source s_network { udp(ip(0.0.0.0) port(514)); };
  10. #将日志发送到本机的udp515端口进行处理,515端口是graylog2-server的端口,
  11. destination d_local { udp("127.0.0.1" port(515) ); };
  12. log {
  13. source(s_local);
  14. source(s_network);
  15. destination(d_local);
  16. };
  17. EOF

4.添加为系统服务

点击(此处)折叠或打开

  1. vim /etc/init.d/syslog-ng #内容如下
  2. ____________
  3. #!/bin/bash
  4. #
  5. # chkconfig: - 60 27
  6. # description: syslog-ng SysV script.
  7. . /etc/rc.d/init.d/functions
  8. syslog_ng=/usr/local/syslog-ng/sbin/syslog-ng
  9. prog=syslog-ng
  10. pidfile=/usr/local/syslog-ng/var/syslog-ng.pid
  11. lockfile=/usr/local/syslog-ng/var/syslog-ng.lock
  12. RETVAL=0
  13. STOP_TIMEOUT=${STOP_TIMEOUT-10}
  14. start() {
  15. echo -n $"Starting $prog: "
  16. daemon --pidfile=$pidfile $syslog_ng $OPTIONS
  17. RETVAL=$?
  18. echo
  19. [ $RETVAL = 0 ] && touch ${lockfile}
  20. return $RETVAL
  21. }
  22. stop() {
  23. echo -n $"Stopping $prog: "
  24. killproc -p $pidfile -d $STOP_TIMEOUT $syslog_ng
  25. RETVAL=$?
  26. echo
  27. [ $RETVAL = 0 ] && rm -f $lockfile $pidfile
  28. }
  29. case "$1" in
  30. start)
  31. start
  32. ;;
  33. stop)
  34. stop
  35. ;;
  36. status)
  37. status -p $pidfile $syslog_ng
  38. RETVAL=$?
  39. ;;
  40. restart)
  41. stop
  42. start
  43. ;;
  44. *)
  45. echo $"Usage: $prog {start|stop|restart|status}"
  46. RETVAL=2
  47. esac
  48. exit $RETVAL

5.开机自启动

点击(此处)折叠或打开

  1. chmod a+x /etc/init.d/syslog-ng
  2. killall syslogd
  3. chkconfig --add syslog-ng
  4. chkconfig syslog-ng on
  5. service syslog-ng start

至此,Graylog2的配置已经完成了。大家把Syslog往Graylog2上吐就可以了。若有安装失败或者出错的地方欢迎留言。
    
    最后,要感谢http://ant595.blog.51cto.com/blog/5074217/1081094的博客,我只是在实验了之后,再广播一下。同时注明了我的操作而已。

graylog2+syslog-ng+mongodb构建集中管理日志服务器 --转载的更多相关文章

  1. syslog及syslog-ng详解 日志服务器

    服务器的日志对系统工程师来说是至关重要的,一旦服务器出现故障或被入侵,我们需要查看日志来定位问题的关键所在,所以说对于线上跑的服务器而言日志应该合理的处理及管理.下面来   服务器的日志对系统工程师来 ...

  2. 使用Fluentd + MongoDB构建实时日志收集系统

    Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方. 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, Couch ...

  3. Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载

    原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html 1.下载mongodb,可以通过下面2中方法安装. (1)官网下载yum源后直接安装 ...

  4. Kiwi Syslog server 日志服务器搭建

    Kiwi syslog server 是一款很不错的日志服务器软件,安装过程就不多说,Linux 服务器日志由于本身就是syslog的,所以不用转换,但是windows 系统的日志格式是event形式 ...

  5. 利用Syslog Watcher在windows下部署syslog日志服务器

    1.概述 syslog协议是各种网络设备.服务器支持的网络日志记录标准.Syslog消息提供有关网络事件和错误的信息.系统管理员使用Syslog进行网络管理和安全审核. 通过专用的syslog服务器和 ...

  6. syslog之三:建立Windows下面的syslog日志服务器

    目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...

  7. 演示:配置日志发送到syslog日志服务器

    演示目标:配置网络环境中的交换机和路由器将日志发送到syslog日志服务器. 演示环境:如下图10.54所示的演示环境. 演示背景:要求部署网络中的syslog服务器,集中的收集交换机S1和路由器R1 ...

  8. 集中日志服务器Rsyslog

    http://www.gaizaoren.org/archives/408 基于主机的管理一般需要收集服务器的日志信息用于及时发现错误,处理故障. 搭建linux下的集中日志服务器的程序一般可以用sy ...

  9. CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器

    一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...

随机推荐

  1. C++实现网格水印之调试笔记(一)

    首先说一下我的一些简单的调试方法,除了常规的断点调试之外,我还会使用注释的方法来调试.当整个工程代码量相当多且调用层次关系较为复杂时,这种方法能够比较高效的定位到出错误的代码段或某个函数,然后在出现错 ...

  2. XNA Game Studio 4.0 Programming 随便读,随便记 “Game Class”

    XNA 中的 Game 类,是所有神奇事情发生的地方.几乎游戏中所有的事情都由它来操办. 它是项目中的王者,让我们深入窥探一番: 虚方法 Game 本身从众多其它地方继续了许多能力才能完成游戏中的事情 ...

  3. What do data scientist do?

    What do data scientist do? 1. Define the question 2.Define the ideal data set 3.Determine what data ...

  4. redis 应用

    前段使用JQueryMobile进行展示. 实现了用户注册,登陆,列表基本功能 非常简洁. 如果想了解Redis存储,Express的处理可以提供一些基础的示范. 下载地址: https://gith ...

  5. linux内核地址mapping

    linux内核采用页式存储管理,虚拟地址空间划分成固定大小的页面,由MMU(memory manager unit)在运行时将virtual address mapping to (或者说是变化成)某 ...

  6. 关于P2P架构的网络游戏

    以下内容摘自<ActionScript大型网页游戏开发> ————————————————————————————————————————————————————————— P2P架构 P ...

  7. Java缓存学习之三:CDN缓存机制

    CDN是什么? 关于CDN是什么,此前网友详细介绍过. CDN是Content Delivery Network的简称,即"内容分发网络"的意思.一般我们所说的CDN加速,一般是指 ...

  8. java assert的用法简介

    assert的基本用法 assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制,如C,C++和Eiffel等,但是支持的形式不尽相同,有的是通过语言本身.有的是通过库 ...

  9. delphi 窗口最大化后控件的大小变化怎么设置

    设置按钮的Anchors属性.可以通过此属性设置其边界是否随父类一起变化.默认akleft+aktop即左边界和上边界随窗口变化,也就是说如果窗口位置移动了,按钮将保持其left和top边界与窗口的距 ...

  10. [每日一题] 11gOCP 1z0-053 :2013-10-11 Flashback Data Archive属性.........................43

    转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/12656897 正确答案:BD 闪回数据归档请参考:http://blog.csdn.net ...