我正在编写一个脚本,用作领事的观察者配置中的处理程序。
可执行处理程序从标准输入读取 JSON 调用信息。[...] 写入标准输出的任何内容都会被记录下来。
基于此,我配置了一个脚本处理程序来监视 ak/v 事件:
"watches": [
{
"type": "key",
"key": "some_key",
"handler_type": "script",
"handler": "/opt/consul/script/key_handler.sh"
}
]
并相应地创建了脚本
#!/bin/bash
read event_payload
echo "The value of the key is $(echo $event_payload | jq -r .Value | base64 -d)"
我更改了some_key
consul k/v 存储中的值,并希望在日志中的某处看到 stdout 输出。Consul 被配置为使用信息级别登录文件和系统日志。这是配置文件的相关部分:
{
"log_level": "INFO",
"enable_syslog": true,
"log_file": "/var/log/consul/",
"log_rotate_duration": "24h",
"log_rotate_max_files": 7
}
我查看了系统日志(即journalct -u consul -f
)和领事当前日志文件(即tail -f $(ls -trd /var/log/consul/* | tail -1)
。两个日志设施都正常并显示当前的领事活动。但我找不到任何脚本输出的痕迹。
如果我修改脚本并将输出重定向到任意文件,我可以找到我期望的输出,因此脚本肯定可以完成它的工作。
我是否错过了配置中阻止这些日志显示的任何内容?