文章目录

  • ELK是什么
  • Elasticsearch简介
  • Elasticsearch的部署
  • head插件的安装过程
  • 为集群添加ser8和ser9节点


ELK是什么

ELK Stack 是Elasticsearch、Logstash、Kiban三个开源软件的组合。在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称。

ELK Stack成为机器数据分析,或者说实时日志处理领域,开源界的第一选择。和传统的日志处理方案相比,ELK Stack 具有如下几个优点

• 处理方式灵活。Elasticsearch 是实时全文索引,不需要像 storm 那样预先编程才能使用;
• 配置简易上手。Elasticsearch 全部采用 JSON 接口,Logstash 是 Ruby DSL 设计,都是目前业界最通用的配置语法设计;
• 检索性能高效。虽然每次查询都是实时计算,但是优秀的设计和实现基本可以达到全天数据查询的秒级响应;
• 集群线性扩展。不管是 Elasticsearch 集群还是 Logstash 集群都是可以线性扩展的;
• 前端操作炫丽。Kibana 界面上,只需要点击鼠标,就可以完成搜索、聚合功能,生成炫丽的仪表板。
官网地址:
https://www.elastic.co/cn/
官网权威指南:
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
安装指南:
https://www.elastic.co/guide/en/elasticsearch/reference/6.x/rpm.html

Elasticsearch简介

Elasticsearch是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。

Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:

一个分布式的实时文档存储,每个字段 可以被索引与搜索
一个分布式实时分析搜索引擎,能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

它是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;
是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。

基础模块

cluster:管理集群状态,维护集群层面的配置信息。
alloction:封装了分片分配相关的功能和策略。
discovery:发现集群中的节点,以及选举主节点。
gateway:对收到master广播下来的集群状态数据的持久化存储。
indices:管理全局级的索引设置。
http:允许通过JSON over HTTP的方式访问ES的API。
transport:用于集群内节点之间的内部通信。
engine:封装了对Lucene的操作及translog的调用。

应用场景

信息检索

日志分析

业务数据分析

数据库加速

运维指标监控

官网:https://www.elastic.co/cn/

Elasticsearch的部署

实验环境:

172.25.2.7 ser7 es master主机
172.25.2.8 ser8  es master主机
172.25.2.9  ser9 es master主机


关闭主机的fireewalld,selinux.
每个主机相互做解析

实验步骤:

软件下载:
https://elasticsearch.cn/download/
安装软件
# rpm -ivh jdk-8u171-linux-x64.rpm
# rpm -ivh elasticsearch-7.6.1.rpm	//7.6版本自带jdk
设置服务自启:
# systemctl daemon-reload
# systemctl enable elasticsearch

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch

修改配置文件:

# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-es			#集群名称
node.name: server7			#主机名需要解析
path.data: /var/lib/elasticsearch	#数据目录
path.logs: /var/log/elasticsearch	#日志目录
bootstrap.memory_lock: true	#锁定内存分配
network.host: 172.25.2.7		#主机ip
http.port: 9200			#http服务端口
cluster.initial_master_nodes: ["server7"]

1.

ELF监控kubernetes容器日志 elk日志监控平台_vim_02

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_03

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_04

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_05

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_06

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_07

因为此时ser8和ser9还没有进行配置,所以这里的初始化master,只能是ser7

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_08


修改系统限制

# vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
elasticsearch 	   - 	nofile 	65536
elasticsearch	   -	nproc 	4096
# vim jvm.options
-Xms1g
-Xmx1g
Xmx设置不超过物理RAM的50%,以确保有足够的物理RAM留给内
核文件系统缓存。但不要超过32G。



ELF监控kubernetes容器日志 elk日志监控平台_Elastic_09

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_10

2.

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_11

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_12


ELF监控kubernetes容器日志 elk日志监控平台_vim_13


ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_14

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_15

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_16


修改systemd启动文件

# vim /usr/lib/systemd/system/elasticsearch.service
[Service]		#在service语句块下添加
LimitMEMLOCK=infinity
# systemctl daemon-reload
# systemctl start elasticsearch

ELF监控kubernetes容器日志 elk日志监控平台_vim_17

启动服务会花费一定时间,不要着急

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_18


ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_19


关闭swap分区

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_20

vim /etc/fstab

ELF监控kubernetes容器日志 elk日志监控平台_vim_21

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_22

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_23

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_24


日志文件的位置

ELF监控kubernetes容器日志 elk日志监控平台_vim_25


查看服务开启的9200端口

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_26

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_27


至此,ser7的es安装完成。

head插件的安装过程

ElasticSearch-head是一款能连接ElasticSearch搜索引擎,并提供可视化的操作页面对ElasticSearch搜索引擎进行各种设置和数据检索功能的管理插件,如在head插件页面编写RESTful接口风格的请求,就可以对ElasticSearch中的数据进行增删改查、创建或者删除索引等操作。

类似于使用navicat工具连接MySQL这种关系型数据库,对数据库做操作。

下载elasticsearch-head插件

# wget https://github.com/mobz/elasticsearch-head/archive/master.zip
# unzip master.zip

head插件本质上是一个nodejs的工程,因此需要安装node:
# wget https://mirrors.tuna.tsinghua.edu.cn/nodesource/rpm_9.x/el/7/x86_64/nodejs-9.11.2-1nodesource.x86_64.rpm
# rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm
# node -v    查看node的版本
# npm -v	查看npm的版本

1.

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_28

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_29

2.进入解压后的目录

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_30


3.安装nodejs

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_31

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_32

4.

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_33


更换npm源安装(package.json文件中的依赖等)

# cd elasticsearch-head-master/
# npm install  --registry=https://registry.npm.taobao.org

修改ES主机ip和端口
# vim _site/app.js
"http://172.25.2.7:9200"
启动head插件
# npm run start &

ELF监控kubernetes容器日志 elk日志监控平台_vim_34

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_35

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_36


启动head

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_37


此时可以访问到,但是集群状态值是非健康的

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_38


修改ES跨域主持

# vim /etc/elasticsearch/elasticsearch.yml
http.cors.enabled: true	# 是否支持跨域
http.cors.allow-origin: "*"	# *表示支持所有域名
重启ES服务
# systemctl restart elasticsearch.service

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_39

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_40

ELF监控kubernetes容器日志 elk日志监控平台_vim_41


访问head插件服务,修改elasticsearch-head下Gruntfile.js文件,默认监听在9100端口

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_42


测试创建索引

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_43

ELF监控kubernetes容器日志 elk日志监控平台_vim_44


查看es状态

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_45

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_46


灰色表示没有副本

为集群添加ser8和ser9节点

添加的方法和ser7安装es的步骤基本一致,都需要安装软件包然后进行修改配置文件,限制文件,关闭swap分区等,这里仅用ser8做示范,ser9不再赘述。

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_47

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_48

ELF监控kubernetes容器日志 elk日志监控平台_vim_49

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_50

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_51

ELF监控kubernetes容器日志 elk日志监控平台_ELF监控kubernetes容器日志_52

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_53

ELF监控kubernetes容器日志 elk日志监控平台_vim_54

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_55

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_56

ELF监控kubernetes容器日志 elk日志监控平台_elasticsearch_57


ELF监控kubernetes容器日志 elk日志监控平台_vim_58

ELF监控kubernetes容器日志 elk日志监控平台_Elastic_59