ELK简介

Elasticsearch:是一个高度可扩展的开源全文搜索和分析引擎。能够快速,实时的存储,搜索和分析大量数据,通常用做底层引擎技术。

Kibana:是一个开源分析和可视化平台,是进入Elastic Stack的窗口,可以在Elasticsearch中对程序的数据进行可视化探索和实时分析,旨在与Elasticsearch协同工作。
使用Kibana搜索,查看和与存储在Elasticsearch索引中的数据进行交互,可以轻松执行数据分析,并在各种表格,图标和地图中查看数据,基于浏览器的界面能够快速创建和共享动态仪表板

Logstash:是一个具有实时功能的开源数据收集引擎。Logstash可以动态统一来自不同来源的数据,并将数据标准化到所在的目录文件中
1.水平和扩展的数据处理管道,具有强大的Elasticsearch和Kibana协同作用
2.混合,匹配和编排不同的输入,过滤器和输出,以便在管道协调中发挥作用
3.插件丰富,提供能过的灵活性

安装ELK环境

在安装这些软件的首要准备就是 需要最新的java-JDK运行环境。在官网下载最新的java和对应的JDK
设置java的环境变量

下载最新的java环境安装包

下载地址:https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz?AuthParam=1542018669_d87a6dc817cccfcd1391cf5a905d87a6

安装Elasticsearch

1.下载Elasticsearch

# wget  `https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.3.tar.gz

2.解压文件

# tar -zxvf elasticsearch-6.4.3.tar.gz

3.切换到解压目录,运行Elasticsearch

# ./bin/elasticsearch

 在后台运行

# ./bin/elasticsearch -d

4.打开终端,进行测试,能够返回信息说明运行正常

curl http://localhost:9200

运行的时候,如果出现下面的现象,可参考之后的解决方案进行尝试

现象1

服务器部署elk需要什么配置 elk环境搭建_Elastic

这是由于对root用户的安全保护,需要使用其他的用户进行授权才能正常启动

解决办法

# groupadd elsearch         
# useradd elsearch -g elsearch 
# chown -R elsearch:elsearch  elasticsearch-6.4.3

切换用户,重新启动

# su elsearch
# /opt/elasticsearch-6.4.3/bin/elasticsearch

切换用户,出现下面的情况时,需要修改一下 / 的权限

SIOCSIFADDR: 不允许的操作
 # chmod 755 /

之后再切换用户,重新启动

现象2

服务器部署elk需要什么配置 elk环境搭建_nginx_02

解决办法

修改配置文件,在文件最后加上下面的字段:

# vim ./config/elasticsearch
    xpack.ml.enabled:false


服务器部署elk需要什么配置 elk环境搭建_elasticsearch_03

现象3

服务器部署elk需要什么配置 elk环境搭建_nginx_04

问题[1]

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536] max number of threads [1024] for user [elsearch] likely too low, increase to at least [2048]

解决办法

# vim /etc/security/limits.conf
	 加入下面的内容
	 * soft nofile 65536
	 * hard nofile 131072
	 * soft nproc 2048
	 * hard nproc 4096
 # vim /etc/security/limits.d/20-nproc.conf
 	 * sort nproc 65535
 	 root soft nproc unlimited

问题[2]*

[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法

# vim /etc/sysctl.conf 
	vm.max_map_count=655360
# sysctl -p

问题[3]

[3]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

解决办法

# vim ./conf/elasticsearch.yml
    bootstrap.memory_lock:false
    bootstrap.system_call_filter:false	
切换用户 重新启动elasticsearch

启动后,没有问题就说明启动成功。如果启动后出现下面的内容

ERROR: [1] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

解决办法
在配置文件limits.conf的末尾再加上下面的字段

# vim /etc/security/limits.conf
	* hard nofile 65536
	* soft nofile 65536

之后切换用户,重新启动,进行测试,出现端口或者下图内容说明启动成功。

# curl http://192.168.10.128:9200
# ss -tnulp | grep 9200


服务器部署elk需要什么配置 elk环境搭建_服务器部署elk需要什么配置_05

安装Kibana

安装的时候需要注意版本号要一致,不然会导致不兼容,在启动后,就会一致报错,警告,创建不了索引等等问题。

1.下载与Elasticsearch相同版本号的Kibana

# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.3-linux-x86_64.tar.gz

2.解压文件

# tar vxf kibana-6.4.3-linux-x86_64/

3.修改配置文件,这里暂时不需要修改配置文件。启动Kibana

# vim ./config/kibana.yml
# ./bin/kibana

出现下面的信息,表示的是正在进行优化,需要等待,不可关闭

log   [08:15:25.623] [info][optimize] Optimizing and caching bundles for ml, stateSessionStorageRedirect, status_page, timelion, dashboardViewer, apm and kibana. This may take a few minutes 	  
   log   [08:21:46.222] [info][optimize] Optimization of bundles for ml, stateSessionStorageRedirect, status_page, timelion, dashboardViewer, apm and kibana complete in 380.59 seconds

另开一个终端,当没有在显示log的时候,查看5601端口是否开启,不要关闭刚才的启动

# ss -tnulp | grep 5601

之后通过火狐浏览器或者谷歌浏览器打开网址,能够正常进入到下图的状态表示Kibana安装完成

# firefox http://192.168.10.128:5602


服务器部署elk需要什么配置 elk环境搭建_Elastic_06

服务器部署elk需要什么配置 elk环境搭建_nginx_07

安装Logstash

1.下载logstash软件

# wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.3.tar.gz

2.解压文件:

# tar vxf logstash-6.4.3.tar.gz

3.切换目录

# cd logstash-6.4.3

4.测试是否安装

# bin / logstash -e " input  { stdin {} } output  { stdout {} }"

出现下面的内容表示安装成功
Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[INFO ][logstash.agent  ] Successfully started Logstash API endpoint {:port=>9600}

6.接着在终端下面继续输入下面的内容

hello world
能够显示下面内容表示安装成功
hello world
	{
	    "message" => "hello world",
	    "@version" => "1",
		"@timestamp" => 2018-11-15T08:43:54.138Z,
	    "host" => "room0pc99.tedu.cn"
	}

至此,上面的内容就是安装ELK环境的基本操作,仅供参考。

参考文献

Elasticsearch文档Kibana文档Logstash文档Elasticsearch集群部署