首页 > 解决方案 > alertmanager amtool 在查询静默时导致分段违规

问题描述

amtool第一次使用 prometheus alertmanager cli 工具,它正在崩溃。我正在关注我在这里找到的文档:https ://github.com/prometheus/alertmanager/blob/master/README.md

所以我像这样拉下 docker 容器:

red@Reds-MBP ~ % docker run --name alertmanager -d -p \
127.0.0.1:9093:9093 quay.io/prometheus/alertmanager

然后我尝试像这样查询我的沉默:

red@Reds-MBP ~ % docker exec -it alertmanager amtool \ 
> --alertmanager.url https://alertmanager-xxxx.example.net \
> silence query alertname=DeadMansSwitch

但是产生的输出是这样的:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x8da822]

goroutine 1 [running]:
github.com/prometheus/alertmanager/cli/format.labelsMatcher(...)
    /app/cli/format/format.go:56
github.com/prometheus/alertmanager/cli/format.simpleFormatMatcher(0x0, 0xc0005586a6, 0xc00006bd90, 0xc00006bda0, 0xc00011d380, 0x28)
    /app/cli/format/format_simple.go:98 +0x102
github.com/prometheus/alertmanager/cli/format.simpleFormatMatchers(0xc0005a8a40, 0x3, 0x4, 0x1, 0x1)
    /app/cli/format/format_simple.go:92 +0x98
github.com/prometheus/alertmanager/cli/format.(*SimpleFormatter).FormatSilences(0xc000319130, 0xc00050f360, 0x1, 0x1, 0xc000326408, 0x134bc01)
    /app/cli/format/format_simple.go:48 +0x1de
github.com/prometheus/alertmanager/cli.(*silenceQueryCmd).query(0xc000406f60, 0xeb7de8, 0xc00031c4e0, 0xc0005d61b0, 0xc00031c4e0, 0xc0005a6c90)
    /app/cli/silence_query.go:143 +0x7fa
github.com/prometheus/alertmanager/cli.execWithTimeout.func1(0xc0005d61b0, 0x0, 0x0)
    /app/cli/utils.go:154 +0xa4
gopkg.in/alecthomas/kingpin%2ev2.(*actionMixin).applyActions(0xc0005e2618, 0xc0005d61b0, 0x0, 0x0)
    /go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/actions.go:28 +0x6d
gopkg.in/alecthomas/kingpin%2ev2.(*Application).applyActions(0xc0005d20f0, 0xc0005d61b0, 0x0, 0x0)
    /go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:557 +0xdf
gopkg.in/alecthomas/kingpin%2ev2.(*Application).execute(0xc0005d20f0, 0xc0005d61b0, 0xc0000a65e0, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0)
    /go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:390 +0x95
gopkg.in/alecthomas/kingpin%2ev2.(*Application).Parse(0xc0005d20f0, 0xc0000301f0, 0x5, 0x5, 0x5, 0x0, 0x0, 0x10)
    /go/pkg/mod/gopkg.in/alecthomas/kingpin.v2@v2.2.6/app.go:222 +0x228
github.com/prometheus/alertmanager/cli.Execute()
    /app/cli/root.go:122 +0x925
main.main()
    /app/cmd/amtool/main.go:19 +0x25

:(

标签: prometheus-alertmanager

解决方案


推荐阅读