zoukankan      html  css  js  c++  java
  • Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载

    原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html

    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    1、下载mongodb,可以通过下面2中方法安装。

    (1)官网下载yum源后直接安装或下载tar包进行安装。http://www.mongodb.org/ 。

    (2)通过EPEL(企业linux额外软件包)安装。http://fedoraproject.org/wiki/EPEL 。

    方便起见,这里选择用yum源直接安装。

    <1>在*.repo中加入

    -------------------------------------------------------------------------------------

    [10gen]

    name=10gen Repository

    baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686

    gpgcheck=0

    -------------------------------------------------------------------------------------

    <2>yum install mongo-10gen-server

    2、启动、配置mongodb

    <1>vi /etc/mongod.conf

    -------------------------------------------------------------------------------------

    port = 27017 #运行端口27017

    auth = true  #开启认证

    nohttpinterface = false

    -------------------------------------------------------------------------------------

    <2>/etc/init.d/mongod start

    <3>mongo

        >use graylog2

    >db.addUser("login","passwd") #graylog2库的usergraylog2这个usermongo相连

    >db.auth("login","passwd") #打开认证

    >db.system.users.find() #查看存在的用户

    >exit

    <4>/etc/init.d/mongod restart #mongodb默认是开机自启动的

    ps aux | grep mongo查看是否存在进程;

    tail -f /var/log/mongo/mongod.log跟踪mongodb信息。

    3、下载graylog2-server(需要JAVA环境)

    为方便起见,我们使用系统自带的openjdk

    <1>yum, install java-1.6.0-openjdk

    <2>tar zxvf graylog2-server-0.9.5p1.tar.gz -C /opt

    <3>cd /opt; ln -s graylog2-server-0.9.5p1 graylog2

    <4>cd graylog2; cp graylog2.conf.example /etc/graylog2.conf

    4、配置、启动graylog2-server,连接mongodb

    <1>vi /etc/graylog2.conf

    -------------------------------------------------------------------------------------------

    # On which port (UDP) should we listen for Syslog messages? (Standard: 514)

    syslog_listen_port = 514

    syslog_protocol = udp

    # MongoDB Configuration

    mongodb_useauth = true

    mongodb_user = login

    mongodb_password = passwd

    mongodb_host = localhost

    #mongodb_replica_set = localhost:27017,localhost:27018,localhost:27019

    mongodb_database = graylog2

    mongodb_port = 27017

    -------------------------------------------------------------------------------------------

    <2>cd /opt/graylog2/bin

    <3>./graylog2ctl start

    (注:其log日志就存在当前目录下的nohup.out中。后面会修改并放入/var/log/下,这样便于日志管理,排错)

    <4>./graylog2ctl stop

    <5>vi /etc/init.d/graylog2-server(仿照graylog2ctl写此脚本)

    -------------------------------------------------------------------------------------------

    #!/bin/sh

    #

    # graylog2-server:   graylog2 message collector

    # chkconfig: - 98 02

    # description:  This daemon listens for syslog and GELF messages and stores them in mongodb

    #

    CMD=$1

    NOHUP=`which nohup`

    #JAVA_HOME=/usr/java/latest

    #JAVA_CMD=$JAVA_HOME/bin/java

    GRAYLOG2_SERVER_HOME=/opt/graylog2

    start() {

        echo "Starting graylog2-server ..."

        $NOHUP java -jar $GRAYLOG2_SERVER_HOME/graylog2-server.jar > /var/log/graylog2.log 2>&1 &

    }

    stop() {

            PID=`cat /tmp/graylog2.pid`

        echo "Stopping graylog2-server ($PID) ..."

            kill $PID

    }

    restart() {

        echo "Restarting graylog2-server ..."

            stop

            start

    }

    case "$CMD" in

        start)

            start

            ;;

        stop)

            stop

            ;;

        restart)

            restart

            ;;

        *)

            echo "Usage $0 {start|stop|restart}"

            RETVAL=1

    esac

    -------------------------------------------------------------------------------------------

    <6>chmod +x /etc/init.d/graylog2-server

    <7>chkconfig --add graylog2-server

    <8>chkconfig graylog2-server on

    <9>/etc/init.d/graylog2-server start

    此时,日志就存在了/var/log/graylog2.log。

        用“ps aux | grep graylog2”查看是否存在java -jar ../graylog2-server.jar这个进程。

        用cat /var/log/graylog2.log查看是否有错误信息。(这里首先要注意主机的域名解析问题,再然后是可能会报错,说514端口没有权限,可以先暂时不管它,后面会处理这个问题)

    当然在mongodb中用db.messages.find()命令查看graylog2库的messages表,这时应该已经插入了这个关于514端口没有权限的错误日志信息。

    5、下载、配置graylog2-web-interface需要的RUBY环境

    <1>先卸载旧版本的ruby(它不支持graylog2

    yum erase/remove ruby ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs

    <2>yum install gcc gcc-c++ openssl-devel zlib-devel autoconf readline-devel curl-devel expat-devel gettext-devel

    <3>下载新的rubyhttp://www.ruby-lang.org/en/downloads/ 。

    tar jxvf ruby-1.9.2-p0.tar.bz2

    <4>cd ruby-1.9.2-p0

    <5>./configure -enable-shared -enable-pthread -prefix=/usr

    <6>make

    <7>make install

    注:Ruby1.9.2以上包含了rubygems

    <8>ruby -v 查看到rybu版本号1.9.2p0

    <9>gem -v 查看到1.3.7

    <8><9>两步的测试结果,说明ruby安装成功。

    <10>gem update 

    <11>gem install rake

    6、下载、配置graylog2-web-interface

    <1>tar zxvf graylog2-web-interface-0.9.5p2.tar.gz -C /opt

    <2>cd /opt; ln -s graylog2-web-interface-0.9.5p2 graylog2-web-interface;

    useradd -m graylog;chown -R graylog /opt/graylog2-web-interface-0.9.5p2

    <3>cd graylog2-web-interface

    <4>gem install bundler

    <5>bundle install

    <6>Edit all ./config/*.yml。这里可以先只编辑mongoid.yml

    vi /opt/graylog2-web-interface/config/mongoid.yml

    --------------------------------------------------------------------------------------------

    production:

      host: localhost #注意从此行起,前面不能顶格,有2个空格

      port: 27017

      database: graylog2

      username: login

      password: passwd

    --------------------------------------------------------------------------------------------

    <7>RAILS_ENV=production script/rails server

    访问http://127.0.0.1:3000测试,若出现页面让你创建第一个用户,则成功。

    <8>Ctrl C,结束它。

    <9>gem install passenger        #下载后,用passenger管理控制graylog2-web

    <10>gem install file-tail

    <11>chmod -R 777 tmp log

    <12>passenger start

    Passenger自动下载、配置、组建好一切所需要的东西后,按Ctrl C,结束它。

    <13> vi /etc/init.d/graylog2-web-interface (原本是没有这个文件的)

    -------------------------------------------------------------------------------------------

    #!/bin/bash

    #

    # graylog2-web-interface:   graylog2 web interface

    #

    # chkconfig: - 98 02

    # description:  Starts graylog2-web-interface using passenger-standalone. 

    USER=graylog

    APP_DIR=/opt/graylog2-web-interface

    ADDR=127.0.0.1

    PORT=3000

    ENVIRONMENT=production

    #LOG_FILE=/var/log/graylog2-web-interface.log

    CMD_START="cd $APP_DIR; passenger start -d 

                        -a $ADDR 

                        -p $PORT 

                        -e $ENVIRONMENT 

                        --user $USER"

    CMD_STOP="cd $APP_DIR; passenger stop -p $PORT"

    CMD_STATUS="cd $APP_DIR; passenger status -p $PORT"

    . /lib/lsb/init-functions

    case "$1" in

      start)

        echo "Starting graylog2-web-interface"

        su - $USER -c "$CMD_START"

        ;;

      stop)

        echo "Stopping graylog2-web-interface"

         su - $USER -c "$CMD_STOP"

        ;;

      status)

       su - $USER -c "$CMD_STATUS"

       ;;

      *)

        echo "Usage: $0 start|stop|status" >&2

        exit 3

        ;;

    esac                                                                                              

    -------------------------------------------------------------------------------------------

    <14>chmod +x /etc/init.d/graylog2-web-interface 

    <15>chkconfig --add graylog2-web-interface 

    <16>chkconfig graylog2-web-interface on

    <17>/etc/init.d/graylog2-web-interface start

    访问http://127.0.0.1:3000,看!出现页面让你创建第一个用户!搞定!
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    在这里你先创建你的first user(我的是adminadminpasswd,记得填个Email),然后就可以用刚创建的user进入web界面了。
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    7、用ryslog代替本机syslog,使graylog2正常开启、运行

    此时,你的graylog2服务器还没有真正搭建好,日志并不能被收集进mongodb中存储,并通过graylog2-web页面显示出来。你会发现web上会一直报告错误说你的graylog2 server好像没有运行,通过个log信息可以知道是原因是graylog2server)对514端口没有权限。这个也就是我们之前遗留下来的问题。

    解决办法如下:

    <1>yum install rsyslog

    <2>vi /etc/sysconfig/rsyslog

    ----------------------------------------------------------------------------------------

    SYSLOGD_OPTIONS="-m 0 -r10514"

    ----------------------------------------------------------------------------------------

    <3> vi /etc/rsyslog.conf

    ----------------------------------------------------------------------------------------

    *.*                 @127.0.0.1:514

    ----------------------------------------------------------------------------------------

    <4>/etc/init.d/syslog stop

    <5>chkconfig  syslog off

    <6>/etc/init.d/rsyslog start

    <7>chkconfig  rsyslog on

    <8>netstat -anltpue | grep 514

    可以看见

    udp   0   0 0.0.0.0:10514    0.0.0.0:*    0    124239    4766/rsyslogd

    <9>/etc/init.d/graylog2-server restart

    <10>netstat -anltpue | grep 514

    可以看见有

    udp   0   0 0.0.0.0:10514    0.0.0.0:*    0    124239    4766/rsyslogd

    udp   0   0 :::514           :::*        0    111125    957/java 

    然后,你就可以测试你的graylog2是否正常运行了。Web界面有了messages数据,查看mongodb中的graylog2库也有了messages表的数据。Graylog2正常运行。

    8、增加远程客户机

        我们来为这台graylog2中央日志服务器增加客户机:

    <1>vi /etc/syslog.conf

    ----------------------------------------------------------------------------------------------

    *.*                          @graylog2's IP

    ----------------------------------------------------------------------------------------------

    <2>/etc/init.d/syslog restart

    好了,大功告成!可以用logger命令进行测试,并在graylog2 web界面中查看、管理远程log日志了。
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    9、下载、配置graylog2虚拟主机、启动apache

    <1>yum install httpd -y

    <2>vi /etc/httpd/conf/httpd.conf 

    -------------------------------------------------------------------------------------------

    NameVirtualHost *:80

    <VirtualHost *:80>

    ServerName log.example.com

    ServerAlias graylog2.example.com

        ProxyPreserveHost On

        ProxyPass        / http://127.0.0.1:3000/

        ProxyPassReverse / http://127.0.0.1:3000/

        CustomLog /var/log/httpd/graylog2.example.com-access_log common

    </VirtualHost>

    -------------------------------------------------------------------------------------------

    <3> service httpd configtest

    显示“Syntax OK”证明配置正确。

    <4>/etc/init.d/httpd start

    Finally,通过web页面访问log.example.com或者graylog2.example.com进入graylog2日志管理系统。

    10、web界面

    <1>通过Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理选项中的Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理设置(这里设置为1,即1min),可调整、查看最近N(这里为1mingraylog2mongodb)接收到的日志信息(即messages)数量为多少Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理,提示信息Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    <2>通过Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理选项创建一个组【这里创建的组名为(rsyslog】后,你还可以将主机加入组,便于分类、管理。
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

    当然,还有更多的功能等待你去发现,最后,再送上2张截图,祝你好运:)
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理
    Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理

      

    参考文档:

    http://joemiller.me/2011/04/13/howto-install-graylog2-on-centos-5-with-rvm-passenger/

    http://www.moneyq.org/blog/wnoznpwb/index.php?showentry=42766

    http://eromang.zataz.com/2011/06/22/howto-install-graylog2-log-management-solution-under-centos/

    http://community.zenoss.org/docs/DOC-4553

  • 相关阅读:
    uploadify在chrome下初始化失败,在Firefox下却可以原因探析
    mysql用一个表更新另一个表的方法
    使用JS获取当前地理位置方法汇总(如用谷歌接口,会出再以上报错,必须申请密钥并设置接受服务器IP!!!)
    php ini_set更改php.ini配置,通过它修改php.in达到php上传文件大小限制是不行的,除非修改.htaccess文件
    php error_log记录日志的使用方法和配置 (日志目录一定要手动创建)
    ESA2GJK1DH1K基础篇: 阿里云物联网平台: 云平台显示单片机采集的温湿度数据,控制设备继电器(基于GPRS模块,AT指令TCP_MQTT通信)(V0.1)
    阿里云物联网平台: Android 连接阿里云物联网平台
    ESA2GJK1DH1K基础篇: Android实现MQTT封装源码使用说明
    ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于GPRS模块(Air202,SIM800)AT指令TCP透传方式,MQTT通信控制升级
    ESA2GJK1DH1K升级篇: STM32远程乒乓升级,基于(Wi-Fi模块AT指令TCP透传方式),MQTT通信控制升级
  • 原文地址:https://www.cnblogs.com/davidwang456/p/4486800.html
Copyright © 2011-2022 走看看