在CentOS 7环境下搭建Fluentd+Elasticsearch+Kibana 4(前篇)
这次我们将在这里构建的CentOS7环境中引入Kibana4!
请注意,我还尝试在其他AmazonLinux的EC2实例上进行了测试,同样的步骤也可以引入。
真的,直到导入为止!期待后续的 fluentd 配置和图表显示。。
1. 登录虚拟环境
首先,让我们登录。
简要复习一下,主机是”192.168.33.10″,使用SSH,TCP端口是22号。
而用户名和密码是”vagrant”。
2. 系统升级
首先,让我们通过执行”yum update”来升级系统中的各个软件包版本。
$ sudo yum -y update
3. 安装JDK
由于Elasticsearch是在Java上运行的,因此需要事先安装。
这次我们决定使用”java-1.8.0-openjdk”。
$ sudo yum -y install java-1.8.0-openjdk
4. 引入 Elasticsearch
我决定使用目前最新版本的1.5.1。无论什么事情都追求最新最新的。。。
4.1. 使用 wget 命令下载 RPM 包。
$ sudo wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.5.1.noarch.rpm
安装4.2版本的rpm软件包。
$ sudo rpm -ivh ./elasticsearch-1.5.1.noarch.rpm
4.3. 启动 Elasticsearch
$ sudo service elasticsearch start
将Elasticsearch配置为自动启动。
顺便说一下,在环境启动时让它自动启动吧。
$ sudo chkconfig elasticsearch on
5. 引入td-agent(fluentd)
5.1. 安装 td-agent
据说,可以将td-agent简单地解释为fluentd的稳定版,因此可以认为它们是相同的东西。
这次我们将引入td-agent2。
由于官方提供了一个简化安装过程的Shell脚本,所以我们将使用它来进行安装。
$ sudo curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
5.2. 安装libcurl-devel
由于这次我们要使用fluentd将数据存入Elasticsearch,所以需要安装Elasticsearch的插件,在此之前需要先安装。
$ sudo yum -y install gcc libcurl-devel
5.3 版 Elasticsearch 插件的安装
$ sudo td-agent-gem install fluent-plugin-elasticsearch
5.4. 启动 td-agent
$ sudo service td-agent start
将td-agent配置为自动启动。
与Elasticsearch相同,让我们也将其设置为自动启动。
$ sudo chkconfig td-agent on
6. 引入Kibana4
终于轮到Kibana了!这次我们将安装最新版本的纯净Kibana4。
6.1. 下载Kibana4
$ sudo wget https://download.elastic.co/kibana/kibana/kibana-4.0.1-linux-x64.tar.gz
解压已经下载的Kibana4。
$ tar xvzf kibana-4.0.1-linux-x64.tar.gz
6.3. 启动Kibana4
首先,我会简单地在后台启动。
不过,如果保持原样的话,日志会流向控制台,很烦人,所以我会将其适当地重定向到文件中。
$ sudo ./kibana-4.0.1-linux-x64/bin/kibana > ./kibana.log &
7. 钻孔
现在,已经安装了Kibana并完成了!但是,不能直接访问。
试着通过主机操作系统的浏览器。
http://192.168.33.10:5601/
请尝试访问一下。长时间被拦截而感到烦躁就结束了!由于防火墙设置存在,无法访问未经授权的端口。
因此,我们需要通过调整防火墙设置来打开所需的端口。
顺便说一句,CentOS6之前我们使用”iptables”来进行访问限制,但是从CentOS7开始我们使用”firewalld”。
“iptables”的设置适用于所有NIC,但”firewalld”稍有不同,需要为每个NIC准备独立的设置。
修改firewalld的设置。
在文本编辑器(如vi,vim等)中进行编辑。
$ sudo vim /etc/firewalld/zones/public.xml
以下的配置將添加要打開的端口:除了Kibana的5601端口外,還需要打開9200端口,以便能夠訪問Elasticsearch,所以我們也將添加該端口的配置。
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="dhcpv6-client"/>
<service name="ssh"/>
<service name="http"/>
<port protocol="tcp" port="5601"/> <!-- Kibanaポート追加 -->
<port protocol="tcp" port="9200"/> <!-- Elasticsearchポート追加 -->
</zone>
7.2. 将firewalld的设置应用到系统中
$ sudo systemctl restart firewalld
8. Kibana访问再次尝试
好,现在让我们从主机操作系统再次尝试访问5601端口。
http://192.168.33.10:5601/
你成功访问了吗?如果显示如下,则表示OK。
顺便提一下,访问9200端口会显示Elasticsearch的示例。
http://192.168.33.10:9200/
{
"status": 200,
"name": "Oblivion",
"cluster_name": "elasticsearch",
"version": {
"number": "1.5.1",
"build_hash": "5e38401bc4e4388537a615569ac60925788e1cf4",
"build_timestamp": "2015-04-09T13:41:35Z",
"build_snapshot": false,
"lucene_version": "4.10.4"
},
"tagline": "You Know, for Search"
}
这次就到这里了。
在下一篇中,我们将继续使用Elasticsearch将数据导入,然后进行可视化处理。如果您有兴趣,请务必观看!