当前位置: 首页 > 软件库 > 云计算 > 云原生 >

log-pilot

Collect logs for docker containers
授权协议 Apache-2.0 License
开发语言 Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 白子昂
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

log-pilot

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
# download log-pilot project
git clone git@github.com:AliyunContainerService/log-pilot.git
# build log-pilot image
cd log-pilot/ && ./build-image.sh
# quick start
cd quickstart/ && ./run

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

Create index:

Query the logs:

Quickstart

Run pilot

docker run --rm -it \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v /etc/localtime:/etc/localtime \
    -v /:/host:ro \
    --cap-add SYS_ADMIN \
    registry.cn-hangzhou.aliyuncs.com/acs/log-pilot:0.9.5-filebeat

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
# This will create a new docker image named log-pilot:latest
./build-image.sh

Contribute

You are welcome to make new issues and pull reuqests.

  • 简单介绍 Log-Pilot是阿里开源的一款容器日志收集项目,他的基本流程是动态监听容器的事件变化,然后依据容器的标签来进行解析,然后生成filebeat/fluentd的配置文件交由filebeat/fluentd采集插件来进行日志采集,来达到日志收集随容器的动态调度而自动伸缩的效果。 源码简析 Pilot结构体 主要监听 docker 容器事件并获取容器日志挂载目录、标签、环境变量等信息,动态

  • 通过log-pilot+KAFKA+Logstash+ES收集K8S中Pod日志 K8S部署应用后收集日志不太好搞,特别是单个服务多个实例的情况。 如果映射到外部地址,多个实例就会写到同一个文件中,无法区分是哪个应用实例的日志。 阿里开源的日志采集工具log-pilot,自动感知pod的日志输出,记录一下实践过程。 PS:log-pilot本身是支持直接写日志到ES的,但我测试没有成功,只好走个弯

  • k8s中pod的日志收集有2种常见的解决方案; 方案一:使用fluentd作为daemonset收集stdout和/var/lib/containers目录下的所有日志(因为对fluentd不太熟悉,所以感觉麻烦); 方案二:使用filebeat作为sidecar方式(这种方式过于繁琐,需要在每个pod中添加这个容器) 无意间发现阿里云开源的log-pilot收集k8s的日志真的超级方便,配置也简

  • log-pilot 有两种工具对日志进行收集 fluentd filebeat 这里使用的是filebeat 对日志文件进行采集。 为了更好的对java 的日志进行采集 需要进行多行的日志收集 java日志 一般以"^[2" 进行段落区分 操作如下: 拉取代码 修改模板 git clone https://github.com/AliyunContainerService/log-pilot.gi

  • log-pilot(logpilot)搜集k8s应用容器日志—详细文档 相关配套软件包网盘下载链接如下: 网盘地址: https://url28.ctfile.com/f/37115828-599524530-7be0b5?p=4907 访问密码:4907 1.准备k8s集群(192.168.60.128,192.168.60.129,192.168.60.130) [root@k8s-maste

  • 集群方式安装 内部服务 3个elasticsearch 1个logstash 1个kibana N个log-pilot(每个需要采集日志的swarm节点一个) 安装log-pilot 官网参考 https://github.com/AliyunContainerService/log-pilot 启动容器 目前swarm不提供privileged权限,无法使用swarm集群创建 需要每个宿主机单独

  • 将filebeat.tpl从启动的pod中拷贝到本地 $ kubectl cp kube-system/log-pilot-hvf6h:/pilot/filebeat.tpl ./filebeat.tpl 修改filebeat.tpl文件,增加multiline参数 $ vi filebeat.tpl {{range .configList}} ...... multiline.pat

  • 日志系统要求: 1.因开发项目要求,一个pod 内有多个日志路径,需要收集 2.同时需要收集pod 容器的标准输出日志 环境: 本次环境es、kibana 均部署在k8s 集群外,在物理机部署,只需要log-pilot 指定es 地址 具体步骤: 创建 daemonset log-pilot kubectl get daemonsets.apps log-pilot -o yaml apiVers

  • 下载链接 wget https://github.com/g114486803g/k8s-/raw/master/ELK/Log-Pilot.yaml cat log-Pilot.yaml apiVersion: apps/v1 kind: DaemonSet metadata: name: log-pilot labels: app: log-pilot # 设置期望部署的

  • 本文假设您已经安装并配置好Elasticsearch、Kibana、Docker,且安全组都已OK。 参考文档: 阿里云官网文档:https://help.aliyun.com/document_detail/50441.html 阿里云开源log-pilot GitHub地址:https://github.com/AliyunContainerService/log-pilot/blob/mas

  • 使用log-pilot采集自建Kubernetes集群服务日志,供业务排查问题。 简介 Log-pilot是一个智能容器日志采集工具,它不仅能够高效便捷地将容器日志采集输出到多种存储日志后端,同时还能够动态地发现和采集容器内部的日志文件。 针对前面提出的日志采集难题,Log-pilot通过声明式配置实现强大的容器事件管理,可同时获取容器标准输出和内部文件日志,解决了动态伸缩问题,此外,Log-pi

  • 1、log-pilot配置环境变量 需要修改log-pilot环境变量的两个参数 LOGGING_OUTPUT的值配置为kafka 若将日志采集到kafka,则需要新增KAFKA_BROKERS环境变量,值为kafka broker的值,以逗号分割 - env: - name: LOGGING_OUTPUT value: kafka

  • 该方案是社区方案EFK的升级版,它支持两种搜集形式,对应容器标准输出日志和容器内的日志文件;个人使用了一把,在原有EFK经验的基础上非常简单、方便,值得推荐;更多的关于log-pilot的介绍详见链接: github 项目地址: https://github.com/AliyunContainerService/log-pilot 阿里云介绍文档: https://help.aliyun.com/

  • 利用 log-pilot + elasticsearch + kibana 搭建 kubernetes 日志解决方案 参考文章: (1)利用 log-pilot + elasticsearch + kibana 搭建 kubernetes 日志解决方案 (2)https://www.cnblogs.com/weifeng1463/p/10274021.html (3)https://www.jav

 相关资料
  • Log

    xweb默认使用github.com/go-xweb/log来作为log组件,默认输出到屏幕上,如果希望输出到文件,可以自定义log,比如: f, err := os.Create("server.log") if err != nil { println(err.Error()) return } logger := log.New(f, "",

  • log

    fis. log fis 日志输出模块。 Source: log.js, line 2 Members (static) alert 配置是否需要输出命令行警告音。 Source: log.js, line 70 (static) L_ALL [级别] 全部输出 Source: log.js, line 10 (static) L_DEBUG [级别] 输出 debug 信息 Source: lo

  • log

    描述 (Description) 此函数返回EXPR的自然对数,如果省略则返回$ _。 要获取另一个基数的日志,请使用基本代数:数字的base-N日志等于该数字的自然对数除以N的自然对数。 语法 (Syntax) 以下是此函数的简单语法 - log EXPR log 返回值 (Return Value) 此函数在标量上下文中返回浮点数。 例子 (Example) 以下是显示其基本用法的示例代码

  • log

    log(计算以e 为底的对数值) 相关函数 exp,log10,pow 表头文件 #include <math.h> 定义函数 double log (double x); 函数说明 log()用来计算以e为底的x 对数值,然后将结果返回。 返回值 返回参数x的自然对数值。 错误代码 EDOM 参数x为负数,ERANGE 参数x为零值,零的对数值无定义。 附加说明 使用GCC编译时请加入-lm。

  • log

    LOG 返回所有执行的查询。log() Return: 开启Medoo调试模式 可以用此函数来查询、调试SQL语句 $database->select("account", [ "user_name", "email"], [ "user_id[ 20]);$database->insert("account", [ "user_name" => "foo", "em

  • log

    LOG 返回所有执行的查询。log() Return: 开启Medoo调试模式 可以用此函数来查询、调试SQL语句 $database->select("account", [ "user_name", "email"], [ "user_id[ 20]);$database->insert("account", [ "user_name" => "foo", "em

  • log

    id 返回最后插入的行ID。id() Return: 最后插入的行ID. $database->insert("account", [ "user_name" => "foo", "email" => "foo@bar.com", "age" => 25]);$account_id = $database->id();

  • log

    Rand 随机获取数据。rand($table, $column, $where) table [string] The table name. column [string] The target column will be calculated. where (optional) [array] The WHERE clause to filter records.rand($table,