(本来打算一本正经的写一篇文章,但是发现一本正经的写我根本就写不出来(′?`) )

当我们开始设计日志系统的时候,我们要考虑的第一个事情就是用什么方式采集客户机上面的日志。而今天要给大家介绍的这款日志采集神器就是Nxlog。

日志采集工具众多,各有各的特色。

譬如LogStash这头大象虽然笨重,但是部署简单,在各种环境下都能用。在某些艰苦的条件下,LogStash还是能帮我们大忙的(请自行脑补一台XX定制机上面只有syslog,然后要自己当盘古开天辟地的场景)

又譬如rsyslog,基本上已经是运维采集日志的标配了,性能高,大多数系统都自带了。

又譬如Heka(老衲已经跪了。。。。),好吧,不说Heka了。

NXlog

既然有了那么多现成的日志采集工具了,为什么还需要Nxlog呢?其实nxlog的作者们当时也是考虑过这个问题的

在几年前,我们使用了一个根据msyslog修改过来的版本,它也是一个插件化的架构。但是,和很多syslog的实现者一样,它也是基于BSD的syslog的单线程架构实现的,所以它继承了所有syslog的缺点。我们很快就发现我们需要一个更好的日志解决方案。接着,我们就开始寻找其他解决方案,有很多像rsyslog、syslog-ng这样的方案是可以拿来代替msyslog的,但是大多数方案还是单线程的,并且不是原生支持Windows系统的。于是我们就开始开发NxLog,Nxlog从2009年开始开发,当时是一个闭源项目,知道2011年我们才放出了开源的CE版本

可以看到作者的心路历程其实是这样的。用syslog系列->跪了->用rsyslog顶上->Windows下又跪了->程序员的本性显露出来了,内心独白(这些都是什么渣渣,我要自己写一个(/= _ =)/~┴┴)

于是2009年,NXlog就开始开发,等到2011年,第一个开源版本放出来了,直到现在已经是第7个年头了

NXLog的特性

既然是对现有工具都不满而制造出来的产品,自然也会有属于它自己的亮点特性

当你需要一个客户端通杀Windows、*Nix的时候,来一发nxlog吧!NxLog的夸平台设计能够在Windows和*nix下运行,一个客户端解决你所有的烦恼,而且占用资源非常少哟

当某些重要应用不适合在上面放日志处理程序的时候,来一发nxlog吧!Nxlog除了在线处理日志的功能之外,还提供了离线处理日志的功能

当你需要做某用户在40分钟内连续登陆失败xx次则告警的时候,来一发nxlog吧!NXLog提供了命令执行以及静态计数器的功能,可以让你轻易的达到这个目的(当然,你可以来一发LogInsight体验一下在界面上可视化添加告警的快感)

总结一下的话就是我是一个跨平台、不会丢日志、具备日志缓冲与流量控制、定时作业、还带简单编程语言的宝宝。

再具备一定高度的总结一下的话呢,就是。。Rsyslog和LogStash等渣渣,不服来战

好吧好吧,下面是NXLog的亮点特性完整版,内容有点长(慎点。。),想节省时间的看官看上面的总结就可以啦

真NXLog功能特性

跨平台: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等方式,它既支持从这些协议里面读,也支持从这些协议里面写。

可扩展的多线程架构: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具备字符集的转换能力

nxlog收集linux日志,Nxlog——日志采集神器简介相关推荐

  1. Nxlog——日志采集神器简介

    (本来打算一本正经的写一篇文章,但是发现一本正经的写我根本就写不出来(´∇`) ) 当我们开始设计日志系统的时候,我们要考虑的第一个事情就是用什么方式采集客户机上面的日志.而今天要给大家介绍的这款日志 ...

  2. Linux系统管理员之日志管理

    目录 零.实验环境 一.journald服务 1.journalctl命令 (1)基本命令 (2)设定日志显示方式 (3)显示制定级别的日志 2.用journald服务永久存放日志 3.测试 二.rs ...

  3. 网站流量日志数据自定义采集

    1. 原理分析 首先,用户的行为会触发浏览器对被统计页面的一个http请求,比如打开某网页.当网页被打开,页面中的埋点javascript代码会被执行. 埋点是指:在网页中预先加入小段javascri ...

  4. linux下实现 日志类重定向c 代码,log4cplus使用(三)-日志重定向

    本文讲述的是log4cplus日志输出到qt widget,封装了serverSocket.     log4cplus支持用户自定义输出设备,只需要继承自Appender,或者Appender子类, ...

  5. Linux文件系统与日志分析

    文章目录 引言 一.inode和block 1.inode和block概述 2.inode的内容 2.1 inode包含文件的元信息(文件属性) 2.2 用stat命令查看某个文件的inode信息 2 ...

  6. ftp文件服务器登录日志,linux ftp服务器日志

    linux ftp服务器日志 内容精选 换一换 为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性.本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远 ...

  7. Linux中的日志系统介绍

    一.常见的日志 日志是一个系统管理员,一个运维人员,甚至是开发人员不可或缺的东西,系统用久了偶尔也会出现一些错误,我们需要日志来给系统排错,在一些网络应用服务不能正常工作的时候,我们需要用日志来做问题 ...

  8. 《构建高可用Linux服务器 第3版》—— 1.4 Linux服务器的日志管理

    本节书摘来自华章出版社<构建高可用Linux服务器 第3版>一 书中的第1章,第1.4节,作者:余洪春 ,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 1.4 ...

  9. Linux/Centos7系统管理之深入理解Linux文件系统与日志分析

    前言:inode(文件节点)与block(数据块)硬链接与软连接恢复误删除的文件 (即rm-rf 的操作,可以先进行备份的操作,然后可以进行恢复ext4和xfs文件系统皆可)日志文件的分类用户日志与程 ...

  10. Linux系统的日志管理

    Linux系统的日志管理 一.systemd-journald服务 1.systemd-journald介绍 2.系统日志默认保存路径 3.systemd-journald的配置文件修改 ①配置文件目 ...

