3

In the observability system we're building from scratch, we'd like to have a single scollector to collect data from all the web servers and send it to Bosun, instead of having an instance of scollector on each server.

Do you know if there's a way to achieve that?

SirAnderson
  • 101
  • 2
  • 14

1 Answers1

2

Scollector is implemented as an agent, similar to OpenTSDB's tcollector. It's lightweight and doesn't cause too much overhead on the hosts.

If you want all the data that scollector is capable of collecting forwarded to Bosun, there needs to be a single agent per host to monitor. Scollector makes use of procfs and similar which is only accessible on the hosts directly.

You can additionally create your own additional collectors that scollector will invoke for you. With that, depending on your use case, you might be able to collect data from remote hosts, but scollector is really designed to run as an agent on every host and collect the data locally.

Björn Marschollek
  • 9,899
  • 9
  • 40
  • 66
  • The problem with external collectors is that we'll basically have to rebuild the scollector logic only to let them run on external sources, while scollector does it "for free". – SirAnderson Apr 21 '20 at 15:35
  • External collectors let you do what you asked for, but as you found, scollector isn't designed to be used in this way. Installing agents on every node of a cluster is common practice. For a better recommendation, you'd need to add details on the actual problem you're trying to solve. – Björn Marschollek Apr 21 '20 at 21:27