一,软件介绍

    nxlog 是用 C 语言写的一个开源日志收集处理软件,它是一个模块化、多线程、高性能的日志管理解决方案,支持多平台。可以处理来自许多不同来源的大量事件日志。支持的日志处理类型包括重写,关联,警报,过滤和模式匹配。其他功能包括计划,日志文件轮换,缓冲和优先处理。处理完成后,NXLog可以以任何支持的格式存储或转发事件日志。输入,输出和处理采用模块化架构和强大的配置语言实现。

    Nxlog 的 module 共分为4种,分别为:Input module 负责从各种数据源(如 file, archive, tcp, udp等)中采集数据,Output module 定义了该如何处理采集的数据,我们可以以文件的方式保存下来,也可能通过 tcp,udp 发出去。Processor module 负责对采集的数据进行处理,比如做一些内容过滤,格式转换之类的。Extension module 主要是用来扩展读写数据的接口,它可以针对特定的数据类型进行特定的处理.这里面 input 和 output 模块是必不可少的,processor 和 extension 模块的话可添加与不加

    

二,特性

  跨平台: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具备字符集的转换能力

三,安装

wget https://nxlog.co/system/files/products/files//nxlog-ce-2.10.-1_rhel6.x86_64.rpm

 rpm -ivh nxlog-ce-2.10.2150-1_rhel6.x86_64.rpm 

 

  报错,显示没有相关的组建

       yum install libdbi

    然后rpm -ivh nxlog-ce-2.10.2150-1_rhel6.x86_64.rpm

  

  查看相关的文件位置

  

 [root@web01 filebeat]# rpm -ql nxlog-ce-2.10.2150-1.x86_64
/etc/init.d/nxlog
/etc/nxlog.conf
/usr/bin/nxlog
/usr/bin/nxlog-processor
/usr/bin/nxlog-stmnt-verifier
/usr/libexec/nxlog/modules/extension
/usr/libexec/nxlog/modules/extension/xm_charconv.so
/usr/libexec/nxlog/modules/extension/xm_csv.so
/usr/libexec/nxlog/modules/extension/xm_exec.so
/usr/libexec/nxlog/modules/extension/xm_fileop.so
/usr/libexec/nxlog/modules/extension/xm_gelf.so
/usr/libexec/nxlog/modules/extension/xm_json.so
/usr/libexec/nxlog/modules/extension/xm_kvp.so
/usr/libexec/nxlog/modules/extension/xm_multiline.so
/usr/libexec/nxlog/modules/extension/xm_perl.so
/usr/libexec/nxlog/modules/extension/xm_syslog.so
/usr/libexec/nxlog/modules/extension/xm_wtmp.so
/usr/libexec/nxlog/modules/extension/xm_xml.so
/usr/libexec/nxlog/modules/input
/usr/libexec/nxlog/modules/input/im_dbi.so
/usr/libexec/nxlog/modules/input/im_exec.so
/usr/libexec/nxlog/modules/input/im_file.so
/usr/libexec/nxlog/modules/input/im_internal.so
/usr/libexec/nxlog/modules/input/im_kernel.so
/usr/libexec/nxlog/modules/input/im_mark.so
/usr/libexec/nxlog/modules/input/im_null.so
/usr/libexec/nxlog/modules/input/im_ssl.so
/usr/libexec/nxlog/modules/input/im_tcp.so
/usr/libexec/nxlog/modules/input/im_testgen.so
/usr/libexec/nxlog/modules/input/im_udp.so
/usr/libexec/nxlog/modules/input/im_uds.so
/usr/libexec/nxlog/modules/output
/usr/libexec/nxlog/modules/output/om_blocker.so
/usr/libexec/nxlog/modules/output/om_dbi.so
/usr/libexec/nxlog/modules/output/om_exec.so
/usr/libexec/nxlog/modules/output/om_file.so
/usr/libexec/nxlog/modules/output/om_http.so
/usr/libexec/nxlog/modules/output/om_null.so
/usr/libexec/nxlog/modules/output/om_ssl.so
/usr/libexec/nxlog/modules/output/om_tcp.so
/usr/libexec/nxlog/modules/output/om_udp.so
/usr/libexec/nxlog/modules/output/om_uds.so
/usr/libexec/nxlog/modules/processor
/usr/libexec/nxlog/modules/processor/pm_blocker.so
/usr/libexec/nxlog/modules/processor/pm_buffer.so
/usr/libexec/nxlog/modules/processor/pm_evcorr.so
/usr/libexec/nxlog/modules/processor/pm_filter.so
/usr/libexec/nxlog/modules/processor/pm_norepeat.so
/usr/libexec/nxlog/modules/processor/pm_null.so
/usr/libexec/nxlog/modules/processor/pm_pattern.so
/usr/libexec/nxlog/modules/processor/pm_transformer.so
/usr/share/doc/nxlog-ce/ChangeLog.txt
/usr/share/doc/nxlog-ce/figures
/usr/share/doc/nxlog-ce/figures/architecture.png
/usr/share/doc/nxlog-ce/figures/architecture1.png
/usr/share/doc/nxlog-ce/figures/architecture2.png
/usr/share/doc/nxlog-ce/figures/msi-installer.png
/usr/share/doc/nxlog-ce/figures/windows-service.png
/usr/share/doc/nxlog-ce/nxlog-reference-manual.html
/usr/share/doc/nxlog-ce/nxlog-reference-manual.pdf
/usr/share/nxlog-ce/core-fields.xml
/usr/share/nxlog-ce/im_internal-fields.xml
/usr/share/nxlog-ce/im_mark-fields.xml
/usr/share/nxlog-ce/im_mseventlog-fields.xml
/usr/share/nxlog-ce/im_msvistalog-fields.xml
/usr/share/nxlog-ce/im_ssl-fields.xml
/usr/share/nxlog-ce/im_tcp-fields.xml
/usr/share/nxlog-ce/im_udp-fields.xml
/usr/share/nxlog-ce/pm_norepeat-fields.xml
/usr/share/nxlog-ce/pm_pattern-fields.xml
/usr/share/nxlog-ce/xm_syslog-fields.xml
/usr/share/perl5/vendor_perl/Log/Nxlog.pm
/var/lib/nxlog/cert
/var/log/nxlog
/var/run/nxlog
/var/spool/nxlog

