syslog-ng return 映射不存在时的原始值
syslog-ng return original value when mapping does not exists
我正在使用 syslog-ng 收集 json 消息并将警报发送到 slack
json 消息中有一个参数,其中包含我从中接收 json 消息的路由器的 IP 地址,我想将 IP 地址转换为路由器主机名
我正在使用两个解析器 1) 解析 json 2) 用路由器主机名替换 IP 地址:
parser p_json {
json-parser(prefix(".json."));
};
parser p_acd_router {
add-contextual-data(selector("${.json.router_ip}"), database("host_map.csv"), prefix(".meta_router."));
};
到目前为止一切正常。
你好,
我在收到来自路由器的日志消息时遇到问题,但在 csv 文件中没有 IP_to_Hostname 映射。在这种情况下,我只是在系统日志消息中得到空白 space 。如果映射不存在,可以选择 return 默认值,但我更愿意 return 原始值(IP 地址)
如果存在映射,则将 IP 地址转换为主机名 >> 有效
如果映射不存在,return原始IP地址>>不知道如何设置
这甚至受支持吗?
谢谢
您可以为add-contextual-data()
设置default-selector("UNKNOWN")
选项,并在您的CSV文件中添加ID为UNKNOWN
的记录,并在设置[=13=时使用以下值]: ${.json.router_ip}
.
TLDR:CSV 文件也支持模板。
注意:如果您的 IP 是可反向解析的,您可以只使用 $(dns-resolve-ip)
模板函数而不是维护完整的 CSV 数据库:
我正在使用 syslog-ng 收集 json 消息并将警报发送到 slack
json 消息中有一个参数,其中包含我从中接收 json 消息的路由器的 IP 地址,我想将 IP 地址转换为路由器主机名
我正在使用两个解析器 1) 解析 json 2) 用路由器主机名替换 IP 地址:
parser p_json {
json-parser(prefix(".json."));
};
parser p_acd_router {
add-contextual-data(selector("${.json.router_ip}"), database("host_map.csv"), prefix(".meta_router."));
};
到目前为止一切正常。 你好, 我在收到来自路由器的日志消息时遇到问题,但在 csv 文件中没有 IP_to_Hostname 映射。在这种情况下,我只是在系统日志消息中得到空白 space 。如果映射不存在,可以选择 return 默认值,但我更愿意 return 原始值(IP 地址)
如果存在映射,则将 IP 地址转换为主机名 >> 有效 如果映射不存在,return原始IP地址>>不知道如何设置
这甚至受支持吗?
谢谢
您可以为add-contextual-data()
设置default-selector("UNKNOWN")
选项,并在您的CSV文件中添加ID为UNKNOWN
的记录,并在设置[=13=时使用以下值]: ${.json.router_ip}
.
TLDR:CSV 文件也支持模板。
注意:如果您的 IP 是可反向解析的,您可以只使用 $(dns-resolve-ip)
模板函数而不是维护完整的 CSV 数据库: