Linux企业运维——ELK日志分析平台(上)安装与配置、ES图形化管理插件
一、ELK简介
Elasticsearch 是一个开源的分布式搜索分析引擎,建立在一个全文搜索引擎库 Apache Lucene基础之上。
为了解决Lucene使用时的繁复性,于是Elasticsearch便应运而生。它使用 Java 编写,内部采用 Lucene 做索引与搜索,但是它的目标是使全文检索变得更简单,简单来说,就是对Lucene 做了一层封装,它提供了一套简单一致的 RESTful API 来帮助我们实现存储和检索。

Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎:
- 一个分布式的实时文档存储,每个字段 可以被索引与搜索
- 一个分布式实时分析搜索引擎
- 能胜任上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据
ELK基础模块:
模块 | 作用 |
---|
cluster | 管理集群状态,维护集群层面的配置信息 | alloction | 封装了分片分配相关的功能和策略 | discovery | 发现集群中的节点,以及选举主节点 | gateway | 对收到master广播下来的集群状态数据的持久化存储 | indices | 管理全局级的索引设置 | http | 允许通过JSON over HTTP的方式访问ES的API | transport | 用于集群内节点之间的内部通信 | engine | 封装了对Lucene的操作及translog的调用 |
ELK应用场景:
- 信息检索
- 日志分析
- 业务数据分析
- 数据库加速
- 运维指标监控
二、ELK的安装与配置
关掉server2、server3 在server4上关闭并禁用httpd服务,卸载之前安装的jdk,因为我们要安装的ELK7.6.1是自带jdk的 server5关闭并禁用httpd服务  server4中docker没有存在的镜像和容器  真实主机开启虚拟机server6  可以看到现在运行了3台虚拟机,确保3台虚拟机内存至少1G,我们这里给2G,否则用swap分区速度慢  在真实主机上分别为现在的三台虚拟机配置地址解析  真实主机将ELK安装包发送给server4  server4收到ELK包后进行安装  安装完成后开启elasticsearch服务,看到9200端口开启  server4进入/etc/elasticsearch目录下,编辑elasticsearch.yaml文件,配置集群名称和节点名称  设置任何主机都可访问,服务端口9200,集群中符合主机要求的节点为server4、5、6,主节点为server4  此处没有设定锁死,即没有配置 bootstrap.memory_lock: true 参数,否则需要修改系统配置 修改方法: 修改系统限制
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。
修改systemd启动文件
vim /usr/lib/systemd/system/elasticsearch.service
[Service]
LimitMEMLOCK=infinity
systemctl daemon-reload
systemctl start elasticsearch
编辑完elasticsearch.yaml配置文件后,重启elasticsearch服务  真实主机测试访问server4的9200端口,访问成功  禁用swap分区可以使使用效果更流畅,如果内存不够的话不禁止也可以   查看/var/log/elasticsearch/my-es.log日志文件 
三、ELK集群搭建
server4将ELK的安装包发送给server5和server6  server5和server6安装ELK  server4将本地配置好的elasticsearch.yml发送给server5和server6  server5将收到的配置文件的基本信息进行更改,将节点名称改为server5   server6也需要做相同的修改   server4、5、6重启elasticsearch服务    真实主机测试访问server5的9200端口,访问成功  再测试访问server5的9200端口,访问成功 
四、elasticsearch可视化
4.1、cerebro插件
真实主机安装podman(等同于docker)  真实主机加载并拉起cerebro镜像,映射服务到9000端口  网页访问本地9000端口,在页面输入需要监听的地址和端口,这里填入server4的  进入cerebro界面,点击nodes可以看到ES集群中3个节点的情况 
4.2、elasticsearch-head插件
真实主机将master.zip和nodejs包发送给server4  server4安装nodejs和unzip(用来解压master.zip)  使用unzip解压master.zip  server4切换到elasticsearch-head-master目录下,确保可以访问外网,由于npm速度慢,所以更换为cnpm源。  查看cnpm版本  安装bzip2(用于安装cnpm)  cnpm install 进行安装  进入到_site文件夹内,查看app.js  在代码中可以看到监控地址是本机的9200端口  使用cnpm run start & 运行head插件,运行在本地9100端口,再进入到/etc/elasticsearch/目录下编辑elasticsearch.yml文件  设置允许跨域访问  重启elasticsearch服务  网页访问server4的9100端口进入监控页面,输入server4的9200端口查看elasticsearch集群状态,前面有五角星代表是master节点 
|