热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nxlog研究

1、日志收集策略有误,如果填了不存在类型的日志就会报此种错误ERRORfailedtosubscribetomsvistalogevents,thechannel

1、日志收集策略有误,如果填了不存在类型的日志就会报此种错误

> ERROR failed to subscribe to msvistalog events,the channel was not found
> [error code: 15007]; The specified channel could not be found. Check
> channel configuration.

2018-09-11 15:48:24 ERROR failed to subscribe to msvistalog events,the channel was not found [error code: 15007]; 无法找到指定的通道。请检查通道配置。

2018-09-11 16:01:54 ERROR failed to subscribe to msvistalog events using bookmark: 指定的队列无效。 

2018-09-11 16:01:54 ERROR failed to subscribe to msvistalog events,the Query is invalid: [error code: 15001]




调用函数

NXlog的核心包含了一些内置的语法。它能够完成一些更加复杂的日志处理功能。当NXLog启动的时候,内置的语言就会被预编译,如果程序出错了,NXLog会提示错误信息的。


函数使用位置

1、指令中的变量 2、Exec中执行相应程序

NXLog语言不包含异常捕获程序,如果出错了,会在NXLog的日志中打印出来,如果在处理的时候出错了,那很可能就会把日志丢掉了


类型 

NXLog语言是强类型程序,NXLog 语言只支持简单类型,复杂的类型例如HashMap这种是不支持的


 

描述

Unknown 未知类型 
Boolean 可用TRUE、FALSE、undefined 
Integer 整形 
String 字符串,undefined字符串和空字符串相等,一个字符串最多放1M,编译时就决定了的 
Datetime 时间戳 
IPv4 Address IP地址‍‍ 
IPv6 Address IP地址‍‍
正则表达式 只能用=~ 或者!~操作符‍‍‍ 
Binary 可用保存bytes数组‍ 
Variadic arguments 变长参数 
表达式

和常规的开发语言差不多,变量用$xxx这样声明,一些示例:

条件非

ifnot$successlog_error("failure"); 

正则匹配

if$Message=~/^Testmessage/log_info("matched"); 

使用/g进行全局替换

if$SourceName=~s//s/_/glog_info("removedallwhitespaceinSourceName"); 

使用/s代替.*

if$Message=~/failure/slog_info("failurestringpresentinthemessage"); 

/m能代替正则的^和$

/i能忽略大小写匹配

静态计数器 

NXLog有一些静态计数器,可以用create_stat来调用

if$Message=~/loginfailure/ 

#createwillnodoanythingifthecounteralreadyexists 
create_stat('login_failures','RATE',45,$EventTime); 
add_stat('login_failures',1,$EventTime); 
ifget_stat('login_failures',$EventTime)>=3 
log_warning("3ormoreloginfailuresdetectedwithin45seconds"); 

COUNT 累计计数器 
COUNTMIN 计算给定变量的最小值 
COUNTMAX 计算给定变量的最大值 
AVG 计算给定变量的平均值 
AVGMIN 计算给定变量的最小值平均值的 
AVGMAX 计算给定变量的最小值平均值的
RATE 指定时间间隔的值 
RATEMIN 指定时间间隔的最小值‍ 
RATEMAX 指定时间间隔的最大值 
GRAD 计算在指定的时间间隔上的计数器的速率的变化
GRADMIN 计算在指定的时间间隔上的计数器的速率的最大值 
GRADMAX 计算在指定的时间间隔上的计数器的速率的最小值 
一些内置函数  
string lc(string arg); 把字符串转成小写
string uc(string arg); 把字符串转成大写 
datetime now(); 当前时间 
string type(unknown arg); 返回变量类型,"boolean", "integer", "string", "datetime", "ip4addr", "ip6addr", "regexp", "binary" 
integer microsecond(datetime datetime); 转为微秒 
integer second(datetime datetime); 转为秒 
integer minute(datetime datetime); 转为分钟
integer hour(datetime datetime) 转为小时 
integer day(datetime datetime)转为天 
integer month(datetime datetime) 转为月 
integer year(datetime datetime) 转为年 
datetime fix_year(datetime datetime); 设置当前时间的年,BSD syslog或者cisco timestamp会把年丢掉的 
integer dayofweek(datetime datetime) 返回一周的第几天 
integer dayofyear(datetime datetime) 返回一年的第几天 
string string(unknown arg); 转为string 
integer integer(unknown arg) 转为integer
datetime datetime(integer arg) 转为datetime 
datetime parsedate(string arg) 

转为date,

例:$EventTime = parsedate($somestring); if not defined($EventTime) $EventTime = now(); 

string strftime(datetime datetime, string fmt); 格式化字符串 
datetime strptime(string input, string fmt); 格式化日期 
string hostname(); 获取主机名 
string hostname_fqdn(); 获取主机名 
ip4addr host_ip(); 获取主机IP 
ip4addr host_ip(integer nth); 获取非本地回路IP 
unknown get_var(string varname); 获取变量
integer get_stat(string statname); 获取计数器的值 
integer get_stat(string statname, datetime time); 获取计数器的值,如果不存在就把time设进去 
ip4addr ip4addr(integer arg) 转为ipv4类型 
ip4addr ip4addr(integer arg, boolean ntoa); 转为IPV4类型,ntoa代表是否反转 
string substr(string src, integer from); 字符串截取 
string substr(string src, integer from, integer to); 字符串截取 
string replace(string subject, string src, string dst); 字符串替换 
string replace(string subject, string src, string dst, integer count); 字符串替换 
integer size(string str); 获取字符串长度 
boolean dropped(); 如果当前事件drop了,返回True 
内置处理函数  
log_debug(unknown arg, varargs args);打印日志,级别为Debug 
debug(unknown arg, varargs args); 打印日志,级别为Debug 
log_info(unknown arg, varargs args); 打印日志,级别为Info 
log_warning(unknown arg, varargs args); 打印日志,级别为Warning 
log_error(unknown arg, varargs args); 打印日志,级别为Error 
delete(unknown arg); 删除日志里面的指定字段 
create_var(string varname); 创建模块变量 
create_var(string varname, integer lifetime); 创建模块变量并指定生存周期 
create_var(string varname, datetime expiry); 创建模块变量并指定生存周期 
delete_var(string varname); 删除变量 
set_var(string varname, unknown value); 设置变量 
create_stat(string statname, string type); 创建计数器 
create_stat(string statname, string type, integer interval); 创建计数器 
create_stat(string statname, string type, integer interval, datetime time); 创建计数器 
create_stat(string statname, string type, integer interval, datetime time, integer lifetime); 创建计数器 
create_stat(string statname, string type, integer interval, datetime time, datetime expiry); 创建计数器 
add_stat(string statname, integer value); 添加计数器值 
add_stat(string statname, integer value, datetime time); 添加计数器值 
sleep(integer interval); 休眠指定时长 
drop(); 放弃处理当前日志 
rename_field(string old, string new); 修改日志字段名称 
reroute(string routename);动态指定路由 
add_to_route(string routename); 复制一份日志动态指定路由,不影响当前日志流 

 


推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
author-avatar
mobiledu2502911415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有