Skip to content

diablowu/log-pilot

This branch is 11 commits ahead of, 41 commits behind AliyunContainerService/log-pilot:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7c31314 · Sep 20, 2018
Apr 20, 2018
Jan 29, 2018
Mar 23, 2018
Sep 20, 2018
Mar 23, 2018
Sep 20, 2018
Apr 19, 2018
Feb 8, 2017
Dec 26, 2017
Jan 29, 2018
Mar 14, 2017
Apr 20, 2018
Apr 19, 2018
Sep 20, 2018
Sep 20, 2018
Apr 20, 2018

Repository files navigation

log-pilot

CircleCI

log-pilot is an awesome docker log tool. With log-pilot you can collect logs from docker hosts and send them to your centralized log system such as elasticsearch, graylog2, awsog and etc. log-pilot can collect not only docker stdout but also log file that inside docker containers.

Try it

Prerequisites:

  • docker-compose >= 1.6
  • Docker Engine >= 1.10
git clone [email protected]:AliyunContainerService/log-pilot.git
cd log-pilot/quickstart
./run

Then access kibana under the tips. You will find that tomcat's has been collected and sended to kibana.

Create index: kibana

Query the logs: kibana

Quickstart

Run pilot

docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /:/host \
    registry.cn-hangzhou.aliyuncs.com/acs-sample/log-pilot:latest

Run applications whose logs need to be collected

Open a new terminal, run the application. With tomcat for example:

docker run -it --rm  -p 10080:8080 \
    -v /usr/local/tomcat/logs \
    --label aliyun.logs.catalina=stdout \
    --label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \
    tomcat

Now watch the output of log-pilot. You will find that log-pilot get all tomcat's startup logs. If you access tomcat with your broswer, access logs in /usr/local/tomcat/logs/localhost_access_log.\*.txt will also be displayed in log-pilot's output.

More Info: Fluentd Plugin and Filebeat Plugin

Feature

  • Support both fluentd plugin and filebeat plugin. You don't need to create new fluentd or filebeat process for every docker container.
  • Support both stdout and log files. Either docker log driver or logspout can only collect stdout.
  • Declarative configuration. You need do nothing but declare the logs you want to collect.
  • Support many log management: elastichsearch, graylog2, awslogs and more.
  • Tags. You could add tags on the logs collected, and later filter by tags in log management.

Build log-pilot

Prerequisites:

  • Go >= 1.6
go get github.com/AliyunContainerService/log-pilot
cd $GOPATH/github.com/AliyunContainerService/log-pilot/docker-images
./build.sh # This will create a new docker image named pilot:latest

Contribute

You are welcome to make new issues and pull reuqests.

About

Collect logs in docker containers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 62.8%
  • Shell 16.8%
  • Ruby 13.9%
  • Dockerfile 3.5%
  • Smarty 3.0%