Ant*_*sev 1 bash ps python json zabbix
我尝试通过内存获取前 5 个进程的 JSON。
我想将此 JSON 发送到 Zabbix 并按内存绘制前 5 个进程。
我通过命令通过内存获得前 5 个进程:
ps axho comm --sort -rss | head -5
node
mongod
kubelet
dockerd
systemd-journal
Run Code Online (Sandbox Code Playgroud)
如何使用密钥 {#PROCNAME} 将 bash 输出转换为 JSON 以获得此结构:
{
"data": [
{
"{#PROCNAME}": "node"
},
{
"{#PROCNAME}": "mongod"
},
{
"{#PROCNAME}": "kubelet"
},
{
"{#PROCNAME}": "dockerd"
},
{
"{#PROCNAME}": "systemd-journal"
}
]
}
Run Code Online (Sandbox Code Playgroud)
https://www.zabbix.com/documentation/current/manual/config/macros/lld_macros
低级发现 (LLD) 函数中使用了一种宏:
{#MACRO}
Run Code Online (Sandbox Code Playgroud)
如果您jq
具有该inputs
功能,并且假设{#PROCNAME}
只是一个字符串,则可以使用以下内容:
ps axho comm --sort -rss | head -5 | jq -Rn '{data: [inputs|{"#PROCNAME":.}]}'
Run Code Online (Sandbox Code Playgroud)
这些inputs
函数可以jq
读取所有输入字符串。剩下的就是装饰以获得想要的格式。
该选项-R
获取原始字符串作为输入。该选项-n
通过jq
输入提供null
输入。这样inputs
可以一次获取所有字符串。
归档时间: |
|
查看次数: |
1038 次 |
最近记录: |