可以看见对应的启动文件与配置文件目录

编辑配置文件 

## This is a sample configuration file. See the nxlog reference manual about the
## configuration options. It should be installed locally under
## /usr/share/doc/nxlog-ce/ and is also available online at
## http://nxlog.org/docs ########################################
# Global directives #
########################################
User nxlog
Group nxlog LogFile /var/log/nxlog/nxlog.log
LogLevel INFO ########################################
# Modules #
########################################
<Extension _syslog>
Module xm_syslog
</Extension> <Input in1>
Module im_file
File '/application/nginx/logs/*.log'
SavePos True
</Input> <Output fileout1>
Module om_file
File "/var/log/logmsg.txt"
Exec if $Message =~ /error/ $SeverityValue = syslog_severity_value("error");
Exec to_syslog_bsd();
</Output> <Output out>
Module om_tcp
Host 10.0.0.223
Port
</Output> ########################################
# Routes #
########################################
<Route tcproute>
Path in1 => out
</Route>

启动软件

/etc/init.d/nxlog restart
 root@web01 filebeat]# /etc/init.d/nxlog restart
Restarting nxlog daemon...
Starting nxlog daemon...
nxlog started!
nxlog restarted

好像启动了查看日志发现问题了

logstash 进行对接配置

  

input {
tcp {
port =>
}
redis {
data_type => "list"
host => "10.0.0.7"
db => "1"
port => "6379"
password => "123"
key => "filesystem-log-5612" }
} output {
elasticsearch {
hosts => ["10.0.0.223:9200"]
index => "filesystem-log-5612-%{+YYYY.MM.dd}"
}
}

有端口了

再到客户端运行

/etc/init.d/nxlog restart

可以了

到head查看,日志写一块了,可能不怎么清楚,

