Elasticsearch + Logstash + Kibana 安装(全)
一、ELK 是什么?
ELK = Elasticsearch + Logstash + Kibana
- Elasticsearch:后台分布式存储以及全文检索。
- Logstash: 数据导入导出的工具。
- Kibana:数据可视化展示界面。
ELK架构为数据分布式存储、可视化查询和日志解析创建了一个功能强大的管理链。 三者相互配合,取长补短,共同完成分布式大数据处理工作。
注意: ELK技术栈有 version check,软件大版本号需要一致,本文以 6.4.0 版本为例。
二、Elasticsearch
源码下载地址:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
2.1、下载 Elasticsearch 源码
1 | mkdir -p /usr/local/elk/es1; cd /usr/local/elk/es1 |
2.2、创建 es 用户
1 | useradd es |
2.3、解压源码并修改其所有者
1 | tar zxvf elasticsearch-6.4.0.tar.gz |
2.4、设置新的 Elasticsearch 的数据存储路径
创建目录并设置目录的所属用户:
1 | mkdir -p /data/elasticsearch/es1/data |
2.5、修改 Elasticsearch 的配置文件
修改Elasticsearch的配置文件:/usr/local/elk/es1/elasticsearch-6.4.0/config/elasticsearch.yml
1 | cluster.name: elasticsearch |
2.6、后台启动 Elasticsearch
Elasticsearch 不能以 root 用户启动,所以改用 es 用户启动。
1 | su - es |
可根据 logs/elasticsearch.log 文件来监测 Elasticsearch 服务运行状况。
注意:如果Elasticsearch服务启动失败,可参考 第五章 FAQ 处理问题。
2.7、停止Elasticsearch
根据 Elasticsearch 的端口号来停止该服务:
1 | netstat -ntlp | grep 9200 | awk '{print $7}' | awk -F '/' '{print $1}' | xargs kill -9 |
三、Logstash
Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” 中。logstash收集日志基本流程为:
Input –> filter –> output
源码下载地址:https://www.elastic.co/cn/downloads/logstash
1.1、下载Logstash源码
1 | cd /usr/local/elk |
1.2、创建 es 用户(如已创建,请略过该步骤)
1 | useradd es |
1.3、解压源码并修改其所有者
1 | tar zxvf logstash-6.4.0.tar.gz |
1.4、示例:将mysql表数据导入到Elasticsearch
1.4.1、创建配置文件
1 | su - es |
修改 face.conf 配置文件如下所示:
1 | Sample Logstash configuration for creating a simple |
1.4.2、添加 sql 文件
创建 face.sql 文件
1 | su - es |
修改 face.sql 文件内容如下所示
1 | select * from face_card where id > :sql_last_value order by id limit 1000 |
1.4.3、创建索引
打开postman,执行PUT请求来创建Elasticsearch索引,索引名称为face_card,指定分片数为5,副本数为2:
1 | PUT http://192.168.167.205:9200/face_card |
1.4.4、执行导数程序
1 | su - es |
1.4.5、查询索引内容
使用postman工具,执行GET请求来查看索引内容:
1 | GET /face_card/_search |
返回示例如下图所示:
四、Kibana
源码下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana
4.1、下载 Kibana 源码
1 | cd /usr/local/elk |
4.2、创建 es 用户(如已创建,请略过该步骤)
1 | useradd es |
4.3、解压源码并修改其所有者
1 | tar zxvf kibana-6.4.0-linux-x86_64.tar.gz |
4.4、修改kibana.yml配置文件
修改Kibana配置:config/kibana.yml
1 | server.port: 5601 |
4.5、后台启动Kibana
用es用户后台启动Kibana
1 | su - es |
可根据 logs/kibana.log 文件来监测Kibana服务运行状况。
五、FAQ
5.1、max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
修改 /etc/security/limits.conf 文件,增加配置,来改变用户 es 每个进程最大同时打开文件数的大小:
1 | es soft nofile 65535 |
可切换到es用户下,然后通过下面2个命令查看当前数量:
- ulimit -Hn
- ulimit -Sn
注意:用户退出重新登录后配置才会刷新生效。
1.2. max number of threads [3818] for user [es] is too low, increase to at least [4096]
最大线程个数太低。修改配置文件 /etc/security/limits.conf ,增加配置:
1 | es - nproc 4096 |
可切换到es用户下,然后通过下面2个命令查看当前最大线程数:
- ulimit -Hu
- ulimit –Su
注意:用户退出重新登录后配置才会刷新生效。
1.3. max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
修改 /etc/sysctl.conf 文件,在文末增加配置
1 | vm.max_map_count=262144 |
执行命令sysctl -p
生效。
1.4. memory locking requested for elasticsearch process but memory is not locked
修改 /etc/security/limits.conf 文件,增加配置:
1 | * soft memlock unlimited |
1.5. 启动Elasticsearch服务,显示被killed
可能Elasticsearch所在的机器内存不足。
修改 bin/elasticsearch 文件,将 ES_JAVA_OPTS 修改为:ES_JAVA_OPTS="-Xms1g -Xmx1g"
,如下图所示:
1.6. 服务启动后,在浏览器访问不了9200端口
关闭防火墙:
1 | systemctl stop firewalld |
点关注,不迷路
好了各位,以上就是这篇文章的全部内容了,能看到这里的人呀,都是人才。
白嫖不好,创作不易。各位的支持和认可,就是我创作的最大动力,我们下篇文章见!
如果本篇博客有任何错误,请批评指教,不胜感激 !
原文作者: create17
原文链接: https://841809077.github.io/2019/11/18/ELK/elk-install.html
版权声明: 转载请注明出处(码字不易,请保留作者署名及链接,谢谢配合!)