assaults docker containers and steals their logs
Go to file
dave b6155c3145 More refactoring 2016-09-04 20:40:28 -07:00
loginjector More refactoring 2016-09-04 20:40:28 -07:00
.gitignore Refactor and add docs 2016-09-04 19:35:27 -07:00
README.md More refactoring 2016-09-04 20:40:28 -07:00
requirements.txt Logging over udp works 2016-09-03 22:37:20 -07:00
setup.py More refactoring 2016-09-04 20:40:28 -07:00

README.md

loginjector

Retrieve logs from docker containers in real time.

Not all programs support sending logs to a remote server, so logs in containers tend to be lost by lazy sysadmins. This is a tool that attempts to fix this, by leveraging rsyslog.

By specifying a list of log paths in the container or auto detection from a built-in list, loginjector will generate a rsyslog config within the container and spawn rsyslogd. Simultaneously, loginjector listens on UDP ports to receive log entires sent by containers and writes them to disk on the host.

Assumptions

  • The rsyslogd binary is available in the container at /usr/sbin/rsyslogd (this is stander for ubuntu base images)
  • Docker is using it's default networking strategy

Installation

  • git clone ssh://git@gitlab.davepedu.com:222/dave/loginjector.git
  • cd loginjector
  • python3 setup.py install

Running

  • loginjector -s unix://var/run/docker.sock -o /var/log/container/

(The above arguments are actually the defaults and need not be specified)

Specifying custom paths

Add the -c <file> argument where <file> is a json or yml file structured like:

{
    "container_name": {
        "app_name": ["/log/path.log", "/another/log/path.log"],
        "another_app": [ ... ]
    },
    "another_container": {

    }
}

Container bake-in

If you're a docker image creator, you can add a file to your image containing log paths.

Add to your image a file at the path /.loghint containing:

{
    "app_name": ["/log/path.log", "/another/log/path.log"],
    "another_app": [ ... ]
}

TODO

  • Implement the custom path option displayed above
  • Implement the loghint file mentioned above