我成功地在服务器上安装了Loki,在我的数据中心的多台主机上安装了Promtail。每个主机运行不同数量的tomcats,如tomcat10、tomcat11...tomcat20。
因此,我的工作会得到一个带有主机名的标签,而__path__类似于work/java/tomcat*/logs*。
现在,我在Postgre上添加了与这些猫相关的不同名称,以及主机及其名称。
但是,我很难用Grafana上的LogQL查询来访问这些变量。例如,我在Grafana中定义了以下变量,名为varHost
select server __value, server __text from loki_promtail.servers order by id ASC
假设我想访问土星主机上的每一个日志。使用{job="saturn"}很容易,但是我想使用${varHost}来代替土星(它是主机的名称),这样同一个面板可以显示多个主机信息。
同样,让我们假设我正在尝试访问/work/java/tomcat10/logs/catalina.out。我希望能够将varApp连接到LogQL查询中,因此,与{filename="/work/java/tomcat10/logs/catalina.out"}不同,我希望使用regex {filename=~"/work/java/tomcat${varApp}/logs/catalina.out"}来实现类似{filename="/work/java/tomcat${varApp}/logs/catalina.out"}的操作,但在Grafana中的${varApp}中选择all时失败。
我怎样才能做到这一点?
谢谢你提前了!
发布于 2021-11-09 00:25:17
使用以下LogQL选择文件名:
{filename=~"/work/java/tomcat(${varApp:pipe})/logs/catalina.out"}例如,“:管道”修饰符将将"$varApp“更改为10\11\20。
更多信息在Grafana文档这里中。
https://stackoverflow.com/questions/69886700
复制相似问题