Tutorial: 使用rsyslog向kafka, elasticsearch推送日志

本文介绍了一种简单易行的使用rsyslog向kafka,elasticsearch推送日志的方法;rsyslog的omkafka插件的安装、使用方法;rsyslog的omelasticsearch插件的安装、使用方法。

Kafka是一种开源的分布式消息系统,项目主页:kafka.apache.org
elasticsearch是一种开源的分布式搜索引擎,项目主页:elastic.co

rsyslog使用omkafka向kafka推送日志,使用omelasticsearch向elasticsearch推送日志。这两个插件默认编译选项是关闭的,没有被编译到rsyslog中。下面介绍了具体的安装方法:

## add rsyslog repo
WORK_DIR=$(pwd)
cd /etc/yum.repos.d
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo -O rsyslog.repo

cd $WORK_DIR
mkdir rsyslog-install
cd rsyslog-install

# check rsyslog version
# rsyslog supports kafka from v8.7.0
old_rsyslog_ver=$(rsyslogd -version |head -n 1 | awk '{print $2}')

## install rsyslog dependency: libestr
yum install -y libestr-devel

## install rsyslog dependency: libee
yum install -y libee-devel

## install rsyslog dependency: json-c
yum install -y json-c-devel

## install rsyslog denpendency: uuid
yum install -y libuuid-devel

## install rsyslog denpendency: liblogging-stdlog
yum install -y liblogging-devel

## install rsyslog denpendency: rst2man
yum install -y python-docutils

## install libcurl for omelasticsearch
yum install -y libcurl-devel

## install librdkafka for omkafka
wget https://github.com/edenhill/librdkafka/archive/0.8.5.tar.gz -O librdkafka-0.8.5.tar.gz
tar zxvf librdkafka-0.8.5.tar.gz
cd librdkafka-0.8.5
./configure
make
make install

cd ..
## install rsyslog
wget http://www.rsyslog.com/files/download/rsyslog/rsyslog-8.8.0.tar.gz -O rsyslog-8.8.0.tar.gz
tar zxvf rsyslog-8.8.0.tar.gz
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/lib64/pkgconfig/
old_executable_path=$(which rsyslogd)
executable_dir=$(dirname "$old_executable_path")
cd rsyslog-8.8.0
./configure --sbindir=$executable_dir --libdir=/usr/lib64 --enable-omkafka --enable-elasticsearch
make
make install

## show installation result:
new_rsyslog_ver=$(rsyslogd -version |head -n 1 | awk '{print $2}')
echo "Old rsyslogd version: "$old_rsyslog_ver
echo "New rsyslogd version: "$new_rsyslog_ver
echo "Executable: " $(which rsyslogd)

我在Github上托管了相关代码:
https://github.com/garyelephant/rsyslog-scripts

omkafka插件的详细文档见:
http://www.rsyslog.com/doc/master/configuration/modules/omkafka.html

omelasticsearch插件的详细文档见:
http://www.rsyslog.com/doc/v8-stable/configuration/modules/omelasticsearch.html

配置示例:

# /etc/rsyslog.conf
# load required module
# `imuxsock` provides support for local system logging (e.g. via logger command)
module(load="imuxsock") 
module(load="omkafka")
module(load="omelasticsearch")

# push to kafka
action(type="omkafka" topic="your_topic" broker="your_kafka_broker_host_or_ip")

# or you can push to elasticsearch
action(type="omelasticsearch" server="your_elasticsearch_host_or_ip" searchIndex="your_elasticsearch_index" searchType="your_elasticsearch_index_type" )

启动 rsyslog

rsyslogd -n

在另一个终端用logger向rsyslog写数据

$ logger 'hello world'

References:

  1. http://www.rsyslog.com/doc/master/installation/install_from_source.html
  2. http://bigbo.github.io/pages/2015/01/21/syslog_kafka/
  3. http://blog.oldzee.com/?tag=rsyslog
  4. http://www.rsyslog.com/newbie-guide-to-rsyslog/
  5. http://www.rsyslog.com/doc/master/configuration/modules/omkafka.html

转载本文请注明作者和出处[Gary的影响力]http://garyelephant.me,请勿用于任何商业用途!
Author: Gary Gao( garygaowork[at]gmail.com) 关注互联网、分布式、高性能、NoSQL

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Windows 远程登录 Linux 服务器 - 2015-06-26 14:06:41

Linux访问Linux可以使用ssh,OpenSSH,vnc4server,图形化VNC等等。这里介绍的是Windows访问linux Windows上有几种不同的SSH客户端,其中开放源代码的PuTTY是使用最为广泛之一,这是以绿色汉化软件,不需要安装,下载并运行putty.exe主程序即可,经过测试经过远程访问之后,对文件夹和文件的名称如果其中包含空格,并不支持,这点有点遗憾! putty中有各种工具,如pscp.exe:复制文件 、psftp.exe:上传下载文件等等 这里我使用的是Windows

百度集群操作系统Matrix - 2015-06-26 14:06:24

