ELK部署

部署ElasticSearch集群

1.拉取镜像及批量生成配置文件
  1. # 拉取镜像
  2. [root@VM-24-9-centos ~]# docker pull elasticsearch:7.14.2
  3. # 生成配置文件及目录
  4. for port in $(seq 1 4); \
  5. do \
  6. mkdir -p /data/elk/es/node-${port}/conf
  7. mkdir -p /data/elk/es/node-${port}/data
  8. mkdir -p /data/elk/es/node-${port}/plugins
  9. chmod 777 /data/elk/es/node-${port}/data
  10. touch /data/elk/es/node-${port}/conf/es.yml
  11. cat << EOF >>/data/elk/es/node-${port}/conf/es.yml
  12. cluster.name: jinx
  13. node.name: node${port}
  14. node.master: true
  15. node.data: true
  16. bootstrap.memory_lock: false
  17. network.host: 0.0.0.0
  18. http.port: 920${port}
  19. transport.tcp.port: 930${port}
  20. discovery.seed_hosts: ["81.70.118.191:9301","81.70.118.191:9302","81.70.118.191:9303","81.70.118.191:9304"]
  21. cluster.initial_master_nodes: ["node1","node2","node3","node4"]
  22. cluster.routing.allocation.cluster_concurrent_rebalance: 32
  23. cluster.routing.allocation.node_concurrent_recoveries: 32
  24. cluster.routing.allocation.node_initial_primaries_recoveries: 32
  25. http.cors.enabled: true
  26. http.cors.allow-origin: "*"
  27. discovery.zen.minimum_master_nodes: 2
  28. EOF
  29. done
2.批量创建容器及查看集群信息
  1. # 批量创建容器
  2. for port in $(seq 1 4); \
  3. do \
  4. docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
  5. -d -p 920${port}:920${port} -p 930${port}:930${port} \
  6. -e ES_MIN_MEM=128m \
  7. -e ES_MAX_MEM=2048m \
  8. -v /data/elk/es/node-${port}/conf/es.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  9. -v /data/elk/es/node-${port}/data/:/usr/share/elasticsearch/data/ \
  10. -v /data/elk/es/node-${port}/plugins/:/usr/share/elasticsearch/plugins \
  11. --name es-${port} \
  12. elasticsearch:7.14.2
  13. done
  14. # 查看单个节点信息
  15. [root@VM-24-9-centos ~]# curl http://81.70.118.191:9201/
  16. {
  17. "name" : "node1",
  18. "cluster_name" : "jinx",
  19. "cluster_uuid" : "Vjb7cu6fQ6y2-ZWk0YGIiQ",
  20. "version" : {
  21. "number" : "7.2.0",
  22. "build_flavor" : "default",
  23. "build_type" : "docker",
  24. "build_hash" : "508c38a",
  25. "build_date" : "2019-06-20T15:54:18.811730Z",
  26. "build_snapshot" : false,
  27. "lucene_version" : "8.0.0",
  28. "minimum_wire_compatibility_version" : "6.8.0",
  29. "minimum_index_compatibility_version" : "6.0.0-beta1"
  30. },
  31. "tagline" : "You Know, for Search"
  32. }
  33. # 查看集群信息
  34. [root@VM-24-9-centos ~]# curl http://81.70.118.191:9201/_cat/nodes?pretty
  35. 172.17.0.2 37 97 0 0.00 0.00 0.08 mdi * node1
  36. 172.17.0.4 35 97 0 0.00 0.00 0.08 mdi - node3
  37. 172.17.0.3 39 97 1 0.00 0.00 0.08 mdi - node2
  38. 172.17.0.6 34 97 1 0.00 0.00 0.08 mdi - node4

使用Nginx做集群负载均衡

1.获取镜像
  1. # 拉取镜像 此处我们拉取的是官方最新镜像,其它版本可以去DockerHub查询
  2. [root@VM-24-9-centos ~]# docker pull nginx
2.创建容器
  1. # 创建容器 第一个nginx是容器名,第二个nginx是镜像名
  2. [root@VM-24-9-centos ~]# docker run -d -p 9200:9200 --name nginx nginx
