Td-agent
安装准备
增大 File Descriptors
得最大值
使用 ulimit -n
查看
1 | $ ulimit -n |
如果你的系统显示 该数值为1024, 需要增大 File Descritors ,编辑 /etc/security/limits.conf ,在最后加入以下几行,并重启机器
1 | root soft nofile 65536 |
优化网络内核参数
高负载的环境中会存在很多 Flunted 实例, 将这些参数加入到 /etc/systc..conf
文件中。并且执行 sysctl -p
命令 或重启系统使这些参数生效。
1 | net.core.somaxconn = 1024 |
安装 td-agent (在 redhat 中)
如果系统可以连接互联网,可以通过以下脚本自动安装
1 | $ curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent3.sh | sh |
该命令从treasuredata上获取到一个自动安装脚本,并执行该脚本
1 | echo "==============================" |
td-agent 安装完毕,启动td-agent后台进程
td-agent 提供了两种脚本
systemd
可以用 /usr/lib/systemd/system/td-agent
来启动或停止 td-agent
进程,相应的可以将 td-agent.service 添加到 etc/systemd/system
中
1 | $ sudo systemctl start td-agent.service |
init.d
用/etc/init.d/td-agent
启动或停止 td-agent 进程
1 | sudo /etc/init.d/td-agent start |
==启动后遇到以下问题==
1 | unexpected error error_class=Errno::EACCES error="Permission denied @ rb_sysopen - /var/log/td-agent/httpd-access.log |
原因:默认使用的 td-agent 用户启动用户,在读取日志文件时没有权限,改为 root 用户启动 td-agent
切换到root用户
执行命令:
sysctl -w vm.max_map_count=262144
查看结果:
sysctl -a|grep vm.max_map_count
显示:
vm.max_map_count = 262144
上述方法修改之后,如果重启虚拟机将失效,所以:
解决办法:
在 /etc/sysctl.conf文件最后添加一行
vm.max_map_count=262144
即可永久修改