前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日志收集工具fluentd安装配置及使用介绍

日志收集工具fluentd安装配置及使用介绍

作者头像
用户5166556
发布2020-06-15 11:20:57
3K0
发布2020-06-15 11:20:57
举报

"本文主要讲解fluent-bit和fluentd安装配置和使用介绍"

1、环境说明

两台服务器(注:Fluent-bit只支持centos 7以上版本,Fluentd可以支持centos 6版本),host1写日志到本地,然后通过Fluent-bit支持的forward到Fluentd,Fluentd将日志集中写入host2本地存储归档。

host1,IP:12.18.7.42,CentOS 7.6

host2,IP:12.18.7.41,CentOS 7.6

2、fluent-bit安装过程

2.1、安装编译运行环境

代码语言:javascript
复制
yum install cmake gcc gcc-g++ -y

2.2、下载fluentbit

代码语言:javascript
复制
wget https://fluentbit.io/releases/1.0/fluent-bit-1.0.4.tar.gz

2.3、安装

代码语言:javascript
复制
tar -zxf fluent-bit-1.0.4.tar.gz
cd fluent-bit-1.0.4/build
cmake..
make
make install

2.4、 执行

代码语言:javascript
复制
fluent-bit -c /usr/local/etc/fluent-bit/fluent-bit.conf
Fluent Bit v1.0.4
Copyright (C) Treasure Data


[2020/01/19 11:34:39] [Warning] [config] I cannot open /usr/local/etc/fluent-bit/plugins.conf file
[2020/01/19 11:34:39] [ info] [storage] initializing...
[2020/01/19 11:34:39] [ info] [storage] in-memory
[2020/01/19 11:34:39] [ info] [storage] normal synchronization mode, checksum disabled
[2020/01/19 11:34:39] [ info] [engine] started (pid=3270)
[0] cpu.local: [1579404880.000151741, {"cpu_p"=>0.000000, "user_p"=>0.000000, "system_p"=>0.000000, "cpu0.p_cpu"=>0.000000, "cpu0.p_user"=>0.000000, "cpu0.p_syst

3、fluentd安装

 Fluentd是用ruby语言写的日志收集工具。安装ruby默认是2.0版本的,需要通过yum安装ruby环境。

3.1、安装ruby环境

代码语言:javascript
复制
[root@host2 src]# yum install ruby

3.2、修改成阿里源,能够加快下载速度,添加ruby仓库

代码语言:javascript
复制
[root@host2 src]# gem sources -a http://mirrors.aliyun.com/rubygems/

3.3、安装RVM

RVM(Ruby Version Manager )是一款RVM的命令行工具,可以使用RVM轻松安装,管理Ruby版本。RVM包含了Ruby的版本管理和Gem库管理(gemset)

代码语言:javascript
复制
[root@k8s-master src]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BD4
[root@k8s-master src]# curl -sSL https://get.rvm.io | bash -s stable

3.4、生效配置

代码语言:javascript
复制
[root@host2 src]# source /etc/profile.d/rvm.sh

3.5、查看版本

代码语言:javascript
复制
[root@host2 src]# rvm -v
rvm 1.29.9 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

3.6、安装Ruby

代码语言:javascript
复制
[root@host2 src]# rvm install 2.5

3.7、安装编译环境和软件包

代码语言:javascript
复制
[root@host2 src]# yum install gcc-c++ make automake autoconf libtool openssl-devel jemalloc-devel gmp-devel -y

3.8、安装Fluentd(当然你也可以安装必要的的插件,比如:gem install fluent-plugin-elasticsearch)

代码语言:javascript
复制
[root@host2 src]# gem install fluentd --no-document

3.9、初始化Fluentd

代码语言:javascript
复制
[root@host2 src]# fluentd --setup /etc/fluentd

3.10、启动

代码语言:javascript
复制
[root@host2 src]# fluentd -c /etc/fluentd/fluent.conf
[root@k8s-master src]# fluentd -c 13_fluentd_conf 
2020-01-19 10:43:18 +0800 [info]: parsing config file is succeeded path="13_fluentd_conf"
2020-01-19 10:43:18 +0800 [info]: gem 'fluentd' version '1.8.1'
2020-01-19 10:43:18 +0800 [info]: Oj is not installed, and failing back to Yajl for json parser
2020-01-19 10:43:18 +0800 [info]: using configuration file: <ROOT>
  <source>
    @type forward
    port 24222
  </source>
  <source>
    @type http
    port 9880
  </source>
  <match nginx*>
    @type stdout
  </match>
</ROOT>
2020-01-19 10:43:18 +0800 [info]: starting fluentd-1.8.1 pid=14389 ruby="2.5.5"
2020-01-19 10:43:18 +0800 [info]: spawn command to main:  cmdline=["/usr/local/rvm/rubies/ruby-2.5.5/bin/ruby", "-Eascii-8bit:ascii-8bit", "/usr/local/rvm/gems/ruby-2.5.5/bin/fluentd", "-c", "13_fluentd_conf", "--under-supervisor"]
2020-01-19 10:43:19 +0800 [info]: adding match pattern="nginx*" type="stdout"
2020-01-19 10:43:19 +0800 [info]: adding match pattern="nginx*" type="file"
2020-01-19 10:43:19 +0800 [info]: adding source type="forward"
2020-01-19 10:43:19 +0800 [info]: adding source type="http"
2020-01-19 10:43:19 +0800 [info]: #0 Oj is not installed, and failing back to Yajl for json parser
2020-01-19 10:43:19 +0800 [info]: #0 starting fluentd worker pid=14393 ppid=14389 worker=0
2020-01-19 10:43:19 +0800 [info]: #0 listening port port=24222 bind="0.0.0.0"
2020-01-19 10:43:19 +0800 [info]: #0 fluentd worker is now running worker=0

4、使用样例

4.1、启动fluentd服务端,命令如下:

代码语言:javascript
复制
    fluentd -c fluentd_conf

fluent_conf信息如下:

代码语言:javascript
复制
<source>
  @type forward
  port 24222
</source>


# http://this.host:9880/myapp.access?json={"event":"data"}
<source>
  @type http
  port 9880
</source>
<match nginx*>                        #匹配有tag为mem的类型
  @type stdout                        #匹配成功直接标准输出
</match>

4.2、启动fluent-bit客户端

代码语言:javascript
复制
fluent-bit -c fluent-bit.conf

fluent-bit.conf配置文件信息如下:

代码语言:javascript
复制
[SERVICE]
    Flush        1
    Daemon       OFF
    Log_Level    debug




[INPUT]
    Name        tail
    Path        /home/logs/ng.log
    Db          /tmp/ng.db
    Db.sync     Full
    Tag         nginxlog8




[OUTPUT]
    Name        forward
    Match       *
    Host        12.18.7.41
    Port        24222

4.3、日志输出测试

fluent-bit客户端执行

代码语言:javascript
复制
echo qquuuuuu>ng.log

flunetd服务端输出:

代码语言:javascript
复制
2020-01-19 13:52:38.945508352 +0800 nginxlog8: {"log":"qquuuuuu"}

5、总结

本文主要讲解了fluentd和fluent-bit原生安装和入门使用的过程,上一篇介绍了为什么用?Kubernetes集群环境下fluentd日志收集方案介绍 后续会介绍文件按照规范存储日志文件以及镜像DaemonSet方式运行,持续关注。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档