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
运行的时候,如果出现下面的现象,可参考之后的解决方案进行尝试
这是由于对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 /
之后再切换用户,重新启动
解决办法
修改配置文件,在文件最后加上下面的字段:
# vim ./config/elasticsearch
xpack.ml.enabled:false
问题[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
安装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
安装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集群部署