1.官方下载:https://www.elastic.co/cn/products
2.版本:elasticsearch5.6.4,kibana5.2.0 ,logstash5.6.3三个版本(注意 JDK需要1.8)
我下载的版本(如下图)
3.安装logstash
(1)解压,在config目录建:lostash.conf
(2)做好input ,filter,output三大块, 其中input是吸取logs文件下的所有log后缀的日志文件,filter是一个过滤函数,配置则可进行个性化过滤,output配置了导入到hosts为127.0.0.1:9200的elasticsearch中,每天一个索引。
lostash.conf文件如下图所示
说明:start_position是监听的位置,默认是end,即一个文件如果没有记录它的读取信息,则从文件的末尾开始读取,也就是说,仅仅读取新添加的内容。对于一些更新的日志类型的监听,通常直接使用end就可以了;相反,beginning就会从一个文件的头开始读取。但是如果记录过文件的读取信息,则不会从最开始读取。重启读取信息不会丢失。
(3)bin目录下启动logstash了,配置文件设置为conf/logstash.conf
启动命令:./logstash-f ../config/logstash.conf
(4)配置多个文件:./logstash -f ../config 指定启动目录,然后启动目录下配置多个*.Conf文件。里面指定不同的logpath。
4.安装elasticSearch
由于ES不可以进行root账户启动,所以你还创建一个账户,启动时 su - 用户名 切换到创建的用户下启动es
创建用户命令:
groupadd 用户组名
useradd 用户名 -g 用户组名
(1)解压,修改配置文件elasticsearch.yml(由于我是单节点,暂时如此配置。)
network.host: 0.0.0.0
http.port: 9200
其它配置项默认就好。
(2)启动es,进入到bin 目录下执行 ./elasticsearch 命令,执行 ./elasticesrarch -d 是后台运行
(3)浏览器访问 http://自己配置的IP地址:9200 出现如下图所以则安装成功。
启时可能会遇到的问题
(1)max file descriptors [4096]for elasticsearch process is too low, increase to at least [65536]
解决方法一:vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
前面的*符号必须带上,然后重新启动就可以了。执行完成后可以使用命令 ulimit -n 查看进程数
解决方法二: vi /etc/security/limits.conf
ser hard nofile 65536
user soft nofile 65536
(2)max virtual memoryareas vm.max_map_count [65530] likely too low, increase to at least [262144]
解决办法:vi /etc/sysctl.conf
添加 vm.max_map_count=655360
并执行命令:sysctl –p
部份内容借鉴该文章,请参考 https://www.cnblogs.com/lizichao1991/p/7809156.html
5.安装kibana
这个安装比较简单,解压后在kibana.yml文件中指定一下你需要读取的elasticSearch地址和可供外网访问的bind地址就可以了
elasticsearch.url: http://localhost:9200,如果是集群则配置master节点。 server.host: 0.0.0.0
启动命令:./kibana
接下来我们在本机的/logs文件夹下创建一个简单的1.log文件,内容为“hello world”,然后在kibana上将logstash-* 改成 log* ,Create按钮就会自动出来。
echo 'helloworld'> 1.log
访问结果:
6 最后的彩蛋:我们来装一个es的elastic-head插件。
https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip elasticsearch-head-master.zip
curl --silent--location https://rpm.nodesource.com/setup | bash -
yum install -ynodejs
npm installgrunt --save-dev
npm install
进入elasticsearch-head-master文件夹下,执行命令vi Gruntfile.js文件:增加hostname属性,设置为*。
在es的配置中间加:
http.cors.enabled:true
http.cors.allow-origin: "*"
启动命令 grunt server &
效果如下:
注意:由于执行head 插件,需要node.js 的支持,所以需要安装node.js 在安装的过程中,也遇到了一些坑,总结如下:
(1)安装完成后 执行grunt 启动命令无效,如下图
这个可能是node 版本问题。解决办法如下
(2) 在安装node过程中还可能会遇到一些安装过程中的问题,请参考如下两个博客
https://blog.csdn.net/xiao_jun_0820/article/details/50838185
https://www.cnblogs.com/lovelylife/p/3503980.html