linkedin / Burrow

Kafka Consumer Lag Checking
Apache License 2.0
3.76k stars 801 forks source link

Burrow failing silently on starting #414

Open tygrash opened 6 years ago

tygrash commented 6 years ago

I'm trying to setup burrow and I'v followed each step mentioned in the documentation, but when I try to launch the service, it fails silently after line Reading configuration from config/.

When I checked the directory structure, I found that every time a new log file gets created and content inside each is

panic: Failed to compile TemplateOpen [recovered]
    panic: Failed to compile TemplateOpen [recovered]
    panic: Failed to compile TemplateOpen

goroutine 1 [running]:
main.handleExit()
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/main.go:64 +0x259
panic(0x14f6280, 0xc4201cef90)
    /usr/local/go/src/runtime/panic.go:502 +0x229
github.com/linkedin/Burrow/vendor/go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc4201dc000, 0x0, 0x0, 0x0)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/vendor/go.uber.org/zap/zapcore/entry.go:229 +0x4f4
github.com/linkedin/Burrow/vendor/go.uber.org/zap.(*Logger).Panic(0xc4201b8600, 0x15efdea, 0x1e, 0x0, 0x0, 0x0)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/vendor/go.uber.org/zap/logger.go:225 +0x7f
github.com/linkedin/Burrow/core.configureCoordinators.func1(0xc4201b8000)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/core/burrow.go:96 +0x7d
panic(0x14f6280, 0xc4201cef80)
    /usr/local/go/src/runtime/panic.go:502 +0x229
github.com/linkedin/Burrow/vendor/go.uber.org/zap/zapcore.(*CheckedEntry).Write(0xc4201dc000, 0xc4201e6580, 0x2, 0x2)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/vendor/go.uber.org/zap/zapcore/entry.go:229 +0x4f4
github.com/linkedin/Burrow/vendor/go.uber.org/zap.(*Logger).Panic(0xc4201b88a0, 0x15efdea, 0x1e, 0xc4201e6580, 0x2, 0x2)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/vendor/go.uber.org/zap/logger.go:225 +0x7f
github.com/linkedin/Burrow/core/internal/notifier.(*Coordinator).Configure(0xc4201e6380)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/core/internal/notifier/coordinator.go:219 +0xf40
github.com/linkedin/Burrow/core.configureCoordinators(0xc4201b8000, 0x164ca80, 0xc4201da0c0, 0x164ca40, 0xc4201be4e0, 0x164c840, 0xc4201bc3c0, 0x164c900, 0xc4201bc420, 0x164c940, ...)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/core/burrow.go:103 +0x9c
github.com/linkedin/Burrow/core.Start(0xc4201b8000, 0xc4200b29c0, 0x0)
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/core/burrow.go:148 +0x36f
main.main()
    /Users/ashwin.sinha/OSP/Burrow/src/github.com/linkedin/Burrow/main.go:115 +0x4d9

Need help with the issue, as I'm not fluent in Golang.

ratishr commented 6 years ago

@tygrash

Can you attach your config file here ?

DivsDibs commented 6 years ago

I am facing the exact same issue. To test start the app, I used the default config/burrow.toml. Any advice would be helpful. $go version go version go1.10.1 linux/amd64

Followed the steps with latest README.

DivsDibs commented 6 years ago

I fixed the above issue by following https://dzone.com/articles/kafka-monitoring-with-burrow. However when I use curl http://localhost:8080/v3/kafka OR curl http://ip:8080/v3/kafka/mykafka, I don't get any response. Any advice is much appreciated!

tygrash commented 6 years ago

You should try curl http://localhost:8080/v3/kafka/{myclustername} instead. Mention the name you gave in configs for your kafka cluster

tygrash commented 6 years ago

If you are not getting any response, try opening the API in browser once. Send your config file and stacktrace of your logs if it doesn't work.

DivsDibs commented 6 years ago

mykafka is my clustername as mentioned above. PFB.

[general]
pidfile="burrow.pid"
stdout-logfile="burrow.out"
access-control-allow-origin="*"

[logging]
filename="logs/burrow.log"
level="info"
maxsize=100
maxbackups=30
maxage=10
use-localtime=false
use-compression=true

[zookeeper]
servers=[ "zk1-dns-address:2181", "zk2-dns-address:2181", "zk3-dns-address:2181" ]
timeout=30
root-path="/burrow"

[client-profile.test]
client-id="burrow-test"
kafka-version="0.10.1"

[cluster.mykafka]
class-name="kafka"
servers=[ "broker1-dns-address:9092", "broker2-dns-address:9092", "broker3-dns-address:9092" ]
client-profile="test"
topic-refresh=120
offset-refresh=30

[consumer.myconsumer]
class-name="kafka"
cluster="mykafka"
servers=[ "broker1-dns-address:9092", "broker2-dns-address:9092", "broker3-dns-address:9092" ]
client-profile="test"
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-whitelist=""

