linux 查看tdagent进程,Fluentd (td-agent) 日志收集系統

Fluentd是一個日志收集系統,它的特點在於其各部分均是可定制化的,你可以通過簡單的配置,將日志收集到不同的地方。

目前開源社區已經貢獻了下面一些存儲插件:MongoDB, Redis, CouchDB,AmazonS3, Amazon SQS, Scribe, 0MQ, AMQP, Delayed, Growl等等。

8c6cbdefa024b944734ba6d5203e8343.jpe

安裝

此版本采用: Installingtd-agent for Redhat and CentOS

Fluentd是由Ruby和C編寫的,需要ruby進行,然而安裝td-agent 是fluentd 的易安裝版本,不用考慮太多的依賴關系。

1.首先please create /etc/yum.repos.d/td.repo with the followingcontents.

[treasuredata]

name=TreasureData

baseurl=http://packages.treasure-data.com/redhat/$basearch

gpgcheck=0

Then,you can install via yum command.

2. $ yumupdate

$ yuminstall td-agent

3. 安裝完成后,可使用以下方式啟動關閉服務。

$ /etc/init.d/td-agent start

$ /etc/init.d/td-agent stop

$/etc/init.d/td-agent restart

4.默認的/etc/td-agent/td-agent.conf為td-agent的配置文件

/var/log/td-agent/td-agent.log為td-agent的日志文件

5. 查看td-agent的安裝

6.查看ruby fluent插件的列表:ruby的安裝路徑在/usr/lib64/fluent/ruby/

afa820a06646cf2ee6b4dde53519b720.jpe

fluent-plugin-tail-ex:為輸入擴展插件,支持對文件路徑、日期的擴展

fluent-plugin-tail-multiline:為輸入擴展插件,支持多行數據的收集,能夠更好的收集異常信息。

5. 插件安裝

兩種安裝方法:

1)  可以本地安裝,下載gem安裝包  https://rubygems.org/gems,推薦此方法

2)  ruby庫遠程安裝

兩種方法的安裝命令為:$ /usr/lib64/fluent/ruby/bin/gem install 插件名稱

6. 配置

首先我們編輯配置文件/etc/td-agent/td-agent.conf 中的source來設置日志來源

type tail

format apache

path /var/log/apache2/access_log

pos_file /var/log/apache2/access_log.pos

tag mongo.apache

其中:

type tail: tail方式是 Fluentd 內置的輸入方式,其原理是不停地從源文件中獲取增量日志,與linx命令tail相似,也可以使用其他輸入方式如http、forward等輸入,也可以使用輸入插件,將 tail 改為相應的插件名稱 如: type tail_ex  ,注意tail_ex為下划線。

format apache: 指定使用 Fluentd 內置的 Apache 日志解析器。可以自己配置表達式。

path /var/log/apache2/access_log: 指定收集日志文件位置。

Pos_file /var/log/apache2/access_log.pos:強烈建議使用此參數,access_log.pos文件可以自動生成,要注意access_log.pos文件的寫入權限,因為要將access_log上次的讀取長度寫入到該文件,主要保證在fluentd服務宕機重啟后能夠繼續收集,避免日志數據收集丟失,保證數據收集的完整性。

tag mongo.apache: 指定tag,tag被用來對不同的日志進行分類,與后面的標簽match相匹配。

下面再來編輯輸出配置,配置日志收集后存儲到MongoDB中,也可以輸出到其他組件如文件,轉發等。

# plugin type

type mongo

# mongodb db + collection

database apache

collection access

# mongodb host + port

host localhost

port 27017

# interval

flush_interval 10s

match標簽后面可以跟正則表達式以匹配我們指定的tag,只有匹配成功的tag對應的日志才會運用里面的配置。配置中的其它項都比較好理解,看注釋就可以了,其中flush_interval是用來控制多長時間將日志寫入MongoDB一次。

ccd58b32cc34c93eeed79cfc0c7c2baa.jpe

# TCP input

type forward

port 24224

# HTTP input

type http

port 8888

# Log Forwarding

type forward

# primary host

host 192.168.0.1

port 24224

# use secondary host

host 192.168.0.2

port 24224

standby

# use longer flush_interval to reduce CPU usage.

# note that this is a trade-off against latency.

flush_interval 60s

8.fluent對java的支持:fluent-logger-javais a Java library, to record events via Fluentd, from Java application.

import java.util.HashMap;

import java.util.Map;

import org.fluentd.logger.FluentLogger;

public class Main {

private static FluentLogger LOG = FluentLogger.getLogger("app", "192.168.0.1", 24224);

public static void main(String[] args) {

// ...

Map data = new HashMap();

data.put("from", "aaa");

data.put("to", "bbb");

LOG.log("follow", data); //...

FluentLogger.close();

}

}

配置fluentd服務器端/etc/td-agent/td-agent.conf

添加:

##必須啟動tcp端口,端口號為24224,不加port屬性默認為24224

type tcp

port 24224

##app.** 與java中的app匹配

##匹配輸出到/var/log/td-agent/td-agent.log

type stdout

查看td-agent.log輸出結果:

2013-06-06 12:56:01 +0800 app.follow: {"to":"bbb","from":"aaa"}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
td-agent 是一个基于 Fluentd 构建的日志收集器,它的实现原理与 Fluentd 基本相同。Fluentd 是一个开源的日志收集器和数据处理平台,它可以将各种不同格式的日志数据集中到一个中央位置,并对这些数据进行处理、过滤和转发。Fluentd 的数据处理模型基于消息传递,即数据被视为消息,在不同的输入和输出之间流动。 具体来说,td-agent 的实现原理如下: 1. 输入插件:td-agent 支持多种输入插件,如文件、TCP、UDP、HTTP 等。输入插件负责从各种数据源中读取日志数据,并将其转换为 Fluentd 数据格式。 2. 过滤器:td-agent 支持多种过滤器,如 grep、record_transformer、parser 等。过滤器可以对输入的日志数据进行处理、转换、过滤等操作,并将结果发送给输出插件。 3. 输出插件:td-agent 支持多种输出插件,如文件、Elasticsearch、Kafka、S3 等。输出插件负责将经过处理的日志数据发送到指定的目标位置。 4. 数据缓存:Fluentd 有一个数据缓存机制,用于存储输入插件采集的日志数据,以及经过过滤器处理后的数据。缓存可以保证数据不丢失,并且提高系统的可靠性。 5. 日志转发:td-agent 可以将处理后的日志数据转发到其他 Fluentd 节点或者其他系统,实现分布式日志处理和集中式日志管理。 总之,td-agent 的实现原理是基于 Fluentd 构建的,通过输入插件、过滤器、输出插件等组件实现日志数据的收集、处理和转发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值