graylog2+syslog-ng+mongodb构建集中管理日志服务器 --转载
原文地址: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。
一.源码包下载
点击(此处)折叠或打开
- cd /usr/src
- #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
- #eventlog,安装syslog-ng需要先安装eventlog
- wget http://www.balabit.com/downloads/files/syslog-ng/sources/3.2.4/source/eventlog_0.2.12.tar.gz
- #syslog-ng日志服务器,
- wget http://www.balabit.com/downloads/files/syslog-ng/open-source-edition/3.3.5/source/syslog-ng_3.3.5.tar.gz
- #JDK,java环境
- 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。
二.安装相关依赖包
点击(此处)折叠或打开
- 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
点击(此处)折叠或打开
- 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
Mongo的基本操作可以参见:http://blog.csdn.net/shirdrn/article/details/7105539
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
3.修改权限+开机自启动
点击(此处)折叠或打开
- chmod a+x /etc/init.d/mongod
- chkconfig --add mongod
- chkconfig mongod on
- service mongod start
4.创建graylog2所需数据库实例
点击(此处)折叠或打开
- /usr/local/mongodb/bin/mongo
- >use admin
- >db.addUser('admin','password')
- >use graylog2
- >db.addUser('graylog','redhat')
- >exit
这里的用户名:“Graylog和redhat”是后面Graylog2连接数据库需要使用的。如果后面Graylog2连接Mongo失败,可以使用命令:db.auth("graylog", ",redhat")将用户添加到认证中。
四.安装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
2.添加java环境变量
点击(此处)折叠或打开
- #vim /etc/profile
- ——————————————————
- JAVA_HOME=/usr/local/jdk
- PATH=$JAVA_HOME/bin:$PATH
- export JAVA_HOME PATH
- ——————————————————
- #source /etc/profile最后不要忘记source一下
3.安装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
4.配置garylog2-server
点击(此处)折叠或打开
- vim /etc/graylog2.conf
- ——————————————————————
- syslog_listen_port = 515 #将默认的514端口修改为其他未使用端口,因为514端口是syslog-ng默认的端口,这里需要用syslog-ng的514端口来接收其他服务器发来的日志,并进行处理的
- syslog_protocol = udp
- mongodb_user = graylog #访问mongodb的用户名
- mongodb_password = redhat #访问mongodb用户名的密码
- mongodb_host = localhost #mogodb的主机
- mongodb_database = graylog2 #存储日志的数据库
- mongodb_port = 27017 #访问mongodb的端口,默认是27017
5.修改下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
6.将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
7.修改权限+自启动
点击(此处)折叠或打开
- chmod a+x /etc/init.d/graylog2
- chkconfig --add graylog2
- chkconfig graylog2 on
- service graylog2 start
五.安装graylog2-web-interface
1.安装ruby脚本语言环境
点击(此处)折叠或打开
- cd /usr/src
- tar xvf yaml-0.1.4.tar.gz
- cd yaml-0.1.4
- ./configure --prefix=/usr/local/yaml
- make
- make install
- cd /usr/src
- 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
2.修改PATH中的环境变量
点击(此处)折叠或打开
- PATH=......:/usr/local/ruby/bin #在PATH中添加ruby的路径,不要忘记再source一下
3.安装graylog2-web-interface
点击(此处)折叠或打开
- cd /usr/src
- 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 #需要联网
4.配置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的数据库名
5.配置日志切割
点击(此处)折叠或打开
- 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
6.启动graylog2-web-interface
点击(此处)折叠或打开
- 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
点击(此处)折叠或打开
- cd /usr/src/
- tar xvf eventlog_0.2.12.tar.gz
- cd eventlog-0.2.12
- ./configure --prefix=/usr/local/eventlog
- make
- make install
2.安装syslog-ng
点击(此处)折叠或打开
- cd /usr/src
- tar xvf syslog-ng_3.3.5.tar.gz
- cd syslog-ng-3.3.5
- export PKG_CONFIG_PATH=/usr/local/eventlog/lib/pkgconfig
- ./configure --prefix=/usr/local/syslog-ng
- make
- make install
3.配置syslog-ng
点击(此处)折叠或打开
- cat > /usr/local/syslog-ng/etc/syslog-ng.conf <<EOF
- @version: 3.3
- @include "scl.conf"
- source s_local {
- system();
- internal();
- };
- #设置日志的来源为本机udp的514端口
- source s_network { udp(ip(0.0.0.0) port(514)); };
- #将日志发送到本机的udp515端口进行处理,515端口是graylog2-server的端口,
- destination d_local { udp("127.0.0.1" port(515) ); };
- log {
- source(s_local);
- source(s_network);
- destination(d_local);
- };
- EOF
4.添加为系统服务
点击(此处)折叠或打开
- vim /etc/init.d/syslog-ng #内容如下
- ____________
- #!/bin/bash
- #
- # chkconfig: - 60 27
- # description: syslog-ng SysV script.
- . /etc/rc.d/init.d/functions
- syslog_ng=/usr/local/syslog-ng/sbin/syslog-ng
- prog=syslog-ng
- pidfile=/usr/local/syslog-ng/var/syslog-ng.pid
- lockfile=/usr/local/syslog-ng/var/syslog-ng.lock
- RETVAL=0
- STOP_TIMEOUT=${STOP_TIMEOUT-10}
- start() {
- echo -n $"Starting $prog: "
- daemon --pidfile=$pidfile $syslog_ng $OPTIONS
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && touch ${lockfile}
- return $RETVAL
- }
- stop() {
- echo -n $"Stopping $prog: "
- killproc -p $pidfile -d $STOP_TIMEOUT $syslog_ng
- RETVAL=$?
- echo
- [ $RETVAL = 0 ] && rm -f $lockfile $pidfile
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status -p $pidfile $syslog_ng
- RETVAL=$?
- ;;
- restart)
- stop
- start
- ;;
- *)
- echo $"Usage: $prog {start|stop|restart|status}"
- RETVAL=2
- esac
- exit $RETVAL
5.开机自启动
点击(此处)折叠或打开
- chmod a+x /etc/init.d/syslog-ng
- killall syslogd
- chkconfig --add syslog-ng
- chkconfig syslog-ng on
- service syslog-ng start
至此,Graylog2的配置已经完成了。大家把Syslog往Graylog2上吐就可以了。若有安装失败或者出错的地方欢迎留言。
最后,要感谢http://ant595.blog.51cto.com/blog/5074217/1081094的博客,我只是在实验了之后,再广播一下。同时注明了我的操作而已。
graylog2+syslog-ng+mongodb构建集中管理日志服务器 --转载的更多相关文章
- syslog及syslog-ng详解 日志服务器
服务器的日志对系统工程师来说是至关重要的,一旦服务器出现故障或被入侵,我们需要查看日志来定位问题的关键所在,所以说对于线上跑的服务器而言日志应该合理的处理及管理.下面来 服务器的日志对系统工程师来 ...
- 使用Fluentd + MongoDB构建实时日志收集系统
Fluentd是一个日志收集系统,它的特点在于其各部分均是可定制化的,你可以通过简单的配置,将日志收集到不同的地方. 目前开源社区已经贡献了下面一些存储插件:MongoDB, Redis, Couch ...
- Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载
原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html 1.下载mongodb,可以通过下面2中方法安装. (1)官网下载yum源后直接安装 ...
- Kiwi Syslog server 日志服务器搭建
Kiwi syslog server 是一款很不错的日志服务器软件,安装过程就不多说,Linux 服务器日志由于本身就是syslog的,所以不用转换,但是windows 系统的日志格式是event形式 ...
- 利用Syslog Watcher在windows下部署syslog日志服务器
1.概述 syslog协议是各种网络设备.服务器支持的网络日志记录标准.Syslog消息提供有关网络事件和错误的信息.系统管理员使用Syslog进行网络管理和安全审核. 通过专用的syslog服务器和 ...
- syslog之三:建立Windows下面的syslog日志服务器
目录: <syslog之一:Linux syslog日志系统详解> <syslog之二:syslog协议及rsyslog服务全解析> <syslog之三:建立Window ...
- 演示:配置日志发送到syslog日志服务器
演示目标:配置网络环境中的交换机和路由器将日志发送到syslog日志服务器. 演示环境:如下图10.54所示的演示环境. 演示背景:要求部署网络中的syslog服务器,集中的收集交换机S1和路由器R1 ...
- 集中日志服务器Rsyslog
http://www.gaizaoren.org/archives/408 基于主机的管理一般需要收集服务器的日志信息用于及时发现错误,处理故障. 搭建linux下的集中日志服务器的程序一般可以用sy ...
- CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
随机推荐
- webstorm下设置sass
关于sass,就不想多说什么了.只要你有css基础,十分钟入门好吗.可以参考下资料:http://www.w3cplus.com/sassguide/ 今天想说的是webStorm下如何实现sass自 ...
- 【原】Mongodb相关资料
Mongodb与关系型数据库对比 Mongodb与关系型数据库对比 由于之前主要接触的是关系型数据库,所以主要将Mongodb与关系型数据库进行对比:主要从术语.Server与Client.数据定义语 ...
- 【暑假】[实用数据结构]UVAlive 3135 Argus
UVAlive 3135 Argus Argus Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %l ...
- Java-note-字符串连接
String a="100"; int b=2; String c=a+b; then the answer is c=1002; + make the two sides bec ...
- 我的web前端修炼之路从此开始
看过一篇文章,上面说过要想学习一门新技术,从什么时候开始都是不晚的.但对于一名大四的学生,只会一点简单的网页架构,只懂得HTML,CSS,JavaScript简单的一点皮毛,却怎么也说不过去.但也是这 ...
- commons-lang3-3.4.jar
StringUtils 1.StringUtils.isBlank(str); 检查字符串是否为空白(“ ”),为空(“”),为null. * StringUtils.isBlank(null) ...
- linux网络编程笔记——UDP
目前这部分代码会出现阻塞问题,暂时尚未解决 #include "udp.h" #include <stdio.h> #include <string.h> ...
- 实际例子描述和分析“猎豹抢票跨站推荐功能有票刷不到”的疑似bug
前言 快过年了,又到了一年抢票时.今年douba和douma计划要带着doudou回姥姥家.昨天在家用抢票软件居然发现了一个bug,那就是在猎豹抢票中跨站推荐的车票几天里一直是没有,但是在12306手 ...
- 用C语言实现ipv4地址字符串是否合法
用程序实现ipv4地址字符串是否合法,主要考察的是C字符串的操作. 搜索了下,网上没有特别好的实现,自己实现了下,见笑于大家,请指正. #include <stdio.h> #includ ...
- HDU1973 http://acm.hdu.edu.cn/showproblem.php?pid=1973
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<queue> #inc ...