我们的splunk实现有SERVERNAME作为预设字段,并且有不同位置的服务器,但没有位置字段。如何按位置统计错误? 我设想了这样的事情,但找不到实现的方法:
index=some_index "some search criteria"
| eval PODNAME="ONTARIO" if SERVERNAME IN ({list of servernames})
| eval PODNAME="GEORGIA" if SERVERNAME IN ({list of servernames})
| timechart span=30min count by PODNAME
有什么想法吗?
你的想法是对的。以下是在 SPL 中执行此操作的方法。
index=some_index "some search criteria"
| eval PODNAME=case(in(SERVERNAME, {list of servernames}), "ONTARIO",
in(SERVERNAME, {list of servernames}), "GEORGIA",
1==1, "unknown" )
| timechart span=30min count by PODNAME
不过,有一个更好的方法,因为上面的方法在许多位置上不能很好地扩展,并且如果代码在许多地方使用,可能会变得难以维护。使用查找表。
创建一个包含 SERVERNAME 和 PODNAME 列的 CSV 文件,然后使用查找将服务器名称映射到位置。
index=some_index "some search criteria"
| lookup serverlocation.csv SERVERNAME OUTPUT PODNAME
| timechart span=30min count by PODNAME