3.把容器内的配置文件等复制到容器外用于挂载
  1. # nginx的配置文件日志文件及默认的页面分别放于容器内的 /etc/nginx /usr/share/nginx/html /var/log/nginx 中,我们需要将其挂载到容器外部
  2. # 创建三个文件夹 conf html logs
  3. [root@VM-24-9-centos data]# mkdir -p /data/nginx/{conf.d,html,logs}
  4. # 将容器内的 nginx.conf配置文件和default.conf配置文件复制出来
  5. [root@VM-24-9-centos data]# docker cp nginx:/usr/share/nginx/html /data/nginx
  6. [root@VM-24-9-centos data]# docker cp nginx:/etc/nginx/nginx.conf /data/nginx
  7. [root@VM-24-9-centos data]# docker cp nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf.d/default.conf
  8. # 查看目录结构
  9. [root@VM-24-9-centos nginx]# cd /data/nginx
  10. [root@VM-24-9-centos nginx]# ll
  11. total 16
  12. drwxr-xr-x 2 root root 4096 Nov 16 10:48 conf.d
  13. drwxr-xr-x 2 root root 4096 Nov 16 10:48 html
  14. drwxr-xr-x 2 root root 4096 Nov 16 10:48 logs
  15. -rw-r--r-- 1 root root 648 Nov 2 23:01 nginx.conf
  16. # 在 conf.d 目录下再建一个 es.conf 配置文件用于做负载均衡
  17. [root@VM-24-9-centos conf]# vim /data/nginx/conf.d/es.conf
  18. upstream es{
  19. server 81.70.118.191:9201 weight=1;
  20. server 81.70.118.191:9202 weight=1;
  21. server 81.70.118.191:9203 weight=1;
  22. }
  23. server {
  24. listen 9200;
  25. server_name localhost;
  26. #charset koi8-r;
  27. #access_log logs/host.access.log main;
  28. location / {
  29. proxy_pass http://es;
  30. # root html;
  31. # index index.html index.htm;
  32. }
  33. error_page 500 502 503 504 /50x.html;
  34. location = /50x.html {
  35. root html;
  36. }
  37. }
4.删除之前的容器,然后创建新的容器把目录挂载上去
  1. # 停止容器
  2. [root@VM-24-9-centos nginx]# docker stop nginx
  3. nginx
  4. # 删除容器
  5. [root@VM-24-9-centos nginx]# docker rm nginx
  6. nginx
  7. # 创建新的容器 --privileged=true 容器内部对挂载的目录拥有读写等特权
  8. docker run -d -p 9200:9200 --name nginx_9200 \
  9. -v /data/nginx/html:/usr/share/nginx/html \
  10. -v /data/nginx/logs:/var/log/nginx \
  11. -v /data/nginx/conf.d:/etc/nginx/conf.d \
  12. -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
  13. --privileged=true \
  14. nginx
5.访问负载均衡配置的地址查看是否成功
  1. [root@VM-24-9-centos conf]# curl http://81.70.118.191:9200/
  2. {
  3. "name" : "node3",
  4. "cluster_name" : "jinx",
  5. "cluster_uuid" : "5aRGIwI0T-qHks6vXzRNQQ",
  6. "version" : {
  7. "number" : "7.14.2",
  8. "build_flavor" : "default",
  9. "build_type" : "docker",
  10. "build_hash" : "6bc13727ce758c0e943c3c21653b3da82f627f75",
  11. "build_date" : "2021-09-15T10:18:09.722761972Z",
  12. "build_snapshot" : false,
  13. "lucene_version" : "8.9.0",
  14. "minimum_wire_compatibility_version" : "6.8.0",
  15. "minimum_index_compatibility_version" : "6.0.0-beta1"
  16. },
  17. "tagline" : "You Know, for Search"
  18. }

部署ElasticSearch-Head

​ ElasticSearch-Head是一个管理界面,可以查看ElasticSearch相关信息

1.拉取ElasticSearch-Head镜像
  1. [root@VM-24-9-centos ~]# docker pull mobz/elasticsearch-head:5
2.运行ElasticSearch-Head容器
  1. # 创建容器
  2. [root@VM-24-9-centos ~]# docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
  3. # pc端访问 IP:9100 即可用管理工具查看集群信息了

部署Kibana

1.拉取镜像
  1. # 拉取镜像
  2. [root@VM-24-9-centos conf.d]# docker pull kibana:7.14.2
2.创建挂载目录
  1. # 创建挂载目录
  2. [root@VM-24-9-centos conf]# mkdir -p /data/elk/kibana/
  3. # 创建配置文件
  4. [root@VM-24-9-centos conf]# vim /data/elk/kibana/conf/kibana.yml
  5. server.name: kibana
  6. # kibana的主机地址 0.0.0.0可表示监听所有IP
  7. server.host: "0.0.0.0"
  8. # kibana访问es的URL
  9. elasticsearch.hosts: [ "http://81.70.118.191:9200" ]
  10. elasticsearch.username: 'kibana'
  11. elasticsearch.password: '123456'
  12. # 显示登陆页面
  13. xpack.monitoring.ui.container.elasticsearch.enabled: true
  14. # 语言
  15. i18n.locale: "zh-CN"
  16. server.publicBaseUrl: "http://81.70.118.191:9200"
3.运行容器
  1. [root@VM-24-9-centos conf]# docker run -d -p 5601:5601 --privileged=true --name=kibana -v/data/elk/kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.2.0

