fluentd安装和配置,收集docker日志
安装fluentd
参考文档:
官方文档 https://docs.fluentd.org/v0.12/categories/installation
fluentd配置 https://www.ixdba.net/archives/2018/01/1116.htm
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh
查看已安装fluentd版本
/opt/td-agent/embedded/bin/gem list|grep fluentd
fluentd (1.2.4)建议1.2.4版本以上,因为之前的版本日志切割的时候会有问题
(https://github.com/fluent/fluentd/pull/2054)
更新版本
/opt/td-agent/embedded/bin/gem update fluentd
卸载之前的版本
/opt/td-agent/embedded/bin/gem uninstall fluentd --version=1.2.2
systemctl start td-agent fluentd启动
systemctl enable td-agent 开机自启动
安装Fluentd 必要插件
# 从 rpm 安装的话, # 比如要使用下例的 mongo,需要安装 # $ sudo td-agent-gem install fluent-plugin-mongo $ sudo td-agent-gem
# 从 gem 安装的话 $ sudo gem install
安装完成后可以用以下命令测试是否成功,
curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
td-agent的日志默认路径是:
/var/log/td-agent/td-agent.log
不过安装的环境可能是没网的环境,可以直接去gem官网找安装包,然后gem install 安装,以下插件是flutend成功将消息推送到elasticsearch的关键
(1)安装fluent-plugin-elasticsearch
/usr/sbin/td-agent-gem install fluent-plugin-elasticsearch
(2)安装fluentd type 插件
/usr/sbin/td-agent-gem install fluent-plugin-typecast
(2)安装secure-forward 插件(非必须但常用)
/usr/sbin/td-agent-gem install fluent-plugin-secure-forward
插件安装完成后,就可以修改td-agent的配置文件,将你所要收集的日志推送到
td-agent的配置文件路径默认为:
/etc/td-agent/td-agent.conf ,修改配置文件前将配置文件备份是个好习惯
cp /etc/td-agent/td-agent.conf /etc/td-agent/td-agent.conf-ori
cat /etc/td-agent/td-agent.conf
<source>
@type forward
@id input1
@label @mainstream
port 24224
</source>
<filter **>
@type stdout
</filter>
<label @mainstream>
<match alloc-order> ← 指定标签
@type file ← 指定out_file插件
@id output_auth-server
path /data/alloc-order/docker.*.log ← 指定输出文件
append true
message_key log
format single_value
time_slice_format %Y%m%d ← 文件添加日期信
time_slice_wait 10m ← 文件添加日期信息
</match>
<match **>
@type file
@id output1
path /data/data.*.log
#symlink_path /data/data.log
append true
time_slice_format %Y%m%d
time_slice_wait 10m
time_format %Y%m%dT%H%M%S%z
#format single_value
#message_key log
</match>
</label>
1、source:确定输入源
match: 确定输出目的地
filter:确定 event 处理流
label:将内部路由的输出和过滤器分组
2、Fluentd 的标准输入插件包含 http(监听 9880) 和 forward 模式(监听 24224),分别用来接收 HTTP 请求和 TCP 请求。
http:使 fluentd 转变为一个 httpd 端点,以接受进入的 http 报文。
forward:使 fluentd 转变为一个 TCP 端点,以接受 TCP 报文。
3、match 指令查找匹配 “tags” 的事件,并处理它们。match 命令的最常见用法是将事件输出到其他系统(因此,与 match 命令对应的插件称为 “输出插件”)。每个match指令必须包括一个匹配模式和type参数。match模式是用来过滤事件。只有事件与tag匹配,这个模式将被发送到输出目的地。type参数指定输出插件使用。Fluentd 尝试按照它们在配置文件中出现的顺序,从上到下来进行 "tags" 匹配
append:默认值 false,即刷新日志到不同的文件;若为 true 则输出到同一文件,直到触发 time_slice_format
当满足 time_slice_format 条件时,将创建该文件。 要更改输出频率,请修改 time_slice_format 值。%Y%m%d 每天切割一次收集的日志
time_slice_wait 事件发生时间和fluentd接收事件信息时间有时会发生时差,因此会出现输出文件日期和实际内容不相符的情况。例如23:55发生的事件信息的接收事件是0:01,这时用日期切换输出文件可能会导致该事件信息的丢失。这时可指定 time_slice_wait 参数,该参数是out_file插件根据日期分割输出文件之后,等待多长时间之后向新文件输出信息,在这里10m是10分钟。
message_key log和format single_value将json格式中log字段提取出来
参考文档:http://www.imekaku.com/2016/09/18/fluentd-remove-time-tag-to-only-value/
Fluentd提取发送日志中的value-SingleValue – Imekaku-Blog
docker run -d --log-driver fluentd --log-opt fluentd-address=localhost:24224 --log-opt tag="alloc-order" --log-opt fluentd-async-connect
--log-driver: 配置log驱动
--log-opt: 配置log相关的参数
fluentd-address: fluentd服务地址fluentd-async-connect:fluentd-docker异步设置,避免fluentd挂掉之后导致Docker容器也挂了
fluentd安装和配置,收集docker日志的更多相关文章
- ELK学习实验018:filebeat收集docker日志
Filebeat收集Docker日志 1 安装docker [root@node4 ~]# yum install -y yum-utils device-mapper-persistent-data ...
- debian安装filebeat5.5收集nginx日志
先贴一下我的BELK架构 1.Download and install the Public Signing Key: # wget -qO - https://artifacts.elastic.c ...
- docker-搭建efk收集docker日志
新建docker-compose.yml文件 version: '2' services: fluentd: build: ./fluentd volumes: - ./fluentd/conf:/f ...
- Filebeat 日志收集器 安装和配置
Filebeat的配置文件是/etc/filebeat/filebeat.yml,遵循YAML语法.具体可以配置如下几个项目: Filebeat Output Shipper Logging(可选) ...
- CentOS7下 简单安装和配置Elasticsearch Kibana Filebeat 快速搭建集群日志收集平台
目录 1.添加elasticsearch官网的yum源 2.Elasticsearch 安装elasticsearch 配置elasticsearch 启动elasticsearch并设为开机启动 3 ...
- Docker日志收集最佳实践
传统日志处理 说到日志,我们以前处理日志的方式如下: · 日志写到本机磁盘上 · 通常仅用于排查线上问题,很少用于数据分析 ·需要时登录到机器上,用grep.awk等工具分析 那么,这种方式有什么缺点 ...
- elk-filebeat收集docker容器日志
目录 使用docker搭建elk filebeat安装与配置 docker容器设置 参考文章 首发地址 使用docker搭建elk 1.使用docker-compose文件构建elk.文件如下: ve ...
- Docker 部署 ELK 收集 Nginx 日志
一.简介 1.核心组成 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引 ...
- ELK:收集Docker容器日志
简介 之前写过一篇博客 ELK:日志收集分析平台,介绍了在Centos7系统上部署配置使用ELK的方法,随着容器化时代的到来,容器化部署成为一种很方便的部署方式,收集容器日志也成为刚需.本篇文档从 容 ...
随机推荐
- flex布局的一些注意点
现在来总结下自己在项目中用flex布局的一些注意点 1.ui图中的布局方式与justify-content的布局方法不一样 这是就要利用flex-grow的空dom来分开子容器来达到页面布局的效果 2 ...
- Android之侧滑导航栏
今天学习的新内容是侧滑导航栏,我想大家肯定都比较熟悉了,因为这个效果在qq里面也有,最近一直跟室友们玩的游戏是快速让自己的头像的点赞量上千.当然我的效果跟qq是没有办法比的,因为那里面的功能是在是太强 ...
- mac的svn
http://xclient.info/s/cornerstone.html?t=c5242a66e53f1d866afe8c42aace2738c04ce9ee#versions 破解版的地址 打开 ...
- 使用auto_ptr需要注意的事项
注:C++11 已不推荐使用,应使用scoped_ptr/shared_ptr. 部分原因就是如下的注意事项. 转自:http://patmusing.blog.163.com/blog/static ...
- Python 列表(list)操作
创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_star ...
- 【java开发系列】—— Tomcat编译报错
由于之前Eclipse里面有一个可移植性的web工程,但是在我很久没用后,再次登录这个IDE的时候就发现了问题. 首先,我的电脑里面有两个版本的JDK,1.6和1.7.两个版本的Tomcat6和7以及 ...
- 如何批量删除Redis数据库中的Key
借助 Linux 的 xargs 指令来完成 redis-cli keys "*" | xargs redis-cli del //如果redis-cli没有设置成系统变量,需要指 ...
- Linux --Mysql基础命令
mysql>create database a; --创建一个名为a的新库 mysql>create table a: --创建一个名为a新表 mysql>use a: --进入一个 ...
- ubuntu16.4 修改菜单到下方 错误:GLib-GIO-Message: Using the 'memory' GSettings backend. Your settings will not be saved or shared with other applications.
1.修改命令 #在终端输入 gsettings set com.canonical.Unity.Launcher launcher-position Bottom 2.如果遇错 GLib-GIO-Me ...
- Power Designer逆向工程连接数据库创建pdm-oracle
1.进入菜单文件-Reverse Engineer-Database... 2.打开窗口,选择数据库版本,点击[确定] 3.打开窗口,选择Usering a data source: 4.如果已经有d ...