我已在服务器上成功安装 Loki,在数据中心的多台主机上安装 Promtail。每个主机运行不同数量的 tomcat,例如 tomcat10、tomcat11...tomcat20。
所以在 promtail 上,我的工作得到一个带有主机名的标签,__path__
类似于work/java/tomcat*/logs*
.
现在我在 Postgre 上添加与这些 tomcat 相关的不同应用程序名称,以及主机及其名称。
但我正在努力使用 Grafana 上的 LogQL 查询来访问这些变量。例如,我在 Grafana 中定义了以下名为varHost的变量
select server __value, server __text from loki_promtail.servers order by id ASC
假设我想访问 Host Saturn上的每个日志。它很容易使用{job="saturn"}
,但我想使用 ${varHost} 代替 Saturn(这是主机的名称),因此同一个面板可以显示多个主机信息。
同样,假设我正在尝试访问/work/java/tomcat10/logs/catalina.out
. 我希望能够在 LogQL 查询中连接 varApp,因此,
{filename="/work/java/tomcat10/logs/catalina.out"}
我不想要类似的东西{filename="/work/java/tomcat${varApp}/logs/catalina.out"}
,我正在使用正则表达式
但在 Grafana 中的 ${varApp} 中{filename=~"/work/java/tomcat${varApp}/logs/catalina.out"}
选择所有内容时失败。
我怎么能做到这一点?
提前谢谢你!