Skip to content

florismeester/gape-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GAPE for Docker containers

Simple recursive filesystem notifier that writes to local or remote syslog servers.
Compiled version can be found in the bin directory. It was compiled on Debian Jesse, but will
probably work on any other distribution. This is a version specific for Docker containers
and will not work on older versions due to changes in the Docker filesystem layout.
It should run on the Engine/Host and tt will try to detect your currently running containers
and figure out the union mountpoints. It was tested with the AUFS driver only, when time permits I will try others.
Tested agains Docker version 17.03.1-ce, build c6d412e
It currently logs any notifications that are known to work
on any operating system like:

  • Remove
  • Create
  • Write
  • Rename

Configuration:

  • syslogproto: => udp or tcp
  • sysloghost: Syslog server to send log messages to
  • syslogport: Syslog server port
  • localonly: Log only to local syslog (no network) => true or false
  • stdout: Also output to stdout => true or false
  • paths: An array of paths to watch, these should be directories within the containers

Usage:

Download or clone this repo and in the bin directory you can find an example
config file, adjust this and copy it to /etc or somewhere else in which case
you start it with

./gape-docker -config <path to your config>

If you take the default /etc directory simply do
./gape-docker
or with whatever init or systemd script you want to use. There are several tools for daemonizing, at a later stage I might build this in.

Cli output example:

    
 root@debian:~# ./gape-docker
 /root/dockerdata/aufs/mnt/65d283960f27d59243fc6f141e83b977e77219b4afb3dc1a28893fd04d173b38/etc
 /root/dockerdata/aufs/mnt/65d283960f27d59243fc6f141e83b977e77219b4afb3dc1a28893fd04d173b38/tmp
 /root/dockerdata/aufs/mnt/c55d2d99e6fe6f72902b0a1dc157b94f4fad06425464e8122e279e96de6be820/etc
 /root/dockerdata/aufs/mnt/c55d2d99e6fe6f72902b0a1dc157b94f4fad06425464e8122e279e96de6be820/tmp
 New container detected /root/dockerdata/aufs/mnt/58ed8175b58ecc7577744293788c7bf6a5813b6ce486920e4357405959925e73
 notify.Write: "/root/dockerdata/aufs/mnt/c55d2d99e6fe6f72902b0a1dc157b94f4fad06425464e8122e279e96de6be820/tmp/kafka-logs/replication-offset-checkpoint.tmp"
 New container detected /root/dockerdata/aufs/mnt/58ed8175b58ecc7577744293788c7bf6a5813b6ce486920e4357405959925e73
    
 

If you found any bugs or are using it to full hapiness drop me an email.

Based on the excellent library from https://github.com/rjeczalik/notify

About

Version of Gape filesystem change notifier targeted at Docker containers

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE
MIT
LICENSE.notify

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages