ELK(ElasticSearch+Logstash+Kibana)5.0 搭建全纪录

2017-01-06 10:08:12来源:oschina作者:南流-Jimmy人点击



工作中经常会遇到业务数据统计的需求,通常的做法是通过定时任务,每天汇总一次数据到数据库,简单直观,缺点是做不到实时(频繁调用定时任务,数据量大的话,会很耗性能),而实时展示业务数据的需求还是很有必要的。最近了解到了ELK,被它的强大且易用所折服,Logstash负责数据的采集,ElasticSearch负责数据的存储及搜索(官方说可支持PB级别的数据存储),Kibana主要负责数据报表的展示,简直就是一条龙服务啊。不多说,下面记录下搭建的全过程
###一、环境准备:
操作系统:阿里云Ubuntu 14.04.5首先,去Elastic官网 https://www.elastic.co/downloads 下载安装包,拷贝到服务器上,我用的是5.0版本
![](/2014th7cj/d/file/p/20170106/l02feejens5.jpg "在这里输入图片标题")
_tips1:安装ELK5.0以上版本,唯一要求是先安装JDK1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html_
###二、启动ElasticSearch
```
>cd elasticsearch-5.0.0/bin
> ./elasticsearch
```
此时会报错,原因是官方处于安全考虑,不允许用root用户启动elasticsearch
![输入图片说明](/2014th7cj/d/file/p/20170106/ni1dfjxuzt3.png "在这里输入图片标题")
需要新建一个账户el来启动。为了能写入数据,需要将elasticsearch文件夹的操作权限付给新建的账户el
```
# 创建elgroup用户组及el用户
>groupadd elgroup
>useradd el -g elgroup -p 123456
-g是添加到组,-p是密码
```
更改elasticsearch-5.0.0文件夹及内部文件的所属用户及组为el:elgroup
```
# 切到elasticsearch-5.0.0外层目录
>chown -R el:elgroup elasticsearch-5.0.0
```
切换到el用户,再启动
```
>su el
>cd elasticsearch-5.0.0
>./bin/elasticsearch
# 后台启动的命令为:./bin/elasticsearch -d
```
此时还会遇到两个问题
```
问题一:max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
```
这是由于 vm.max_map_count 太小引起的
可以在sysctl.conf增加 vm.max_map_count=262144
```
>vim /etc/sysctl.conf
# 增加一句 vm.max_map_count=262144
# 然后查看是否生效
> sysctl -p /etc/sysctl.conf
```
```
问题二:max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
```
Linux对新用户的进程(Process)会有一些限制
```
> vim /etc/security/limits.conf
# 增加两句
el hard nofile 65536
el soft nofile 65536
```
切换回el用户,终于可以启动,curl下吧,curl http://localhost:9200?pretty
![输入图片说明](https://static.oschina.net/uploads/img/201701/05112414_vRZt.jpg "在这里输入图片标题")
启动成功,本地可以访问,但还无法用浏览器远程访问,因为相应的端口没开,还需两步
1、开启3个端口,9200、9300(es使用)、5601(kibana)使用
```
> iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT
> iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9300 -j ACCEPT
> iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 5601 -j ACCEPT
> iptables -L## 查看是否生效
```
2、更改es配置,允许接受外部请求
```
> cd config/elasticsearch.yml
# 更改 network.host: 0.0.0.0
```
好了,重启es,外网访问OK
![输入图片说明](/2014th7cj/d/file/p/20170106/2xiidzbtnl0.jpg "在这里输入图片标题")
至此,elasticsearch 5.0 搭建启动完毕
###三、启动Kibana
很简单
```
> cd kibana-5.0.0-linux-x86_64/
> vim /config/kibana.yml
# 更改 server.host: "0.0.0.0",允许外网访问
# 启动
> ./bin/kibana
# 后台启动的命令为: nohup bin/kibana &
```
OK,访问下吧
![![输入图片说明](/2014th7cj/d/file/p/20170106/23ns2t0ivcx.jpg "在这里输入图片标题")](/2014th7cj/d/file/p/20170106/23ns2t0ivcx.jpg "在这里输入图片标题")
Kibana也搭建完了,简单吧
大家可以看到上面Kibana的图,已经有了数据,因为已经使用了Logstash来采集日志,下一遍将围绕一个小案例,[ELK采集分析nginx日志](https://my.oschina.net/niejimao/blog/819259),来具体解释下Logstash的搭建与使用

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台