首页技术文章正文

[上海校区]ELKstack介绍【黑马大数据培训】

更新时间:2019年07月29日 15时45分24秒 来源:黑马程序员论坛



官网:www.elastic.co

--摘自https://www.kancloud.cn/devops-centos/centos-linux-devops/397454

ELK是什么?
  • E(Elasticsearch,之后简称ES) 一款基于的Lucene的分布式搜索引擎,负责存储和搜索数据,成功案例:
  • GitHub 使用 Elasticsearch 对1300亿行代码进行查询
  • Wikipedia 使用 Elasticsearch 提供带有高亮片段的全文搜索
  • L(Logstash) 数据处理、发送,负责数据的接收、处理、输出,将数据发送给ES或Kafka
  • K(Kibana) 数据展示,负责检索和展示ES中的数据
  • B(Beats)数据发送,负责收集数据发送给Logstash或ES,Beats组件包括:
Filebeat,日志和文件数据收集Packetbeat,网络数据收集Metricbeat,系统和服务指标收集Winlogbeat,Windows日志收集Heartbeat,服务可用性监测(url列表)现在大家都在用Beats组件中的Filebeat代替Logstash在客户端收集数据。本节内容摘自知乎
  • 相对于Logstash来说Filebeat
非常的轻量级功能单一,只做数据收集和发送数据采集方面,性能相对Logstash高go语言编写,用来替换logstash-forward
  • 相对于Filebeat来说Logstash
非常的重功能多,数据的接收、处理、输出数据采集方面,性能相对Filebeat低Java语言编写,使用Jruby插件

基础环境部署
阿里YUM源配置(略)
全局JDK 1.8部署
yum install java-1.8.131
配置系统参数
配置内存锁#追加 /etc/security/limits.conf

echo "  " >> /etc/security/limits.conf

echo "#elasticsearch memlock dinghe add 20170828 " >> /etc/security/limits.conf

echo "elasticsearch soft memlock unlimited" >> /etc/security/limits.conf

echo "elasticsearch hard memlock unlimited" >> /etc/security/limits.conf

配置文件描述符
echo "  " >> /etc/security/limits.conf

echo "#limit dinghe add 20170828 " >> /etc/security/limits.conf

echo "* soft nofile 65536" >> /etc/security/limits.conf

echo "* hard nofile 65536" >> /etc/security/limits.conf

配置map_counter

echo "#elasticsearch inti dinghe add 20170828" >> /etc/sysctl.conf


echo "vm.max_map_count = 262144" >> /etc/sysctl.conf


重启服务器

ELK安装(RPM安装、强烈推荐)
rpm -ivh elasticsearch-5.5.0.rpm
#修改用户shell
usermod elasticsearch -s /bin/bash
#5.5版本的rpm安装会出现变量找到到(oracle java找不到)和memlock配置不生效的情况,修改用户shell后或使用openjdk解决

配置Elasticsearch

创建用户和基础目录

mkdir /data/es-data
#多磁盘方式mkdir /data/es01,/data/es02
chown -R elasticsearch. /data/es-data

修改相关配置


vim /etc/elasticsearch/elasticsearch.yml


cluster.name: es-cluster
node.name: master-1
path.data: /data/es_data/
network.host: 192.168.0.232
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.0.232", "192.168.0.231"

配置注释


#集群名称
cluster.name: es-cluster
#本节点名称
node.name: master-1
#数据文件位置
path.data: /data/es_data/
#日志位置
path.logs: /app/logs/es
#配置绑定IP
network.host: 192.168.0.232
#配置服务端口(9300为集群选举使用的端口)
http.port: 9200
#使用单播的方式发现集群节点,避免网络波动和云服务器网络限制造成的节点发现失败问题
discovery.zen.ping.unicast.hosts: ["192.168.0.232", "192.168.0.231"
启动ES服务

#源码包启动 /app/es/bin/elasticsearch
systemctl restart elasticsearch

安装elasticsearch-head插件

Chrome插件方式(推荐)

Chrome插件中搜索 elasticsearch head


http://pan.baidu.com/s/1slSDvv3


服务模式

cd /opt
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head/
npm install  grunt-cli --registry=https://registry.npm.taobao.org
#备注:grunt是Javascrip的构建工具
npm install  --registry=https://registry.npm.taobao.org
#安装过程中会下载phantomjs-2.1.1-linux-x86_64.tar.bz2,取消下载即可
npm run start

访问elasticsearch-head插件


open (http://localhost:9100/)

错误处理

错误1(RPM包处理方式):elasticsearch 5.x which: no java in

  • 安装的jdk 1.8.121,不成功,安装openjava-jdk1.8.131成功


  • 或修改elasticsearch用户 usermod elasticsearch -s /bin/bash


错误2:bootstrap.memory_lock: true导致Elasticsearch启动失败问题(RPM安装未解决)

...
# allow user 'elasticsearch' mlockall
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

...
ERROR: bootstrap checks failed
memory locking requested for elasticsearch process but memory is not locked
...

解决:


#追加 /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited

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

echo "vm.max_map_count = 262144" >> /etc/sysctl.conf

错误4:Centos 6.x 安装elasticsearch5.2无法启动bug

报错:


ERROR: bootstrap checks failed
system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk

原因:


这是在因为Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动。

解决:


在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

可以查看issues


https://github.com/elastic/elasticsearch/issues/22


错误5:文件描述符设置太小

报错


max file descriptors [4096 for elasticsearch process is too low, increase to at least [65536
max number of threads [1024 for user [[elasticsearch is too low, increase to at least [2048
解决


编辑limits.conf 文件


#vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
#Centos6.x修改vim /etc/security/limits.d/90-nproc.conf
soft nproc 1024  修改为  soft nproc 2048
sysctl -p

                                                                                                                                    -

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 软件测试培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!