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节点
|