本文共 1358 字,大约阅读时间需要 4 分钟。
由于logstash 太过臃肿,CPU和内存使用过大,我们需要一个性能好,资源消耗低的替代品。fluentd就是我们想要的。测试表明,在相同负载情况下,fluentd的性能数倍于logstash。
由于CentOS7 自带ruby版本过低,本文使用ruby 2.4.1 安装fluentd .
1、卸载自带的ruby
1 | yum remove ruby -y |
2、安装ruby2.4.1
1 | yum install http: //120 .24.7.75:8000 /centos/7/x86_64/ruby2 .4-2.4.1-1.el7.centos.x86_64.rpm |
3、调整gem源
1 2 3 | gem sources #列出默认源 gem sources --remove https: //rubygems .org/ #移除默认源 gem sources -a https: //mirrors .ustc.edu.cn /rubygems/ #添加科大源 |
4、安装编译环境和软件包依赖
1 | yum install gcc gcc-c++ make automake autoconf libtool openssl-devel jemalloc-devel gmp-devel -y |
5、安装fluentd
1 | gem install fluentd |
6、安装fluent插件
1 2 | gem install fluent-plugin-kafka gem install fluent-plugin-elasticsearch |
7、初始化fluentd
1 | fluentd --setup /etc/fluentd |
前台debug 测试,用于检查配置文件
1 | fluentd -c /etc/fluentd/fluentd/fluent .conf -vv |
8、创建启动脚本/usr/lib/systemd/system/fluentd.service
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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
1 2 3 | systemctl daemon-reload systemctl enable fluentd systemctl start fluentd |
fluentd 是cruby写的,受限于GIL,无法利用多核CPU,已知每个CPU可处理5000个并发,
如果性能不能满足需求,可以进程多开。