[httpserver.mylistener]
address=":8080"

[storage.mystorage]
class-name="inmemory"
workers=20
intervals=15
expire-group=604800
min-distance=1
DivsDibs commented 6 years ago

The command curl http://burrow-node:8000/v3/kafka/mykafka does not return any response. My config is

[general]
pidfile="burrow.pid"
stdout-logfile="/root/GoDemo/logs/burrow.out"
access-control-allow-origin="*"

[logging]
filename="/root/GoDemo/logs/burrow.log"
level="debug"
maxsize=100
maxbackups=30
maxage=10
use-localtime=false
use-compression=true

[zookeeper]
servers=[ "node-1:2181", "node-2:2181", "node-3:2181" ]
timeout=1
root-path="/burrow"

[client-profile.test]
client-id="burrow-test"
kafka-version="0.10.1"

[cluster.mykafka]
class-name="kafka"
servers=[ "node-1:9092", "node-2:9092", "node-3:9092" ]
client-profile="test"
topic-refresh=2
offset-refresh=1

[consumer.myconsumer]
class-name="kafka"
cluster="mykafka"
servers=[ "node-1:9092", "node-2:9092", "node-3:9092" ]
client-profile="test"
group-blacklist="^(console-consumer-|python-kafka-consumer-|quick-).*$"
group-whitelist=""

[httpserver.default]
address=":8000"

[storage.default]
class-name="inmemory"
workers=20
intervals=15
expire-group=604800
min-distance=1

[notifier.default]
class-name="http"
url-open="http://someservice.example.com:1467/v1/event"
url-close="http://someservice.example.com:1467/v1/event"
interval=60
timeout=5
keepalive=30
extras={ api_key="REDACTED", app="burrow", tier="STG", fabric="mydc" }
template-open="/root/GoDemo/src/github.com/linkedin/Burrow/config/default-http-post.tmpl"
template-close="/root/GoDemo/src/github.com/linkedin/Burrow/config/default-http-delete.tmpl"
method-close="DELETE"
send-close=true
threshold=1

Using the debug threshold, I can see it can connect to the destination cluster... but when I issue the command curl http://burrow-node:8000/v3/kafka/mykafka it doesn't respond... Same with browser as well. The Security Groups on the port 8000 are open for TCP . When I create a console consumer on the cluster it doesn't really show up on the logs when tail-ed...

What am I missing please??

DivsDibs commented 6 years ago

@toddpalino Can you please shed some light on this? I tried downloading the v1.1.0 as well, but no change in result.

DivsDibs commented 6 years ago

I was using CTRL+Z to run the job in the background, which was somehow stalling the httpserver. The server was up as seen by using netstat -nlp but it never responded. The same can be achieved using nohup ... &.

Burrow setup worked.

kunjaiswal commented 4 years ago

hi, panic: Failed to compile TemplateOpen [recovered] panic: Failed to compile TemplateOpen [recovered] panic: Failed to compile TemplateOpen problem solved ?

neintk97 commented 3 years ago

I have a similar problem, do you have any advice? {"level":"panic","ts":1605888928.1730287,"msg":"Please change configurations to allowlist and denylist","type":"module","coordinator":"consumer","class":"kafka","name":"monet"} ││ {"level":"panic","ts":1605888928.1730556,"msg":"Please change configurations to allowlist and denylist"} ││ panic: Please change configurations to allowlist and denylist [recovered] ││ panic: Please change configurations to allowlist and denylist [recovered] ││ panic: Please change configurations to allowlist and denylist

Teja995 commented 3 years ago

I have a similar problem, do you have any advice? {"level":"panic","ts":1605888928.1730287,"msg":"Please change configurations to allowlist and denylist","type":"module","coordinator":"consumer","class":"kafka","name":"monet"} ││ {"level":"panic","ts":1605888928.1730556,"msg":"Please change configurations to allowlist and denylist"} ││ panic: Please change configurations to allowlist and denylist [recovered] ││ panic: Please change configurations to allowlist and denylist [recovered] ││ panic: Please change configurations to allowlist and denylist

Change blacklist to denylist and whitelist to allowlist in the configuration file. It will work.

singhankur commented 3 years ago

hi, panic: Failed to compile TemplateOpen [recovered] panic: Failed to compile TemplateOpen [recovered] panic: Failed to compile TemplateOpen problem solved ?

It can be solved via adding correct path of template-open and template-close in burrow.toml


[notifier.default]
class-name="http"
url-open="http://someservice.example.com:1467/v1/event"
url-close="http://someservice.example.com:1467/v1/event"
interval=60
timeout=5
keepalive=30
extras={ api_key="REDACTED", app="burrow", tier="STG", fabric="mydc" }
template-open="/root/Burrow/config/default-http-post.tmpl"
template-close="/root/Burrow/config/default-http-delete.tmpl"
method-close="DELETE"
send-close=false
threshold=1