ELK(一)使用docker搭建elasticsearch
文章目录
- 为什么要搭建ELK
- ELK Stack的介绍
- ELK Stack的架构图
- es介绍
- 基本概念
- es基础环境搭建
- docker部署es
为什么要搭建ELK
介绍: ELK是es,logstash和kibana三者的组合,他们是同一家公司开发的,在企业中经常用于进行日志采集
为啥搭建ELK呢?
- 开发人员在排查故障的时候经常需要看日志,在有些公司开发人员是没有权限登录上服务器的,有些可以登录,但是权限很少,如果某个业务,部署了很多的服务器,日志也会很多,想看日志的时候,为了方便开发人员,部署ELK
- 对于运维人员来讲,虽然可以登录服务器查看日志,但是相比使用grep,sed等Linux命令查看,ELK会更加的直观。随着服务器越来越多,日志类型,等等越来越多,ELK的优势就显示出来了
ELK Stack的介绍
ELK Stacks是一个技术栈的组合,分别是Elasticsearch、Logstash、Kibana
- es:它的官方描述是,es是一个Restful风格的搜索和数据分析引擎,es是ELK Stack的核心,存储着我们的数据,也可以理解为一个分布式的数据库
- logstash:logstash是一个管道,是服务端的数据处理管道,它可以从同时从多个来源采集数据
- Kibana:Kibana是仪表盘,进行数据的可视化
- Beans:轻量级采集器的平台,从边缘机器向 Logstash 和 Elasticsearch 发送数据。
- FileBean:轻量级的日志采集器
ELK Stack的架构图
数据输入到logstash
中,然后logstash
进行处理后分发给es,然后es进行处理,然后kibana进行数据的可视化。
logstash里面有3个关卡,Input,Filter和Output
- Input:输入,输出数据可以是Stdin、File、TCP、Redis、Syslog等。
- Filter:过滤,将日志格式化。有丰富的过滤插件:Grok正则捕获、Date时间处理、Json编解码、Mutate数据修改等。
- Output:输出,输出目标可以是Stdout、File、TCP、Redis、ES等。
es介绍
es博主没有深入研究,据说es内容非常多,这里我先介绍一下基本概念和基础环境搭建
基本概念
- Node:运行单个ES实例的服务器
- Cluster:一个或多个节点构成集群 ,一般会配置成奇数,防止脑裂的问题
- Index:索引是多个文档的集合
- Document:Index里每条记录称为Document,若干文档构建一个Index
- Type:一个Index可以定义一种或多种类型,将Document逻辑分组
- Field:ES存储的最小单元
- Shards:ES将Index分为若干份,每一份就是一个分片 ,每个分片都在不同的node上,它也是一个提高并发的关键
- Replicas:Index的一份或多份副本
类比对应关系
ES | MySQL |
---|---|
Index | DB |
Type | Table |
Document | Row |
Field | Column |
es基础环境搭建
首先把SElinux
关闭,然后清空iptables
,我们自己编写一条iptables
链,允许我们局域网上的主机可以进行通信,然后还要使用ntp
进行时间同步,因为我们查看日志很多时候都是根据时间查的,所以配置这几台es服务器时间同步。
docker部署es
基础环境安装
yum -y install gcc
yum -y install gcc-c++
安装docker的依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
安装docker
yum -y install docker-ce
启动docker
systemctl start docker
查看docker系统版本
[root@lvs roles]# docker version
Client: Docker Engine - CommunityVersion: 19.03.8API version: 1.40Go version: go1.12.17Git commit: afacb8bBuilt: Wed Mar 11 01:27:04 2020OS/Arch: linux/amd64Experimental: falseServer: Docker Engine - CommunityEngine:Version: 19.03.8API version: 1.40 (minimum version 1.12)Go version: go1.12.17Git commit: afacb8bBuilt: Wed Mar 11 01:25:42 2020OS/Arch: linux/amd64Experimental: falsecontainerd:Version: 1.2.13GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429runc:Version: 1.0.0-rc10GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dddocker-init:Version: 0.18.0GitCommit: fec3683
配置docker镜像加速,这里每个人的都是不一样的,直接使用菜鸟教程那个:菜鸟教程镜像加速教学
[root@lvs roles]# sudo mkdir -p /etc/docker
[root@lvs roles]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {> "registry-mirrors": ["https://0lmclr63.mirror.aliyuncs.com"]
> }
> EOF
{"registry-mirrors": ["https://0lmclr63.mirror.aliyuncs.com"]
}
重新启动docker并拉取es镜像
[root@lvs roles]# sudo systemctl daemon-reload
[root@lvs roles]# sudo systemctl restart docker
[root@lvs roles]# docker pull elasticsearch:7.2.0
7.2.0: Pulling from library/elasticsearch
8ba884070f61: Pull complete
2211b14f8b24: Pull complete
617ccdb47f3d: Pull complete
915ee6b2c338: Pull complete
b414b7f29a7d: Pull complete
547bfdd35d62: Pull complete
8353a2ed248c: Pull complete
Digest: sha256:84b5bc2fd15b0f1f5bf78c8c6ee34b6ae5a46ab81be1c2cfa678eea0c6457a46
Status: Downloaded newer image for elasticsearch:7.2.0
docker.io/library/elasticsearch:7.2.0
[root@lvs roles]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elasticsearch 7.2.0 0efa6a3de177 10 months ago 861MB
查找Elasticsearch启动文件,把Jvm内存的1G改成512m,
[root@lvs roles]# find /var/lib/docker -name jvm.options
/var/lib/docker/overlay2/f71eb89609a63a340a587968d11bdfc01f4deb1461811d2cc9445c69b4ecc3f7/diff/usr/share/elasticsearch/config/jvm.options
[root@lvs roles]# vim /var/lib/docker/overlay2/f71eb89609a63a340a587968d11bdfc01f4deb1461811d2cc9445c69b4ecc3f7/diff/usr/share/elasticsearch/config/jvm.options
使用docker创建es容器在后台运行并查看es进程
[root@lvs roles]# docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.2.0
a3bddb30f86ae0d1986cae3d58c272ae703bfa7402a2797304a2477252ee7e8b
[root@lvs roles]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3bddb30f86a elasticsearch:7.2.0 "/usr/local/bin/dock…" 10 seconds ago Up 9 seconds 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp es
docker inspect es
查看IP地址
访问测试
[root@lvs roles]# curl 172.17.0.2:9200
{"name" : "a3bddb30f86a","cluster_name" : "docker-cluster","cluster_uuid" : "h-RTgPL8SJGEQBVeAuJ7Rw","version" : {"number" : "7.2.0","build_flavor" : "default","build_type" : "docker","build_hash" : "508c38a","build_date" : "2019-06-20T15:54:18.811730Z","build_snapshot" : false,"lucene_version" : "8.0.0","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}
查看集群节点(这里还没有配置集群,介绍一下)
[root@lvs roles]# curl -XGET 'http://172.17.0.2:9200/_cat/nodes?pretty'
172.17.0.2 35 46 0 0.03 0.05 0.04 mdi * a3bddb30f86a
查看集群健康状态
[root@lvs roles]# curl -i -XGET http://172.17.0.2:9200/_cluster/health?pretty
HTTP/1.1 200 OK
content-type: application/json; charset=UTF-8
content-length: 467{"cluster_name" : "docker-cluster","status" : "green","timed_out" : false,"number_of_nodes" : 1,"number_of_data_nodes" : 1,"active_primary_shards" : 0,"active_shards" : 0,"relocating_shards" : 0,"initializing_shards" : 0,"unassigned_shards" : 0,"delayed_unassigned_shards" : 0,"number_of_pending_tasks" : 0,"number_of_in_flight_fetch" : 0,"task_max_waiting_in_queue_millis" : 0,"active_shards_percent_as_number" : 100.0
}
显示green,说明非常健康
- green:所有的主分片和副本分片都已分配。你的集群是 100% 可用的。
- yellow:所有的主分片已经分片了,但至少还有一个副本是缺失的。不会有数据丢失,所以搜索结果依然是完整的。不过,你的高可用性在某种程度上被弱化。如果 更多的 分片消失,你就会丢数据了。把 yellow 想象成一个需要及时调查的警告。
- red:至少一个主分片(以及它的全部副本)都在缺失中。这意味着你在缺少数据:搜索只能返回部分数据,而分配到这个分片上的写入请求会返回一个异常。
- green/yellow/red 状态是一个概览你的集群并了解眼下正在发生什么的好办法。
ELK(一)使用docker搭建elasticsearch相关推荐
- Docker 搭建elasticsearch 7.6.x集群
Docker 搭建elasticsearch 7.6.x集群 文章目录 拉取镜像 设置Elasticsearch挂载目录 编写elasticsearch.yml配置文件 node-1 node-2 n ...
- 用Docker搭建Elasticsearch集群
用Docker搭建Elasticsearch集群 对于用Docker搭建分布式Elasticsearhc集群的一个介绍,以及一些实施中遇到问题的总结 搜索服务简述 结合业务的场景,在目前的商品体系需要 ...
- docker 添加端口映射_苟且偷生的程序猿没法摸鱼了,从docker搭建elasticsearch集群开始学习...
最近刚换了公司,然后公司刚好使用的docker.而本人作为一个石锤的搬砖员,之前只知道搬砖们,对于这些东西确实没学过.今天在本地使用docker搭建elasticsearch集群,记录下过程,而且el ...
- Docker搭建Elasticsearch方法及启动后服务自动关闭的问题
太长不看,一句话总结 内存太小,启动命令中添加参数修改虚拟机大小即可 docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e " ...
- Docker搭建ElasticSearch集群
Docker搭建ElasticSearch集群 一.环境准备 Linux Verison(7.9) VMware(16) Docker(20.10.16) ElasticSearch(7.17.1) ...
- 基于 docker 搭建 elasticsearch:5.6.8 分布式集群环境
文章目录 1. 目录结构 2. 前置配置 3. 单机版 es 集群搭建 4. es 客户端工具安装 5. 通过 api 操作索引 5.1 创建索引 5.2 创建 index 对应的 mapping 5 ...
- 使用Docker搭建Elasticsearch集群环境
本篇文章首发于头条号单机如何搭建Elasticsearch集群?使用容器技术快速构建集群环境,欢迎关注头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_te ...
- 基于Docker搭建Elasticsearch集群
一.环境搭建 SpringBoot整合es时使用的集群环境,如果不搭建集群使用SpringBoot整合时会报错:None of the configured nodes are available 我 ...
- Docker部署Elasticsearch及安装后自动关闭的问题
Docker搭建Elasticsearch方法 前往dockerhub官网:dockerhub 可查看elasticsearch相应版本 拉取镜像 选取一个版本拉取镜像,如docker pull el ...
最新文章
- linux 终端 渐变色,iOS开发——UI篇文字渐变效果:图层中的mask属性
- 异常信息配置文件已被另一个程序更改_抢先目睹:SpringBoot2.4配置文件加载机制大变化
- OPENCV-2 学习笔记
- 太快了,太变态了:什么会影响Java中的方法调用性能?
- Dubbo(十二)dubbo的服务版本配置以及本地存根使用介绍
- asp 退出登录修改cookie能进入后台_某logCMS的代码审计:越权到后台getshell
- Linux下Nginx+多Tomcat负载均衡实现详解
- DPad down是哪个键_投影仪前3甲PK:双十一坚果J7S和当贝D3X投影仪选择哪个
- Delphi 3D Glscene安装
- 安装sql server出现配置系统未能初始化
- 电视盒子线刷固件教程B860AV2.1-A-M-T版
- java导出excel 图片_将图片导出到Excel中(poi导出)
- cesium加载天地图的卫星影像图
- 自主导航与路径规划无人机研究现状
- 移动电源给路由器供电
- 安全我知道 世界顶尖防火墙逐个看(转)
- 美国国家学术出版社所有PDF图书开放免费下载
- K_A16_001 基于STM32等单片机驱动HX711称重模块 串口与OLED0.96双显示
- 阿里终于出手了!“00后职校女生自学 低代码 月薪破万” 背后真相,细思极恐...
- “蔚来杯“2022牛客暑期多校训练营7 L Maximum Range(强连通缩点+网络流输出方案)