Centos8 Docker部署ElasticSearch集群的更多相关文章

  1. Docker部署Elasticsearch集群

    http://blog.sina.com.cn/s/blog_8ea8e9d50102wwik.html Docker部署Elasticsearch集群 参考文档: https://hub.docke ...

  2. 利用 docker 部署 elasticsearch 集群(单节点多实例)

    文章目录 1.环境介绍 2.拉取 `elasticserach` 镜像 3.创建 `elasticsearch` 数据目录 4.创建 `elasticsearch` 配置文件 5.配置JVM线程数量限 ...

  3. Centos8 部署 ElasticSearch 集群并搭建 ELK,基于Logstash同步MySQL数据到ElasticSearch

    Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装containerd.io # centos8默认使用podm ...

  4. 日志分析系统 - k8s部署ElasticSearch集群

    K8s部署ElasticSearch集群 1.前提准备工作 1.1 创建elastic的命名空间 namespace编排文件如下: elastic.namespace.yaml --- apiVers ...

  5. Docker部署Hadoop集群

    Docker部署Hadoop集群 2016-09-27 杜亦舒 前几天写了文章"Hadoop 集群搭建"之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Doc ...

  6. Azure vm 扩展脚本自动部署Elasticsearch集群

    一.完整过程比较长,我仅给出Azure vm extension script 一键部署Elasticsearch集群的安装脚本,有需要的同学,可以邮件我,我给你完整的ARM Template 如果你 ...

  7. 基于Docker部署ETCD集群

    基于Docker部署ETCD集群 关于ETCD要不要使用TLS? 首先TLS的目的是为了鉴权为了防止别人任意的连接上你的etcd集群.其实意思就是说如果你要放到公网上的ETCD集群,并开放端口,我建议 ...

  8. Docker部署zookeeper集群和kafka集群,实现互联

    本文介绍在单机上通过docker部署zookeeper集群和kafka集群的可操作方案. 0.准备工作 创建zk目录,在该目录下创建生成zookeeper集群和kafka集群的yml文件,以及用于在该 ...

  9. Elasticsearch使用系列-Docker搭建Elasticsearch集群

    Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...

随机推荐

  1. SpringBoot 如何进行限流?老鸟们都这么玩的!

    大家好,我是飘渺.SpringBoot老鸟系列的文章已经写了四篇,每篇的阅读反响都还不错,那今天继续给大家带来老鸟系列的第五篇,来聊聊在SpringBoot项目中如何对接口进行限流,有哪些常见的限流算 ...

  2. 题解 Division Game

    link Description 懒得写了. Solution 设 \(f(x)\) 表示对于一个位置操作了 \(x\) 次后刚好变为 \(1\) 的方案数,可以看出的是 \(f(x)\) 同样也是对 ...

  3. 题解 GT考试

    题目传送门 题目大意 给出\(n,m,k\),以及一个长度为\(m\)的数字串\(s_{1,2,...,m}\),求有多少个长度为\(n\)的数字串\(X\)满足\(s\)不出现在其中的个数模\(k\ ...

  4. pytest执行时mian函数传参

    在代码中执行pytest可以通过main函数 加参数来指定运行规则时,参数需要放在列表或者元祖中 # pytest.main(["--html=report.html"]) # p ...

  5. v72.01 鸿蒙内核源码分析(Shell解析) | 应用窥伺内核的窗口 | 百篇博客分析OpenHarmony源码

    子曰:"苟正其身矣,于从政乎何有?不能正其身,如正人何?" <论语>:子路篇 百篇博客系列篇.本篇为: v72.xx 鸿蒙内核源码分析(Shell解析篇) | 应用窥视 ...

  6. Framework - 性能统计

    摘要 近期对接客户时,客户方希望提供 SDK 的性能.内存.隐私支持等一些数据,所以就对 SDK 进行了一些性能测试. 在用表格统计整理这些数据时,突然发现,经常用统计的方式看 SDK 的相关数据,似 ...

  7. 【UE4 C++】 启动 / 关闭外部exe、开启虚拟键盘

    启动/关闭外部exe 引擎自带 FPlatformProcess::CreateProc() FPlatformProcess::TerminateProc() windows api ShellEx ...

  8. Java:ThreadLocal小记

    Java:ThreadLocal小记 说明:这是看了 bilibili 上 黑马程序员 的课程 java基础教程由浅入深全面解析threadlocal 后做的笔记 内容 ThreadLocal 介绍 ...

  9. the Agiles Scrum Meeting 4

    会议时间:2020.4.12 20:00 1.每个人的工作 今天已完成的工作 yjy:基本完成广播功能,修复bug issues:小组任务1-增量开发组 Bug:冲刺 wjx:继续实现注销功能的后端 ...

  10. Linux该如何学习新手入门遇到问题又该如何解决

    本节旨在介绍对于初学者如何学习 Linux 的建议.如果你已经确定对 Linux 产生了兴趣,那么接下来我们介绍一下学习 Linux 的方法. 如何去学习 学习大多类似庖丁解牛,对事物的认识一般都是由 ...