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

原创 2015年03月20日 17:24:53

本文介绍了一种简单易行的使用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

版权声明:本文为博主(微博@Gary的影响力)原创文章,未经博主允许不得转载。博客地址:http://garyelephant.me

利用Rsyslog向ElasticSearch推送nginx access日志

1> 重新配置 nginx access 日志格式为 json 格式; log_format ngx_accss_json '{ "@timestamp": "$time_iso8601", '...
  • force_eagle
  • force_eagle
  • 2016年08月29日 16:48
  • 1945

玩儿透ELK日志分析集群搭建管理(rsyslog->kafka->Logstash->ES->Kibana)

日志分析作为掌握业务情况的一个重要手段,目前使用最多最成熟的莫过于ELK方案,其中也有各种搭配组合,像rsyslog->ES->kibana、rsyslog->Redis->Logstash->ES-...
  • u010954257
  • u010954257
  • 2017年01月19日 21:44
  • 2645

rsyslog发送日志至logstash收集

将以下配置项添加到/etc/rsyslog.conf最后,其中10.16.15.154:5555和6666为logstash地址###########To Logcenter#############...
  • gaoxiang2005
  • gaoxiang2005
  • 2016年11月19日 10:17
  • 347

日志收集之rsyslog to kafka

http://www.jianshu.com/p/1b7fdb1cff3c 字数1259 阅读1439 评论0 喜欢3 项目需要将日志收集起来做存储分析,数据的流向为rsyslog...
  • qiezikuaichuan
  • qiezikuaichuan
  • 2016年11月22日 14:05
  • 609

日志收集之--将Kafka数据导入elasticsearch

最近需要搭建一套日志监控平台,结合系统本身的特性总结一句话也就是:需要将Kafka中的数据导入到elasticsearch中。那么如何将Kafka中的数据导入到elasticsearch中去呢,总结起...
  • u014236541
  • u014236541
  • 2017年12月06日 14:33
  • 246

将Rsyslog的日志输出到Kafka消息队列

http://www.biglog.org/rsyslog-output-kafka/ Rsyslog8.x版本最大的新特性是:可以支持将日志输出到Kafka。 不过Rsysl...
  • leonpengweicn
  • leonpengweicn
  • 2015年03月19日 23:05
  • 3347

rsyslog与Kafka结合使用

http://bigbo.github.io/pages/2015/01/21/syslog_kafka/ 前言 最近在折腾 Rsyslog ,传输日志,对他怎么说呢,谁用...
  • leonpengweicn
  • leonpengweicn
  • 2015年03月19日 23:01
  • 2334

ELK实战二:日志收集利器rsyslog

http://www.weblnn.com/c/146.html ELK实战二:日志收集利器rsyslog   开源框架    领男   2016-10-20   9浏览 ...
  • qiezikuaichuan
  • qiezikuaichuan
  • 2016年11月24日 11:12
  • 1406

rsyslog 同时发生nginx 访问日志和错误日志

input(type="imfile" File="/var/log/nginx/access.log" Tag="zjzc-frontend01-access" Severity="info" Fa...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年08月24日 12:34
  • 660

nginx 通过rsyslog发日志 rsyslog服务器挂掉 日志丢失问题

nginx 配置: user nginx; worker_processes 1; syslog local5 nginx-zjzc01; rsyslog 服务器收到的消息: -rw-r--...
  • zhaoyangjian724
  • zhaoyangjian724
  • 2016年08月10日 16:26
  • 518
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Tutorial: 使用rsyslog向kafka, elasticsearch推送日志
举报原因:
原因补充:

(最多只允许输入30个字)