Nxlog研究
1、日志收集策略有誤,如果填了不存在類型的日志就會(huì)報(bào)此種錯(cuò)誤
> 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]; 無法找到指定的通道。請(qǐng)檢查通道配置。
2018-09-11 16:01:54 ERROR failed to subscribe to msvistalog events using bookmark: 指定的隊(duì)列無效。?
2018-09-11 16:01:54 ERROR failed to subscribe to msvistalog events,the Query is invalid: [error code: 15001]
調(diào)用函數(shù)
NXlog的核心包含了一些內(nèi)置的語(yǔ)法。它能夠完成一些更加復(fù)雜的日志處理功能。當(dāng)NXLog啟動(dòng)的時(shí)候,內(nèi)置的語(yǔ)言就會(huì)被預(yù)編譯,如果程序出錯(cuò)了,NXLog會(huì)提示錯(cuò)誤信息的。
函數(shù)使用位置
1、指令中的變量 2、Exec中執(zhí)行相應(yīng)程序
NXLog語(yǔ)言不包含異常捕獲程序,如果出錯(cuò)了,會(huì)在NXLog的日志中打印出來,如果在處理的時(shí)候出錯(cuò)了,那很可能就會(huì)把日志丟掉了
類型?
NXLog語(yǔ)言是強(qiáng)類型程序,NXLog 語(yǔ)言只支持簡(jiǎn)單類型,復(fù)雜的類型例如HashMap這種是不支持的
| Unknown? | 未知類型? |
| Boolean? | 可用TRUE、FALSE、undefined? |
| Integer? | 整形? |
| String? | 字符串,undefined字符串和空字符串相等,一個(gè)字符串最多放1M,編譯時(shí)就決定了的? |
| Datetime? | 時(shí)間戳? |
| IPv4 Address? | IP地址??? |
| IPv6 Address? | IP地址?? |
| 正則表達(dá)式? | 只能用=~ 或者!~操作符???? |
| Binary? | 可用保存bytes數(shù)組?? |
| Variadic arguments? | 變長(zhǎng)參數(shù)? |
| 表達(dá)式 | 和常規(guī)的開發(fā)語(yǔ)言差不多,變量用$xxx這樣聲明,一些示例: 條件非 ifnot$successlog_error("failure");? 正則匹配 if$Message=~/^Testmessage/log_info("matched");? 使用/g進(jìn)行全局替換 if$SourceName=~s//s/_/glog_info("removedallwhitespaceinSourceName");? 使用/s代替.* if$Message=~/failure/slog_info("failurestringpresentinthemessage");? /m能代替正則的^和$ /i能忽略大小寫匹配 |
| 靜態(tài)計(jì)數(shù)器? | NXLog有一些靜態(tài)計(jì)數(shù)器,可以用create_stat來調(diào)用 if$Message=~/loginfailure/? |
| COUNT? | 累計(jì)計(jì)數(shù)器? |
| COUNTMIN? | 計(jì)算給定變量的最小值? |
| COUNTMAX? | 計(jì)算給定變量的最大值? |
| AVG? | 計(jì)算給定變量的平均值? |
| AVGMIN? | 計(jì)算給定變量的最小值平均值的? |
| AVGMAX? | 計(jì)算給定變量的最小值平均值的 |
| RATE? | 指定時(shí)間間隔的值? |
| RATEMIN? | 指定時(shí)間間隔的最小值?? |
| RATEMAX? | 指定時(shí)間間隔的最大值? |
| GRAD? | 計(jì)算在指定的時(shí)間間隔上的計(jì)數(shù)器的速率的變化 |
| GRADMIN? | 計(jì)算在指定的時(shí)間間隔上的計(jì)數(shù)器的速率的最大值? |
| GRADMAX? | 計(jì)算在指定的時(shí)間間隔上的計(jì)數(shù)器的速率的最小值? |
| string lc(string arg);? | 把字符串轉(zhuǎn)成小寫 |
| string uc(string arg);? | 把字符串轉(zhuǎn)成大寫? |
| datetime now();? | 當(dāng)前時(shí)間? |
| string type(unknown arg);? | 返回變量類型,"boolean", "integer", "string", "datetime", "ip4addr", "ip6addr", "regexp", "binary"? |
| integer microsecond(datetime datetime);? | 轉(zhuǎn)為微秒? |
| integer second(datetime datetime);? | 轉(zhuǎn)為秒? |
| integer minute(datetime datetime);? | 轉(zhuǎn)為分鐘 |
| integer hour(datetime datetime)? | 轉(zhuǎn)為小時(shí)? |
| integer day(datetime datetime) | 轉(zhuǎn)為天? |
| integer month(datetime datetime)? | 轉(zhuǎn)為月? |
| integer year(datetime datetime)? | 轉(zhuǎn)為年? |
| datetime fix_year(datetime datetime);? | 設(shè)置當(dāng)前時(shí)間的年,BSD syslog或者cisco timestamp會(huì)把年丟掉的? |
| integer dayofweek(datetime datetime)? | 返回一周的第幾天? |
| integer dayofyear(datetime datetime)? | 返回一年的第幾天? |
| string string(unknown arg);? | 轉(zhuǎn)為string? |
| integer integer(unknown arg)? | 轉(zhuǎn)為integer |
| datetime datetime(integer arg)? | 轉(zhuǎn)為datetime? |
| datetime parsedate(string arg)? | 轉(zhuǎn)為date, 例:$EventTime = parsedate($somestring); if not defined($EventTime) $EventTime = now();? |
| string strftime(datetime datetime, string fmt);? | 格式化字符串? |
| datetime strptime(string input, string fmt);? | 格式化日期? |
| string hostname();? | 獲取主機(jī)名? |
| string hostname_fqdn();? | 獲取主機(jī)名? |
| ip4addr host_ip();? | 獲取主機(jī)IP? |
| ip4addr host_ip(integer nth);? | 獲取非本地回路IP? |
| unknown get_var(string varname);? | 獲取變量 |
| integer get_stat(string statname);? | 獲取計(jì)數(shù)器的值? |
| integer get_stat(string statname, datetime time);? | 獲取計(jì)數(shù)器的值,如果不存在就把time設(shè)進(jìn)去? |
| ip4addr ip4addr(integer arg)? | 轉(zhuǎn)為ipv4類型? |
| ip4addr ip4addr(integer arg, boolean ntoa);? | 轉(zhuǎn)為IPV4類型,ntoa代表是否反轉(zhuǎn)? |
| 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);? | 獲取字符串長(zhǎng)度? |
| boolean dropped();? | 如果當(dāng)前事件drop了,返回True? |
| log_debug(unknown arg, varargs args); | 打印日志,級(jí)別為Debug? |
| debug(unknown arg, varargs args);? | 打印日志,級(jí)別為Debug? |
| log_info(unknown arg, varargs args);? | 打印日志,級(jí)別為Info? |
| log_warning(unknown arg, varargs args);? | 打印日志,級(jí)別為Warning? |
| log_error(unknown arg, varargs args);? | 打印日志,級(jí)別為Error? |
| delete(unknown arg);? | 刪除日志里面的指定字段? |
| create_var(string varname);? | 創(chuàng)建模塊變量? |
| create_var(string varname, integer lifetime);? | 創(chuàng)建模塊變量并指定生存周期? |
| create_var(string varname, datetime expiry);? | 創(chuàng)建模塊變量并指定生存周期? |
| delete_var(string varname);? | 刪除變量? |
| set_var(string varname, unknown value);? | 設(shè)置變量? |
| create_stat(string statname, string type);? | 創(chuàng)建計(jì)數(shù)器? |
| create_stat(string statname, string type, integer interval);? | 創(chuàng)建計(jì)數(shù)器? |
| create_stat(string statname, string type, integer interval, datetime time);? | 創(chuàng)建計(jì)數(shù)器? |
| create_stat(string statname, string type, integer interval, datetime time, integer lifetime);? | 創(chuàng)建計(jì)數(shù)器? |
| create_stat(string statname, string type, integer interval, datetime time, datetime expiry);? | 創(chuàng)建計(jì)數(shù)器? |
| add_stat(string statname, integer value);? | 添加計(jì)數(shù)器值? |
| add_stat(string statname, integer value, datetime time);? | 添加計(jì)數(shù)器值? |
| sleep(integer interval);? | 休眠指定時(shí)長(zhǎng)? |
| drop();? | 放棄處理當(dāng)前日志? |
| rename_field(string old, string new);? | 修改日志字段名稱? |
| reroute(string routename); | 動(dòng)態(tài)指定路由? |
| add_to_route(string routename);? | 復(fù)制一份日志動(dòng)態(tài)指定路由,不影響當(dāng)前日志流? |
?
總結(jié)
- 上一篇: imewlconverter 制作Rim
- 下一篇: win10打开远程控制服务器,如何在Wi