Matrix是国内业界第一个成功构建、并且大规模应用的基于轻量虚拟化技术的、可以实现机器共享的集群管理系统,是百度内部架构、业务平台的基石。类似的系统目前除了Google Borg/Omega外,在国内整个业界还没有成功案例。 目前Matrix已经托管了百度所有离线计算(包括代理计算)和分布式存储,以及搜索、广告系统、社区的大部分核心系统,目前规模超过30%的服务器。 在Matrix上已经实现了机器的全自动运维,以及大部分故障的无人介入处理。通过在/离线混布和优化代理计算,初期一年的成本收益已经达到5.1
SharePoint 2013 可视化工作流设计图解 地点:西宁: SharePoint 2013 加BI 项目。 平台环境:SharePoint2013   系统环境windows server2012: 开发工具:SharePoint designer 2013   前提:服务器安装完成Visio 2013 旗舰版:             使用账户有权限 感谢兄弟 胡祥文 的帮助。 根据上篇,工作流发布成功后,图形比较难看,显示内容让人无法理解,审批状态也缺少内容,如果是二级审批后三级未审批,就不能
工作中使用到较多的webservice,学习了一段时间,在这里总结一下在vs中使用webservice的过程和理解。 一 创建(服务器端)   在vs中穿件webservice是比较简单的。下面记录一下步骤。 步骤1:新建一个web项目,注意不能是类库。 步骤2:在新建的web项目上,添加新项--web服务; 自动生成的代码如下: /// summary /// WebService1 的摘要说明 /// /summary [WebService(Namespace = "http://tempuri.o
本来每天更新的,我一般喜欢夜里过了十二点的时候发文章,结果难道是愚人节吗?学校的网也很有意思,断了,把我给耍了。。。好吧…开始今天的话题AOP。AOP太重要了,所以放到第二篇文章来谈这个话题,AOP是Spring中的重要概念。如果这个不理解Web开发中的三大框架的原理,那就呵呵了。时常听到同学和网友议论Web程序员大部分时间都是在考皮XML配置,我当时听到也是醉了,所以我要用心学习Web,其实这里面蕴含的设计模式、算法、架构思想在源码中体现的淋漓尽致啊,一个大宝库竟然视而不见可惜了。下面就一起品味… 1.

Linux学习笔记(一) - 2015-06-26 11:06:07

Aim: 1、    虚拟机的各项基本操作。 2、    使用虚拟机来安装Linux操作系统(发行版采用CentOS7 64位) 3、    Linux的启动、关机、重启、登录、注销等操作 4、    Linux桌面基本应用 5、    通过SSH客户端远程管理Linux主机, SCP文件传输,远程登录桌面。 一、Linux简单介绍 1、什么是Linux? 1991年,当时尚在念大学二年级的Linus Torvalds推出了Linux的核心雏形。在公布在互联网上之后,经过众多爱好者的贡献,发展到了今天。

nginx+tomcat重复请求 - 2015-06-26 11:06:07

好久不写技术文章了,越发的觉得单纯的讲技术没啥意思。怪不得知乎越来越火,因为大家都喜欢看故事,不喜欢硬生生的技术文章。笔者今天就来就给大家讲故事:) 最近网站压力突然增大,把带宽都占满了,访问网页发现非常的慢,打开页面的速度也奇慢大概要十几秒。这种情况还是第一次遇到,感觉不是被攻击了就是被攻击了!下面是网站的流量截图,一共1M的带宽在15点左右的时候瞬间慢了,然后就是持续的在峰值左右徘徊。 当时的想法是莫非网站的访问量到达了一定程度要增加带宽了?可是通过看网站的统计数据,访问的人数并没有明显的增加。这时自

CentOS5.8编译安装PHP5.4.12 2013 - 2015-06-26 10:06:13

1. 第一步:进入/tmp目录,下载的临时文件将会出现在这里,如果希望长期保存下来,请移动位置,否则第二天这个目录下的文件将会自动清除. 因最新稳定版的php5.4.12不能兼容zend loader,故以下php5.4.12版本均改为了 old stable 版本 5.3.22。安装方式基本都相同。如果想装zend的同学切忌不可直接复制下面的安装! #PHP5.4 .12 点击( 此处 )折叠或打开 wget http://www.php.net/get/php-5.4.12.tar.gz/from/h

linux 命令之 uptime - 2015-06-26 10:06:11

uptime 命令是用来查询linux系统负载的。 命令格式 uptime [OPTION] -V 显示版本 不带参数的 uptime 直接输出系统负载. 何为系统负载呢? 系统平均负载被定义为在特定时间间隔内运行队列中的平均进程树。如果一个进程满足以下条件则其就会位于运行队列中:  - 它没有在等待I/O操作的结果  - 它没有主动进入等待状态(也就是没有调用'wait')  - 没有被停止(例如:等待终止) 一般来说,每个CPU内核当前活动进程数不大于3,则系统运行表现良好!当然这里说的是每个cpu内

浅谈 Linux 下的 SSH1, SSH2 - 2015-06-26 10:06:11

cnmm22 动感原创:http://blog.csdn.net/cnmm22/article/details/44887763 SSH:Secure Shell 。是一种安全协议。 常见的应用场景是远程控制台登陆。 SSH1 免费, SSH2 收费。  其实  SSH  并不只是在 Linux 和 Unix  下使用,他们同样在  Windows NT下广泛使用。 相对于   Telnet,ssh 对传输内容加密并压缩。 SSH软件包由服务器端软件包和客户软件包组成,在windows 下服务器软件包只能