I am attempting to setup a container on Bluemix that accepts UDP traffic and forwards it using a TCP connection to Logentries. When running the container locally, I used NetCat to simulate UDP traffic and saw it successfully displayed at the destination of the TCP connection.
However, when I attempt to start a container based off the same image with Bluemix containers service, the container remains stuck in a 'Networking' state and no data is transmitted to the destination. The logs only print a warning about the version listed in the syslog-ng.conf file (same warning when ran locally), and inspection of the container by command cf ic inspect <container-id>
returns the following portion about the Networking
state:
"Path": "date",
"ResolvConfPath": "/etc/resolv.conf",
"State": {
"ExitCode": 0,
"FinishedAt": "0001-01-01T00:00:00Z",
"Ghost": "",
"Pid": 1,
"Running": true,
"StartedAt": "2015-10-14T19:45:43.000000000Z",
"Status": "Networking"
},
One thing to note is that I had to change the nameserver to 8.8.8.8
(Google's DNS) for necessary domain name resolution, due to the following error:
Error resolving hostname; host='data.logentries.com'
Error initializing message pipeline;
Error resolving hostname; host='data.logentries.com'
Error initializing message pipeline;
You can find the source code of the Docker image I originally adopted at https://github.com/oinopion/syslog-ng-logentries
.
So my questions are:
Docker containers on Bluemix doesn't support incoming UDP traffic routing yet. This feature is already planned for future updates as far as I know. This is the reason your container works fine locally, but remotely doesn't receive traffic.