首先下载对应软件包,下载软件包直接到官网就行。保证服务器有java环境。
先安装elasticsearch,因为另两个都是基于elasticsearch的。
修改elasticsearch配置
进入elasticsearch的目录,打开config/elasticsearch.yml文件。配置path.data和path.log的地址,根据你elasticsearch文件夹的位置来,elasticsearch文件夹下的相对位置是正确的,只用改之前的。
network.host改成0.0.0.0,这样就可以从外部访问了。同时还需要解开cluster.initial_master_nodes的注释,名字改成服务器名。
在最后加上
http.cors.enabled: true
http.cors.allow-origin: "*"
允许跨域
系统参数修改
修改打开的最大文件数
vim /etc/security/limits.conf
加上
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096
vim /etc/security/limits.d下面的conf文件
第一行*的最后数字改成4096
vim /etc/sysctl.conf
加上两行
vm.max_map_count=655360
fs.file-max=655360
第一行是最大虚拟内存,第二行是最大打开文件数
修改完这个文件后需要执行一下sysctl -p使内容生效。
而前面的修改需要重启操作系统生效。
运行elasticsearch
重启后使用./bin/elasticsearch -d后台运行elasticsearch。
**注意:elasticsearch默认需要4G内存,如果内存不够,启动的时候记得限制内存启动,还有就是启动时要用普通用户身份启动,不要切换到root,后面启动LogStash和Kibana也一样是普通用户。限定内存启动的命令ES_JAVA_OPTS="-Xms256m -Xmx256m" ./bin/elasticsearch -d
**
运行elasticsearch-head插件
运行好elasticsearch,我们再安装一个elasticsearch-head插件,这个插件是基于node.js的,所以必须先安装node.js环境。为了让下载更快,执行:
npm install -g cnpm --registry=https://registry.npm.taobao.org
使用淘宝cnpm代替npm.
进入解压后的elasticsearch-head文件夹,执行
cnpm install
安装依赖。
依赖安装成功后可以使用
cnpm start
启动插件。
启动logstash
logstash启动前要配置一下logstash收集数据的方式,然后运行logstash.logstash的配置文件主要配置input和output,如下面命令中的config/test.conf就是我创建的一个配置文件,在logstash启动的时候指定给它。
nohup ./bin/logstash -f config/test.conf &> run.log &
test.conf的内容如下:
input{
file{
path => ["/tmp/test_data"]
codec => json {
charset => "UTF-8"
}
}
}
output {
elasticsearch {
hosts => "127.0.0.1"
//类似数据库里的库
index => "logstash-%{+YYYY.MM.dd}"
//类似数据库里的表
document_type => "test"
}
}
test_data文件里的内容是这样的
{"name": "test","kind": "iphone"}
启动kibana
kibana启动的话需要先配置一下elasticsearch地址,默认为本地,所以如果在本地可以不用配置,直接启动。
nohup ./bin/kibana -H 0.0.0.0 &> run1.log &
启动之后,就可以去对应的ip下5601端口访问web服务了。
需要说明的是,如果elasticsearch是部署的单机服务。在kibana里看不到logstash创建的index,你可以到elasticsearch-head里查看一下index是否存在,如果index存在,且状态为黄色,那么多半这个index是空的,这是elasticsearch副本分配问题,我另有一篇文章描述了相关方法https://www.jianshu.com/p/bf2caf7137b1