Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载
原文地址:http://blog.sina.com.cn/s/blog_49be4d570100yvv1.html
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库的user,graylog2这个user和mongo相连
>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>下载新的ruby。http://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,看!出现页面让你创建第一个用户!搞定!
在这里你先创建你的first user(我的是admin、adminpasswd,记得填个Email),然后就可以用刚创建的user进入web界面了。
7、用ryslog代替本机syslog,使graylog2正常开启、运行
此时,你的graylog2服务器还没有真正搭建好,日志并不能被收集进mongodb中存储,并通过graylog2-web页面显示出来。你会发现web上会一直报告错误说你的graylog2 server好像没有运行,通过个log信息可以知道是原因是graylog2(server)对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日志了。
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>通过选项中的
设置(这里设置为1,即1min),可调整、查看最近N(这里为1)min里graylog2(mongodb)接收到的日志信息(即messages)数量为多少
,提示信息
。
<2>通过选项创建一个组【这里创建的组名为(r)syslog】后,你还可以将主机加入组,便于分类、管理。
当然,还有更多的功能等待你去发现,最后,再送上2张截图,祝你好运:)
参考文档:
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
Graylog2+mongdb+rsyslog中央日志服务器对syslog的web管理--转载的更多相关文章
- 004-linux下配置rsyslog日志收集服务器案例 rsyslog+loganalyzer日志服务器,无法添加报表模板解决
centos6系统 client1:192.168.1.33 centos7系统 client2:192.168.1.44 centos7系统 master:192.168.1.55 配置服务端mas ...
- CentOS7.3下部署Rsyslog+LogAnalyzer+MySQL中央日志服务器
一.简介 1.LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中 ...
- Linux下使用rsyslog部署日志服务器 && 记录history并发送到rsyslog服务器
一.syslog服务简介 rsyslog 是一个 syslogd 的多线程增强版.rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件 logger命令 将自定义的 ...
- rsyslog+loganalyzer日志服务器,无法添加报表模板解决
loganalyzer搭建成功后,各方面功能都算正常但是发现不能创建报表模板,提示报错 mysql错误:'字段列表'中的未知列'Source1' mysql错误号:1054 解决方案:
- CentOS 6.7下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- CentOS 6.5下利用Rsyslog+LogAnalyzer+MySQL部署日志服务器
一.简介 LogAnalyzer 是一款syslog日志和其他网络事件数据的Web前端.它提供了对日志的简单浏览.搜索.基本分析和一些图表报告的功能.数据可以从数据库或一般的syslog文本文件中获取 ...
- rsyslog+mariadb+loganalyzer实现日志服务器搭建
rsyslog+mariadb+loganalyzer实现日志服务器搭建 一.概述 Linux的日志记录了用户在系统上一切操作,包括系统自身运作产生的日志,这些日志是应使用者了解服务器的情况最好的资料 ...
- linux日志守护进程 syslog
几乎所有的网络设备都可以通过syslog协议,将日志信息以UDP的形式传送给远端服务器,远端接收日志服务器必须通过syslogd监听UDP端口514,并根据 syslog.conf 配置文件张的配置处 ...
- Linux服务器上创建日志服务器和FTP服务器
参考地址: http://www.111cn.net/sys/CentOS/81133.htm https://www.cnblogs.com/laoxiajiadeyun/p/9943742.htm ...
随机推荐
- 使用Powershell 添加,选择更改订阅
PS C:\WINDOWS\system32> Import-AzurePublishSettingsFile 'C:\Users\Ling\Desktop\Free-11-24-2014-cr ...
- 基于MapReduce的关系代数运算(1)
1.选择运算 Map函数:对R中的每个元组t,检测它是否满足条件C,如果满足,则产生一个键值对(t,t) Reduce函数:直接将每个键值对传递到输出即可 2.投影运算 Map函数:对R中的每个元组t ...
- SCAU 10690 分面包
10690 分面包 时间限制:1000MS 内存限制:65535K 题型: 编程题 语言: 无限制 Description 在大一的时候,XCC还在stu union打酱油~~~~和十三还有奶子 ...
- air for ios
在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持 使用Flash Builder 4.5进行多平台游戏开发 手机屏幕触控技术与提升AIR在Android上的触控体验 AIR Native E ...
- find 命令概览
Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...
- [网络]远程访问局域网svn服务器[转]
转至:http://8474832.blog.51cto.com/8464832/1555449 打开路由器访问界面 选择转发规则->端口映射-新建 在弹出的界面中填写相应的端口号了内网ip 填 ...
- JavaScript神一样的变量系统
话说上一篇介绍了JavaScript故事版的身世之谜.看官你估计也明白JavaScript出生之时,就未曾托于重任.布兰登-艾奇估计也没料到今天的JavaScript变得如此重要.要不然,当年他也不会 ...
- 结构类模式(五):外观(Facade)
定义 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用. UML 优点 对客户屏蔽了其子系统组件,因而减少了客户处理对象的数目,并使得子系统实用起来更方便. ...
- Weka EM 协方差
Weka EM covariance description 1: Dear All, I am trying to find out what is the real meaning of the ...
- C语言的struct/union字节对齐
C语言的一大优势就是对内存空间的控制,当然,一般情况下对于开发人员来说都是透明的.看一个始终困扰初学者的问题:字节对齐! 先看四个重要的基本概念:1.数据类型自身的对齐值:对于char型数据,其自身对 ...