将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”的形式提取各语言的日志。

广告
将在 10 秒后关闭
bannerAds