docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)

news/2024/10/22 5:27:52/

EFK日志系统搭建

  • EFK日志系统介绍
  • 功能需求
  • 搭建elasticsearch集群
    • 规划
    • 前提
    • 部署
    • 核对
    • 证书及权限

EFK日志系统介绍

Elasticsearch 是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。

Beats 是数据采集的得力工具。将 Beats 和您的容器一起置于服务器上,或者将 Beats 作为函数加以部署,然后便可在 Elastisearch 中集中处理数据。如果需要更加强大的处理性能,Beats 还能将数据输送到 Logstash 进行转换和解析。

Kibana 核心产品搭载了一批经典功能:柱状图、线状图、饼图、旭日图,等等。不仅如此,您还可以使用 Vega 语法来设计独属于您自己的可视化图形。所有这些都利用 Elasticsearch 的完整聚合功能。

Elasticsearch 通常与 Kibana 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 允许你通过 web 界面来浏览 Elasticsearch 日志数据。


注意:由于全篇字稿较长,做了如下拆分
docker一键部署EFK系统(elasticsearch filebeat kibana metricbeat es-head)
【EFK日志系统】docker一键部署kibana、es-head
【EFK日志系统】docker一键部署filebeat、metricbeat
【EFK日志系统】在kibana操作索引模板、生命周期、管道等

功能需求

现阶段我们有11台服务器,需要对应用、系统、中间件的日志进行追踪监控,通过filebeat、metricbeat采集,es检索,kibana可视化展示整套流程来监控日志、分析日志

  1. 一键部署各个服务
  2. 全流程有密码访问控制
  3. 日志信息结构化处理,精简日志
  4. es集群化配置,一主两从,同时接收

在这里插入图片描述

elasticsearch_31">搭建elasticsearch集群

规划

ip为假想值

es01:172.23.165.185
es02:172.23.165.186
es03:172.23.165.187

前提

1.在官网查看您想要安装使用的版本,拉取该版本
elasticsearch官网

在服务器执行命令即可,我们这里选取的是7.10.0版本

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0

2.修改内存映射数量
在 /etc/sysctl.conf 文件中添加或修改max_map_count:

vm.max_map_count=262144

退出而后执行

sudo sysctl -p

3.创建网络(所有节点在同一网络)

docker network create es-net

查看该网络下的服务

docker network inspect es-net

部署

首先我们在172.23.165.185合适的位置创建es01文件夹

mkdir es01
cd es01

1.编写docker-compose.yml

version: '3'
services:elasticsearch:build:context: .dockerfile: Dockerfileimage: docker.elastic.co/elasticsearch/elasticsearch:7.10.0container_name: elasticsearchrestart: alwaysenvironment:- node.name=es-node-1- network.publish_host=172.23.165.185- network.host=0.0.0.0- discovery.seed_hosts=172.23.165.185,172.23.165.186,172.23.165.187- cluster.initial_master_nodes=172.23.165.185,172.23.165.186,172.23.165.187- cluster.name=es-cluster- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms512m -Xmx512m"ulimits:memlock:soft: -1hard: -1#  volumes:#- ./data:/usr/share/elasticsearch/data:rw#- ./config:/usr/share/elasticsearch/config:rw#- ./plugins:/usr/share/elasticsearch/plugins:rw#- ./logs:/usr/share/elasticsearch/logs:rwports:- 9200:9200- 9300:9300networks:- es-net
networks:es-net:external: true

2.编写Dockerfile

FROM docker.elastic.co/elasticsearch/elasticsearch:7.10.0#COPY ./elasticsearch.yml /usr/share/elasticsearch/config/

3.一键启动

docker-compose up -d
或者 docker -f docker-compose.yml up -d

执行后docker ps查看容器是否启动且正常
在这里插入图片描述

4.copy容器文件

容器正常后执行如下

docker cp -a elasticsearch:/usr/share/elasticsearch/config/ .
docker cp -a elasticsearch:/usr/share/elasticsearch/data .
docker cp -a elasticsearch:/usr/share/elasticsearch/logs .
docker cp -a elasticsearch:/usr/share/elasticsearch/plugins .

5.修改elasticsearch.yml

进入config目录编辑elasticsearch.yml

network.host: 0.0.0.0path.data: /usr/share/elasticsearch/data
path.logs: /usr/share/elasticsearch/logshttp.cors.enabled: true
http.cors.allow-origin: "*"#xpack.security.enabled: true
#xpack.security.transport.ssl.enabled: true
#xpack.security.transport.ssl.verification_mode: certificate
#xpack.security.transport.ssl.keystore.path: /usr/share/elasticsearch/config/elastic-certificates.p12
#xpack.security.transport.ssl.truststore.path: /usr/share/elasticsearch/config/elastic-certificates.p12
#xpack.security.transport.ssl.keystore.type: PKCS12
#xpack.security.transport.ssl.truststore.type: PKCS12

6.将Dockerfile的 # 去掉

COPY ./elasticsearch.yml /usr/share/elasticsearch/config/

7.将docker-compose.yml的 # 去掉

  - ./data:/usr/share/elasticsearch/data:rw- ./config:/usr/share/elasticsearch/config:rw- ./plugins:/usr/share/elasticsearch/plugins:rw- ./logs:/usr/share/elasticsearch/logs:rw

同时修改image
即注释原先的,新增镜像,“:”前是名字,后是版本号

#image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
image: elasticsearch-7.10.0:test01

然后重新启动
执行docker-compose up -d


然后在其他的服务器上重复这样的操作
只不过需要注意将其中的节点名称和hosts替换
举例
environment:
- node.name=es-node-1
- network.publish_host=172.23.165.185

