ES、Logstash 和 Kibana 是一组开源工具的缩写,通常被称为 ELK Stack。它们分别是:
Elasticsearch(ES) 中文:弹性搜索 |
是一个高度可扩展全文搜索和分析引擎,基于Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作,可以处理大规模日志数据,比如Nginx 、Tomcat 、系统日志等功能 |
|
Logstash 中文:日志集中 |
数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置;支持普通log 、自定义json 格式的日志解析 |
|
Kibana 中文:基于浏览器的分析和搜索界面 |
数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示 |
本文使用三台服务器搭建ES集群
systemctl disable firewalld
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
vim /etc/hosts
192.168.10.111 elk1
192.168.10.112 elk2
192.168.10.113 elk3
JDK下载官网https://www.oracle.com/cn/java/technologies/javase/javase8u211-later-archive-downloads.html
tar -xzvf jdk-8u381-linux-x64.tar.gz -C /usr/local
vim /etc/profile进入编辑模式后,在末尾加入这段
export JAVA_HOME=/usr/local/jdk1.8.0_381
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
source /etc/profile
java -version #出现版本即为成功
javac
Elasticsearch下载官网https://www.elastic.co/cn/downloads/past-releases#elasticsearch
[root@mysql-112 /]# rpm -ivh elasticsearch-6.8.1.rpm
警告:elasticsearch-6.8.1.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中... ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK
正在升级/安装...
1:elasticsearch-0:6.8.1-1 ################################# [100%]
### NOT starting on installation, please execute the following statements to configure elasticsearch service to start automatically using systemd
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
### You can start elasticsearch service by executing
sudo systemctl start elasticsearch.service
Created elasticsearch keystore in /etc/elasticsearch
[root@linux-elk1 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: elk-cluster #ELK的集群名称,名称相同即属于是同一个集群
node.name: elk1 #本机在集群内的节点名称
path.data: /elk/data #数据存放目录
path.logs: /elk/logs #日志保存目录
#bootstrap.memory_lock: true #服务启动的时候锁定足够的内存,防止数据写入swap,这个配置不能开,开了起不来
network.host: 192.168.10.110 #监听的IP地址,本机的地址
http.port: 9200 #服务监听的端口
discovery.zen.ping.unicast.hosts: ["elk1", "elk2", "elk3"]
#这个参数用于配置用于节点之间通信和发现的主机列表。你可以指定其他节点的IP 址或主机名,以便让节点知道其他节点的存在,从而加入到集群中,和上面的node.name可以不一致
从5.0开始,ElasticSearch 安全级别提高了,不允许采用root帐号启动,所以我们使用以下用户
mkdir -p /elk/{data,logs}
chown elasticsearch.elasticsearch /elk/ -R
systemctl start elasticsearch.service
systemd[1]: Started Elasticsearch.
elasticsearch[1409]: which: no java in (/usr/local/sbin:/usr/local...n)
[root@mysql-111 logs]# which java
/usr/local/jdk1.8.0_381/bin/java
[root@mysql-111 elk]# ln -s /usr/local/jdk1.8.0_381/bin/java /usr/bin/java
##这个报错解除
这边考虑虚拟机内存给的少了,查阅文档,需要2G以上,添加到2G还是启动失败,参考其他答案,需要解决线程开启问题和虚拟机内存问题
vim /etc/security/limits.conf 在末尾追加
* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 2048
* soft memlock unlimited
* hard memlock unlimited
修改资源限制文件,reboot重启后,ulimit -a 即可查到修改参数,所以这里一开始就要设置
再启动es即可,等待一会,出现9200.9300端口即为部署成功
curl http://192.168.10.111:9200 或登录网页(打不开网页90%是防火墙没关)
Kibana是ES提供的一个基于Node.js的管理控制台, 可以很容易实现高级的数据分析和可视化,以图标的形式展现出来。
kibana可以用来编辑请求语句的,方便学习操作es的语法。有时在进行编写程序,写到查询语句时,往往我会使用kibana进行书写,然后再粘贴到程序中。(不容易出错)
Kibana下载官网https://www.elastic.co/cn/downloads/kibana
tar -xzvf kibana-8.12.0-linux-x86_64.tar.gz -C /usr/local
修改config/kibana.yml配置:
vim /usr/local/kibana-8.12.0/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0" #允许来自远程用户的连接
elasticsearch.url: http://192.168.10.111:9200 #Elasticsearch实例的URL
/usr/local/kibana-8.12.0/bin/kibana --allow-root
#kibana不允许使用root启动,要么加参数--allow-root,要么切换用户
ln -s /usr/local/kibana-8.12.0/bin/kibana /usr/bin/kibana
kibana --allow-root
使用浏览器访问(elasticsearch.url): http://192.168.10.111:9200
发现登陆到网址提示需要再es安装路径下执行:bin\elasticsearch-create-enrollment-token.bat --scope kibana
-----未完待续