日志收集之nxlog的更多相关文章

  1. ELK系列~Nxlog日志收集加转发(解决log4日志换行导致json转换失败问题)

    本文章将会继承上一篇文章,主要讲通过工具来进行日志的收集与发送,<ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd> Nxlog是一个日志收集工具, ...

  2. LiveCD DSET日志收集

      DELL的LiveCD是一张PE光盘,最新版本7.1是基于CentOS 6.2系统的. 工具下载地址: http://downloads.dell.com/FOLDER01960516M/1/SL ...

  3. ExceptionLess异常日志收集框架-1

    哈哈,中秋和代码更配哦,不知不觉一年过半了,祝园友们中秋快乐 前一阵子在博客园看到了一篇博文 http://www.cnblogs.com/savorboard/p/exceptionless.htm ...

  4. Scribe日志收集工具

    Scribe日志收集工具 概述 Scribe是facebook开源的日志收集系统,在facebook内部已经得到大量的应用.它能够从各种日志源上收集日志,存储到一个中央存储系统(可以是NFS,分布式文 ...

  5. 【转】flume+kafka+zookeeper 日志收集平台的搭建

    from:https://my.oschina.net/jastme/blog/600573 flume+kafka+zookeeper 日志收集平台的搭建 收藏 jastme 发表于 10个月前 阅 ...

  6. 【转】Flume日志收集

    from:http://www.cnblogs.com/oubo/archive/2012/05/25/2517751.html Flume日志收集   一.Flume介绍 Flume是一个分布式.可 ...

  7. ELK+kafka构建日志收集系统

    ELK+kafka构建日志收集系统   原文  http://lx.wxqrcode.com/index.php/post/101.html   背景: 最近线上上了ELK,但是只用了一台Redis在 ...

  8. Flume -- 开源分布式日志收集系统

    Flume是Cloudera提供的一个高可用的.高可靠的开源分布式海量日志收集系统,日志数据可以经过Flume流向需要存储终端目的地.这里的日志是一个统称,泛指文件.操作记录等许多数据. 一.Flum ...

  9. Auty自动化测试框架第三篇——添加异常处理与日志收集

    [本文出自天外归云的博客园] 本次对框架进行完善,增加了日志收集功能和修饰运行功能,完善后的lib目录如下:

随机推荐

  1. TensorFlow中文手册

    注意:本文只为读书笔记. 第一章 起步 - 起步 - [介绍](SOURCE/get_started/introduction.md) - [下载及安装](SOURCE/get_started/os_ ...

  2. telerik 值得学习 web mvc 桌面 控件大全

    http://www.telerik.com http://www.dxper.net/forum-70-1.html http://www.dxper.net/forum.php

  3. C# File类常用方法

    File 类 提供用于创建.复制.删除.移动和打开文件的静态方法,并协助创建 FileStream 对象. 1. File.Exists ——  确定指定的文件是否存在. public static ...

  4. 我的java问题排查工具单

    前言 平时的工作中经常碰到很多疑难问题的处理,在解决问题的同时,有一些工具起到了相当大的作用,在此书写下来,一是作为笔记,可以让自己后续忘记了可快速翻阅,二是分享,希望看到此文的同学们可以拿出自己日常 ...

  5. 虚拟机网络配置,桥接模式和NAT模式

    虚拟机网络设置方式的研究: 主要就是桥接网络,和NAT模式: 桥接网络:桥接网络中,相当于虚拟机的网卡和主机的物理网卡均连接到虚拟机软件提供的VMnet0虚拟交换机上,因此虚拟机和主机是平等的,相当于 ...

  6. Communication with each role instance in Azure

    Use WCF  Communication with role instance in azure 1)In worker role build WCF Service public overrid ...

  7. centos安装mysql57

    下载源安装文件 https://dev.mysql.com/downloads/repo/yum/ wget http://repo.mysql.com//mysql57-community-rele ...

  8. 190221协程与IO模型

    一.协程 又称微线程 协程是一种用户态的轻量级的线程 在单线程下实现的并发,例如:yield 优点: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 方便切换控制流,简化编程模型 高并发,高扩 ...

  9. 神奇的Form表单

    今天坐标单上传,提交的按钮使用了<button>,发现不论怎么写ajax和设置form表单,都会刷新页面,百思不得解,然后偶然间把<button>变成<input typ ...

  10. 获取当前按钮或者html的ID名称

    今天做的上传图片,点击图片删除. 随机给图片id,获取图片id,然后删除图片. 由于图片id是随机的,用点击img或者点击class,获取id都不行,最后用onclick事件获取. js代码如下: $ ...