Alertmanager发送的邮件中external-url修改机器名为IP地址
在使用Alertmanager发送报警邮件的时候,我们通常会采用模板。比如我的一个模板:
1 | {{ define "email.czj.html" }} |
如果注意到会发现有:GeneratorURL和ExternalURL。这两者默认使用的是机器名称也就是hostname。这样我们就很难在邮件中获取到实际的promtheus和Alertmanager地址。查了很多资料,最后发现在prometheus和Alertmanager启动的时候我们可以设置这两个值的。prometheus的启动命令是:
1 | ./prometheus.exe --web.external-url="http://127.0.0.1:9090/prom" \ |
Alertmanager启动命令是:
1 | ./Alertmanager.exe --config.file=config163.yml \ |
这里的web.external-url也就是GeneratorURL和ExternalURL两者在email中的指,在设置web.external-url的同时我们需要记得设置web.router-prefix的值,应为web.router-prefix的默认值是web.external-url,如果不同时指定web.router-prefix那么就将会出现特别神奇的效果,你需要重复输入两个地址才能访问到相应的prometheus和Alertmanager,这个参数是指的路径。所以一定要设置web.router-prefix,你也可以设置成--web.route-prefix=""这样来将子路径就设置为根路径。