A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaozuoquan 中级黑马   /  2019-4-30 08:41  /  1192 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xiaozuoquan 于 2019-4-30 09:21 编辑

官网: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

                                                                                                                                    -

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马