node.name=es-node-2或者3
network.publish_host=172.23.165.186或者7

核对

可以执行命令或者在浏览器输入url查看集群的健康信息(注意替换你自己的ip)

1.查看单个节点的信息
终端输入:curl -X GET “http://172.23.165.185:9200”
浏览器输入:http://172.23.165.185:9200
在这里插入图片描述

2.查看集群节点健康情况
终端输入:curl -X GET “http://172.23.165.185:9200/_cluster/health?pretty”
浏览器输入:http://172.23.165.185:9200/_cluster/health?pretty

在这里插入图片描述

3.查看节点状态和信息
终端输入:curl -X GET “http://172.23.165.185:9200/_cat/nodes?v&pretty”
浏览器输入:http://172.23.165.185:9200/_cat/nodes?v&pretty

在这里插入图片描述
4.查看集群更详细的信息
终端输入:curl -X GET “http://172.23.165.185:9200/_cluster/state?pretty”
5.查看节点简单的健康视图
终端输入:curl -X GET “http://172.23.165.185:9200/_cat/health?v&pretty”


如果只是看一看玩一玩,至此就可以结束了


证书及权限

进入任意一台es容器执行下列命令

docker exec -it elasticsearch bash

bin/elasticsearch-certutil ca一路回车
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12一路回车
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password 一路回车
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password一路回车exit退出而后,cd config将p12复制导出来,再将其复制到其他节点的config目录下
(也就是es集群三个节点用的都是这两个.p12文件)
docker cp elasticsearch:/usr/share/elasticsearch/config/elastic-stack-ca.p12 .
docker cp elasticsearch:/usr/share/elasticsearch/config/elastic-certificates.p12 .
docker cp elasticsearch:/usr/share/elasticsearch/config/elasticsearch.keystore .在config目录下设置权限
chmod 755 elastic-stack-ca.p12
chmod 755 elastic-certificates.p12
chmod 755 elasticsearch.keystore
chmod 755 elasticsearch.yml

还记得我们elasticsearch.yml中注释掉的部分吗?
取消注释

执行docker restart elasticsearch

然后进入容器
执行下列命令,切记保存

在任意一个节点执行(推荐自动)
./bin/elasticsearch-setup-passwords auto   自动
./bin/elasticsearch-setup-passwords interactive   交互

至此es集群已经部署完成

现在访问是需要密码登录的

在浏览器输入你刚刚生成的密码即可登录
用户名是elastic
在这里插入图片描述
此外你在终端查看信息
需要加上用户名密码

如curl -u elastic:密码 -X GET “http://172.23.165.185:9200/”


感谢支持!!!


http://www.ppmy.cn/news/1465864.html

相关文章

View->Bitmap缩放到自定义ViewGroup的任意区域(Matrix方式绘制Bitmap)

Bitmap缩放和平移 加载一张Bitmap可能为宽高相同的正方形,也可能为宽高不同的矩形缩放方向可以为中心缩放,左上角缩放,右上角缩放,左下角缩放,右下角缩放Bitmap中心缩放,包含了缩放和平移两个操作&#xf…

让低代码平台插上AI的翅膀 - 记开源驰骋AI平台升级

让低代码系统插上AI的翅膀——驰骋低代码开发平台引领新时代 在当今日新月异的科技世界中,人工智能(AI)已经成为各个行业不可或缺的一部分。从制造业的自动化生产到金融行业的智能风控,再到医疗领域的精准诊断,AI技术…

NoSQL是什么?NoSQL数据库存在SQL注入攻击?

一、NoSQL是什么? NoSQL(Not Only SQL)是一种非关系型数据库的概念。与传统的关系型数据库不同,NoSQL数据库使用不同的数据模型来存储和检索数据。NOSQL数据库通常更适合处理大规模的非结构化和半结构化数据,且能够…

深度解析:从概念到变革——Transformer大模型的前世今生以及大模型预备知识讲解[知存科技]

深度解析:从概念到变革——Transformer大模型的前世今生 点击:知存科技相关课程推荐 知存科技是全球领先的存内计算芯片企业。针对AI应用场景,在全球率先商业化量产基于存内计算技术的神经网络芯片。凭借颠覆性的技术创新,知存科…

STM32 定时器与PWM的LED控制

学习目标: 1. 使用定时器的某一个通道控制LED周期性亮灭; 2. 采用定时器PWM模式,让 LED 以呼吸灯方式渐亮渐灭。 一、定时器 1、STM32定时器介绍 STMicroelectronics是STM32微控制器中的重要块,具有丰富的外设和功能&#xff0…

宝塔面板搭建thinkphp(fastadmin)项目注意事项

thinkphp宝塔面板部署时可能遇到的问题总结 设置静态伪静态为thinkphp模版数据库要同步代码要全部上传,不要拉下重要文件,原有的ignore文件没有上传thinkphp和vendor文件夹,简单处理的话一起放入git库,push上去权限问题会导致打不开,注意要用www用户775权限fastadmin项目php需…

打造云计算时代的仿真软件

2024年5月25日,北京云道智造科技有限公司(下称“云道智造”)在深圳成功举办了2024新品发布会暨用户大会。来自全国各地的近500位客户和合作伙伴代表齐聚一堂,共同见证了云道智造新产品的隆重发布,交流分享了仿真领域的…

chrome 浏览器历史版本下载

最近做一个项目,要使用到chrome浏览器比较久远的版本,在网上查找资源时,发现chrome比较老的版本的安装包特别难找,几经寻找,总算找到,具体方法如下 打开百度,搜索关键字【chrome版本号‘浏览迷’】,例如“chrome41浏览迷”,找到“全平台”开头的链接&am…