企业运维实战--ELK日志分析平台之elasticsearch实战

ELK日志分析平台-简介

ELK由ElasticSearch、Logstash和Kiabana三个开源工具组成:

1)ElasticSearch是一个基于Lucene的开源分布式搜索服务器。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 在elasticsearch中,所有节点的数据是均等的。
2)Logstash是一个完全开源的工具,它可以对你的日志进行收集、过滤、分析,支持大量的数据获取方法,并将其存储供以后使用(如搜索)。说到搜索,logstash带有一个web界面,搜索和展示所有日志。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
3)Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

ELK整体解决方案

Logstash是一个ETL工具,负责从每台机器抓取日志数据,对数据进行格式转换和处理后,输出到Elasticsearch中存储。

Elasticsearch是一个分布式搜索引擎和分析引擎,用于数据存储,可提供实时的数据查询。

Kibana是一个数据可视化服务,根据用户的操作从Elasticsearch中查询数据,形成相应的分析结果,以图表的形式展现给用户。

在这里还用到redis作为缓存使用。通过logstash搜集日志数据存入redis,再通过logstash对数据格式转化处理后储存到Elasticsearch中。

安装elasticsearch

删除之前的jdk

rpm -qa |grep jdk
rpm -e jdk1.8-1.8.0_171-fcs.x86_64
which java

安装rpm包,7.6.1版本后自带jdk

rpm -ivh elasticsearch-7.6.1-x86_64.rpm

编辑主配置文件

cd /etc/elasticsearch/
vim elasticsearch.yml


cluster.name: my-es # 集群名称
node.name: server1 # 主机名需要解析
path.data: /var/lib/elasticsearch #数据目录
path.logs: /var/log/elasticsearch #日志目录
bootstrap.memory_lock: true #锁定内存分配
network.host: 172.25.76.1 # 监听端口
http.port: 9200 #httpd服务端口
discovery.seed_hosts: ["server1", "server2", "server3"] #包括集群节点
cluster.initial_master_nodes: ["server1", "server2", "server3"] #当master的节点

启动服务,会报错

systemctl start elasticsearch.service

查看日志

cat /var/log/elasticsearch/my-es.log

在这里插入图片描述系统不让用1G内存

修改系统限制

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。

添加

vim /usr/lib/systemd/system/elasticsearch.service


LimitMEMLOCK=infinity

重启服务

systemctl daemon-reload
systemctl restart elasticsearch.service

查看端口9200

netstat -antlp

在这里插入图片描述

网页访问172.25.76.1:9200
在这里插入图片描述

elasticsearch集群部署

准备两台虚拟机,内存至少为2G

server23虚拟机,部署操作与master相同,
共同执行的操作有:

rpm -ivh elasticsearch-7.6.1-x86_64.rpm
cd /etc/elasticsearch/
# 此处主配置文件需要修改node.name network.host为本机,其余与master保持一致
vim elasticsearch.yml

# 添加系统限制
vim /etc/security/limits.conf


vim /usr/lib/systemd/system/elasticsearch.service
systemctl daemon-reload
启动服务并开机自启
systemctl start elasticsearch.service
systemctl enable elasticsearch.service 

网页测试访问同上:

172.25.9.2:9200
172.25.9.3:9200

为集群添加监控管理

监控1

宿主机podman上传镜像并拉起容器

podman load -i cerebro.tar
podman images
podman run -d --name cerbro -p 9000:9000 lmenezes/cerebro

在这里插入图片描述

网页访问:172.25.76.250:9000

输入需要监控的ip和端口号
例: http://172.25.76.1:9200
在这里插入图片描述

监控2

虚拟机需要能够上网,master端
安装rpm包

rpm -ivh nodejs-9.11.2-1nodesource.x86_64.rpm

解压准备好的master

yum install -y unzip bzip2
unzip master.zip

解压后进入,更换npm源

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

查看cnpm版本

cnpm -v

在这里插入图片描述

安装

cnpm install

vim elasticsearch-head-master/_site/app.js

将localhost 改为本机ip

在这里插入图片描述

启动插件

cnpm run start &

没有别的节点
在这里插入图片描述

编辑主配置文件

cd /etc/elasticsearch/
vim elasticsearch.yml

http.cors.enabled: true # 是否支持跨域 
http.cors.allow-origin: "*" # *表示支持所有域名

重启服务

systemctl restart elasticsearch.service

开放9100端口供监控访问查看

http://172.25.9.1:9100/
在这里插入图片描述

可能遇到的问题:集群无法加入,原因为cluster uuid不同

解决方案:重新给定集群名字,删除数据目录

rm -fr /var/lib/elasticsearch/*

重启服务

systemctl restart elasticsearch.service

网页访问ip:9200 查看各个ip的cluster uuid是否一致

或者直接我们可以在真机rhel8 里使用podman容器运行 会免去此前的很多步骤

podman load -i elasticsearch-head.tar 
podman run -d -p 9100:9100 mobz/elasticsearch-head:5

http://172.25.76.250:9100 进入后将 http:/localhost:9200/ 改为监控节点即可
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lll_cf

喜欢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值