最新文章

  1. python精通-干货|Python学习必须精通的几个模块
  2. 机房配电柜、机柜线缆施工标准做法及线缆入柜方式
  3. 拦截锚点修改url_前端系列课程(2)-网络基础概念(URL)
  4. mongodb 入门 启动mongodb 无法启动 问题 非正常关闭
  5. ICCV2021 视频领域的纯Transformer方案!谷歌提出ViViT,在多个视频分类基准上SOTA!代码已开源!...
  6. javascript中的变量如果没有定义就使用的话
  7. regression+classification
  8. 解开Android应用程序组件Activity的singleTask之谜(3)
  9. 那些聪明人都是怎么提高情商的?
  10. Servlet 身份验证体系结构
  11. AM437x——LED驱动
  12. 21-22(2)第2次线上赛
  13. 进程专题01篇——Linux下的进程结构(黑马程序员)
  14. 微信小程序注册流程详解
  15. 1419 最小公倍数挑战(素数性质之两两互质 与 取“3”个数的特殊性)
  16. 【OpenFOAM学前预备3——安装OpenFOAM-v8】
  17. 不是每个捕鱼都叫捕鱼达人:Cocos精品《捕鱼达人4》华丽升级
  18. Python---面向对象---龟鱼游戏
  19. 新海诚没有参与制作的作品_新海诚作品天气之子作画更上一步 各种好玩的梗值得一观...
  20. Gentoo快速安装和安装在zfs上安装实践

热门文章

  1. 最大流 (Maximum Flow) 之 流网络和流
  2. 纯前端实现—按钮操作字体放大缩小
  3. halcon修改程序框字体大小
  4. HoloView -- Tabular Datasets
  5. Java实现Modbus/TCP客户端与modsim通信
  6. MES系统之生产管理系统功能介绍(源码)
  7. 高德、百度、GPS经纬度转换
  8. Android之四大组件、六大布局、五大存储
  9. win10计算机停止工作,Win10系统总提示Rundll32已停止工作的解决方法
  10. Awesomium(二)-- MultiThreadSnapshot