Nxlog 配置总结

2018-08-10  本文已影响0人  OhBonsai

Nxlog

nxlog基本架构

nxlog是事件驱动的多线程App。nxlog内核只负责配置文件解析/文件和Socket监控/内部事件管理,任何module可以dispatch事件到内核。内核会有选择性分发到对应处理module。

nxlog Config文件基本结构

配置引入

用include引入其他地方的配置,对实际功能无影响。与Apache配置类似,不研究

宏定义

用这个定义一些宏,对实际功能无影响。与C的宏类似,不研究

全局指令

内置的一些指令

Module

一个ConfigBlock如下

<Input instancename>
    Module      im_module
    ...
</Input>

顶级ConfigBlock可以分为四种,Input, Processor, Output and Extension tags.ConfigBlock必须由上面四个类型+命名。命名规则 [a-zA-Z0-9_-]。有一些通用Block可以在多种类型的模块中使用。以下列举一些。

指令 模块范围 作用
FlowControl Input, Processor 顺序控制,但有可能照成消息丢失
Schedule All 通过When,Every,First,Exec四个子指令实现筛选,频率,开始时间
Processors 作废了
InputType Input LineBased,Dgram,Binary
OutputType Output LineBased,Dgram,Binary

Nxlog 语言

类似perl语法,出错可能丢消息。复杂的处理程序可以通过自己编写一个module或者xm_perl模块来实现。 语言是强类型的,不支持Dict,正则只支持=~ 和!~。明确定义以下 "boolean", "integer", "string", "datetime", "ip4addr", "ip6addr", "regexp", "binary".这几种类型。自己有类型推导。同时函数支持多态。

Bool操作

一元操作

String =~!~.

二元操作

Function(Return值的函数)

Procedures(不Return的函数)

Nxlog Module

主要分为四种模块Extension, Input, Processor, Output

Extension

Input

Nxlog中在Input中有4个内置值$raw_event, $EventReceivedTime, $SourceModuleName, $SourceModuleType

Processor

Output modules

我们只有一种方式,就是写tcpout写到logstash里面

上一篇 下一篇

猜你喜欢

热点阅读