我正在尝试设置一个自我管理的 docker appsearch 实例,连同 kibana 和 elasticsearch,由 uvicorn python 应用程序查询,由 nginx 网络服务器代理
我当前的问题是appsearch 日志在appsearch 日志中显示python 默认用户代理和IP(即python-requests/2.22.0 和LAN IP)。
我想将包含正确 IP 和远程客户端用户代理的 nginx 自定义标头转发到在 kibana 中可以很好地查询的 appsearch 日志。
我注意到output.elasticsearch.headers
可以在环境或 filebeat.yml 中设置自定义标头。
你们对此有什么想法吗?
谢谢你。
嗯,我终于做到了。
由于真实的客户端 IP 和用户代理不是静态的,因此使用 yml 或环境变量也不是必需的。
我首先将 nginx.conf 代理更改为:
然后在每个 uvicorn FastAPI 方法中,我添加了第一个
request
参数:search_endpoint 调用我的搜索类,该类又使用 appsearch 的 python 客户端:
然后在客户端我更新标题:
然后应用程序日志开始记录自定义 X-headers =)