Running Snowplow Mini with collector on port 80

Hi guys,

We’re testing snowplow-mini, but we need to run the collector on port 80 because we use SSL termination and that happens before it reaches the snowplow-mini server. We can’t change the origin port - it has to be 80.

We updated the “snowplow-stream-collector.hocon” file to use the 80 port, and even though the start script (snowplow_stream_collector_0.6.0) appears to have run correctly, it doesn’t start the collector on the correct port.

We also changed the user from “ubuntu” to “root”, with no luck. Running the command manually works.

Any ideas what we can do to solve this?

Cheers!
Bernardo

Hey Bernardo,

I imagine the issue is that the nginx service is interfering with the collector service and as such is not starting properly. You will need to manually update the nginx config like so:

$guest sudo nano /etc/nginx/conf.d/snowplow-mini.conf
# Update listen 80 -> listen {{ some other port not yet in use }}

The collector should then start properly according to your changed config with the UI being served on a different port. To see whether or not the collector is being started properly you can:

$guest sudo service snowplow_stream_collector_0.6.0 stop
$guest sudo /home/ubuntu/snowplow/bin/snowplow-stream-collector-0.6.0 --config /home/ubuntu/snowplow/configs/snowplow-stream-collector.hocon

As it is writing to unix pipes in the init script it can appear to have started properly when it has in fact not, it simply hangs on the background process if it fails, one of the reasons we are planning on moving to NSQ. It also imperative that all of these services are started very close to each other due to this. So if running it manually works a box restart should then get all the other services talking to each other again.