将fluentd引入CentOS中
操作系统环境为CentOS 6.4
在使用 Fluentd 时,将根据文件进行操作。
本次安装Fluentd,考虑到使用的是CentOS操作系统,我打算尝试使用RPM包进行安装。
步骤0:安装之前(在安装之前完成的准备工作)
按照文档的要求,在安装 fluentd 之前执行操作。
设置NTP (设置NTP服务器)
参考网站:http://centossrv.com/ntp.shtml
$ yum install -y ntp
NTP配置
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
↓
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org
↓
# server 0.centos.pool.ntp.org
# server 1.centos.pool.ntp.org
# server 2.centos.pool.ntp.org
server ntp.nict.jp # 日本標準時を提供しているNTPサーバー
server ntp.jst.mfeed.ad.jp # 上記サーバーと直接同期しているNTPサーバー
将服务器的时区设置为日本。
$ cp -p /usr/share/zoneinfo/Japan /etc/localtime
由于NTP服务器在启动时时间严重偏差,导致无法启动NTP服务器,因此需要手动调整时间。
$ ntpdate ntp.nict.jp
启动NTP服务器。
$ /etc/rc.d/init.d/ntpd start
$ chkconfig ntpd on
如果服务器名称的左侧带有*,那就是同步成功的证明。
remote refid st t when poll reach delay offset jitter
==============================================================================
*ntp-a3.nict.go. .NICT. 1 u 53 64 177 14.559 -221.38 134.998
+ntp2.jst.mfeed. 133.243.236.19 2 u 18 64 377 14.413 -240.87 154.688
增加文件描述符的最大数量
文件描述符:http://e-words.jp/w/E38395E382A1E382A4E383ABE38387E382A3E382B9E382AFE383AAE38397E382BF.html
文件描述符是用于在操作系统中唯一标识打开文件的整数值。它是每个进程打开的文件的引用,可以用于读取、写入和关闭文件。在UNIX系统中,文件描述符是支持输入和输出流操作的基础。通过文件描述符,可以在程序中管理文件和连接的打开和关闭操作。更多关于文件描述符的信息可在此链接中获得:http://e-words.jp/w/E38395E382A1E382A4E383ABE38387E382A3E382B9E382AFE383AAE38397E382BF.html
确认当前文件描述符的最大值。
$ ulimit -n
1024
根据文件的要求,我们需要调高上限,因为1024不合适。
# 下記を追加
root soft nofile 65536
root hard nofile 65536
* soft nofile 65536
* hard nofile 65536
然后重新启动服务器
确认上限是否已经提高了
$ ulimit -n
65536
优化网络内核参数
通过修改 sysctl.conf 文件,Linux 可以对内核进行调优。
根据文件的要求,添加参数。
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.ip_local_port_range = 10240 65535
应用设置生效
$ sysctl -w
步骤1:从RPM存储库安装
听说可以使用install-redhat.sh脚本来自动安装td-agent,所以我决定试一试。
$ curl -L http://toolbelt.treasure-data.com/sh/install-redhat.sh | sh
确认是否存在td.repo和td-agent包。
$ ls /etc/yum.repos.d/
td.repo
$ rpm -qa | grep td-agent
td-agent-1.1.17-0.x86_64
一款
步骤2:启动守护进程(Launch Daemon)
由于在Step1中创建了/etc/init.d/td-agent脚本,因此我们可以使用它。
$ sudo /etc/init.d/td-agent start
Starting td-agent: [ OK ]
听说可以使用start、stop、restart、status命令。
顺便说一下,config文件位于以下目录:
/etc/td-agent/td-agent.conf
步骤3:通过HTTP发布样本日志
默认情况下,日志文件被写入到/var/log/td-agent/td-agent.log。
根据文档的指示,使用curl发送POST请求。
$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test
请确认日志是否有输出。
$ tail -f /var/log/td-agent/td-agent.log
2013-10-14 17:56:49 +0000 debug.test: {"json":"message"}
我走了
默认设置似乎是将包含Json或Msgpack参数的HTTP请求发送到8888端口,并在日志中进行记录。这样就可以使用fluentd了,接下来只需要自定义配置文件即可。
请查看文档,了解如何以”Next Steps”的形式提取各语言的日志。