NXLog简介

概览

如今,IT基础设施对事件日志的管理要求越来越高。许许多多不同的设备,应用都在时时刻刻的产生巨大的日志消息。这些日志消息需要被实时、正确的处理,经过日志过滤、格式化等操作后转发或者存储到一个集中式的日志管理中心。有许多的组织在处理这些日志信息的时候都是采用一些脚本或者是在程序中对日志进行特殊的处理。而NXLog则是一个高性能、跨平台的解决方案,能够帮助我们解决上述的问题的一款应用。

NXLog能够在各种不同的设备上进行各种不同格式的日志消息的采集以及处理,NXLog能够接收从TCP、UDP、文件、数据库以及其他不同来源的日志消息,例如Syslog,WIndows的EventLog。

NXLog具备日志消息重写,关联,告警,正则匹配,执行调度任务或者日志文件的轮转等功能。它的设计能够充分利用如今的多核CPU的性能。它的多线程架构为日志输入、日志处理、日志输出提供了并行处理的能力。使用了高性能的IO层让NXLog能够同时处理成千个并发的客户端连接,并且处理日志卷高达100000EPS。NXLog努力的让日志消息丢失的情况尽可能少的出现,它不会丢弃任何日志消息,除非人为的指定它丢弃日志消息。它能够根据用户设定的日志消息优先级进行处理,这意味着越高优先级的日志消息越容易得到处理,这能够帮助我们避免UDP传输过程中的日志消息丢失。为了避免网络拥塞或者其他的日志消息传输问题,NXLog提供了把日志消息缓冲到磁盘或者内存的功能。

NXLog还提供了可加载的模块用于支持各种不同的输入源以及格式化日志的方法,例如Syslog、EventLog、Audit Log或者一些自定义的二进制应用日志。可加载模块可以让我们能够自定义添加扩展,就像为Apache服务器添加扩展一样。除了能够处理实时日志消息之外,NXlog还能够对批处理日志进行处理。Apache风格的配置语言为实现日志重写,告警发送,执行脚本等事情提供了非常强大的帮助

特性

跨平台:NXLog使用Apache Portable Runtime Library,这使得NXLog能够像Apache一样,在不同的平台下运行,在Windows下,它使用Windows本地库进行编写,不依赖Cygwin这种库

模块化的架构:NXLog具有一个轻量级模块化的架构,它使得模块是可插拔的,和Apache Web服务器类似。日志格式化、传输协议、数据库出来、NXLog语言扩展都是模块。只有当模块是需要使用的时候,才会被加载,这能够让程序使用更少的内存。NXLog的核心只具备出来文件和Socket的能力,其他的功能都被放到了各个模块里面,模块具备统一的API,开发者可以轻易的编写新的模块去扩展NXLog

客户端-服务端模式:NXLog可以作为客户端,也可以作为服务器端。它能够采集客户机上的日志并传输给远程服务器。它也能够接收从其他节点传输过来的日志信息并转发到数据库、文件等其他地方

多种输入以及输出:除了可以从日志文件采集日志消息,NXLog还支持许多不同的网络和传输层协议,例如TCP、UDP、TLS/SSL、数据库、还有Socket等方式,它既支持从这些协议里面读,也支持从这些协议里面写。

安全:在Unix操作系统上,可以用普通用户启动NXLog,当NXLog的模块需要一些特定的权限的时候(例如kernel,绑定低于1024的TCP端口)它会使用一些Linux的功能解决,而不需要用到root权限。NXLog还提供了TLS、SSL的协议防止日志消息在传输过程中被拦截

可扩展的多线程架构:NXLog使用基于事件的架构,NXLog在处理日志消息的时候还会采用并行的模式,读取消息、输出消息等日志消息处理操作都是并行处理的。例如:当单线程的syslog进程在尝试输出日志消息到数据库的时候,它会发生堵塞,后面的UDP输入将会丢丢弃,而多线程架构的NXLog不仅避免了这个问题还充分的发挥了操作系统的并行处理能力

高吞吐量:常规的POSIX系统为监控文件描述提供了select或poll的系统调用,但是这些方式都是不可扩展的。现代操作系统具备一些I/O就绪通知的API用于处理大量的文件打开以及网络连接并发的情况。NXLog就是使用这些高性能的API对日志消息进行处理的。

消息缓冲:当日志消息由于网络问题导致输入堵塞的时候,NXlog会主动调整输入的流量。这能够避免日志消息丢失的情况。同时,NXLog还提供了一些消息缓存的模块可以让日志消息暂存到磁盘或内存中。当问题解决之后,缓冲会全部刷出,并被清空。除了使用现有的模块,还可以使用NXLog的语言对消息进行自定义的处理

优先级:不是所有的日志消息都是非常重要的,有些日志消息需要被更加有限的处理,NXLog支持为日志路由设定优先级。例如,这可以避免TCP输入过载导致系统丢弃UDP syslog输入的情况

避免丢弃消息:内置的流程控制器不支持丢弃日志消息,所以你不会看到类似以下这种日志消息被丢弃的情况

Dec 18 18:42:42 server syslog-ng[1234]: STATS: dropped 42

当然,在提供丢弃日志消息的条件后,NXLog也能够主动丢弃日志消息。UDP协议下的Syslog是一个非常典型的案例,当kernel的缓冲区用满后,操作系统会丢掉UDP的消息。当日志消息处理导致系统非常繁忙的时候,系统内核的UDP缓冲区就会被非常快的写满。

Apache风格的配置:配置方式和Apache服务器的方式很类似,容易学

内置的配置语言:内置的配置语言能够让管理员更加容易的个性化去处理日志消息,Perl是解决日志处理问题的一个挺流行的语言。内置的nxlog语言和perl的语法非常类似

任务管理器:NXLog内置了一个类似Cron的作业调度器,并且提供了更多的功能,使用这种特性,管理员能够自动的执行一些例如日志轮转,系统检查等的任务。

日志轮转:当日志达到了一定的大小,或者到了某个具体的时间,是需要被日志轮转工具进行轮转的,file input reader模块支持扩展的日志轮转脚本,它能够对日志文件进行转移/重命名等动作,类似的,file output writer 模块能够监控文件的轮转,并在轮转完后重新打开输出。

多种多样的日志消息格式化工具:NXLog支持许多种类型的日志格式,例如Syslog、新颁布的IETF Syslog标准、GELF、JSON等等。使用日志转换函数,NXLog还能够处理多行日志消息或者自定义的日志消息。

高级日志消息处理能力:除了一些内置的功能之外,使用扩展模块可以使NxLog能够具备解决一些日志格式化,事件管理、正则匹配,日志过滤、重写、告警等动作

离线消息处理模式:有些时候日志需要离线处理,NXLog提供了这种模式

字符集和i18n支持:日志消息可能是各种各样的字符集写出来的,例如UTF-8、latin-2等,Nxlog具备字符集的转换能力

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容