由于logstash 太过臃肿,cpu和内存使用过大,我们需要一个性能好,资源消耗低的替代品。fluentd就是我们想要的。测试表明,在相同负载情况下,fluentd的性能数倍于logstash。
由于CentOS7 自带ruby版本过低,本文使用ruby 2.4.1 安装fluentd .
1、卸载自带的ruby
yumremoveruby-y
2、安装ruby2.4.1
yuminstallhttp://120.24.7.75:8000/centos/7/x86_64/ruby2.4-2.4.1-1.el7.centos.x86_64.rpm
3、调整gem源
gemsources#列出默认源 gemsources--removehttps://rubygems.org/#移除默认源 gemsources-ahttps://mirrors.ustc.edu.cn/rubygems/#添加科大源
4、安装编译环境和软件包依赖
yuminstallgccgcc-c++makeautomakeautoconflibtoolopenssl-develjemalloc-develgmp-devel-y
5、安装fluentd
geminstallfluentd
6、安装fluent插件
geminstallfluent-plugin-kafka geminstallfluent-plugin-elasticsearch
7、初始化fluentd
fluentd--setup/etc/fluentd
fluentd-c/etc/fluentd/fluentd/fluent.conf-vv
8、创建启动脚本/usr/lib/systemd/system/fluentd.service
[Unit] Description=Fluentd Documentation=http://www.fluentd.org/ After=network.target [Service] Type=simple ExecStart=/usr/bin/fluentd-c/etc/fluentd/fluent.conf Restart=on-failure User=fluentd Group=fluentd [Install] WantedBy=multi-user.target
9、启动fluentd
systemctldaemon-reload systemctlenablefluentd systemctlstartfluentd
fluentd 是cruby写的,受限于GIL,无法利用多核cpu,已知每个cpu可处理5000个并发,
如果性能不能满足需求,可以进程多开。