TH小破站

  • 首页
  • 容器
    • 认识Docker
    • DockerFile详解
  • k8s
    • 认识Kubernetes
    • Kubernetes部署--(kubeadm方式)
    • kubeasz部署k8s集群
    • Ansible-binary部署k8s集群-1.31.2
  • Ceph
    • 认识分布式存储
    • CPEH部署
  • CI/CD
    • DevOps认识
    • 部署--Gitlab
  • ELK
    • ELK简介
    • Elasticsearch
    • Kibana部署
    • Logstash
    • ELK--收集 tomcat 日志(实战)
  • HD
    • 认识--大数据
    • Hadoop-单机部署
    • Hadoop-伪分布部署
    • Hadoop-完全分布部署
    • Hadoop-(HA)完全分布部署
    • Ambari自动部署--Hadoop
  • Nginx
    • Nginx功能介绍
    • Nginx安全选项
    • Nginx配置文件简单介绍
    • 网站服务器部署
  • 监控
    • ZABBIX-部署(yum)
    • ZABBIX-编译安装
  • 云计算
    • KVM 概述
    • OpenStack企业级部署(T版)
    • OpenStack之dashboard部署
    • OpenStack-controller的高可用
    • openstack(Caracal版_ubuntu版本)部署
  • 数据库
    • mariadb与mysql
    • mysql主从
    • MySQL--冷备(实战)
    • MySQL--热备(dump表)
    • MySQL--热备(dump库)
    • 数据恢复实战案例
    • Xtrabackup实现MySql8.x全量备份
    • MyCat实现数据库读写分离
    • MHA实现数据库高可用
    • Percona XtraDB(PXC)实现数据库集群高可用
    • 数据库压力测试
    • PostgreSQL 基操
    • PostgreSQL备份恢复
    • PostgreSQL高可用
    • MongDB安装配置基础使用
    • MongoDB实现复制集
    • MongoDB备份还原
  • 自动化
    • ssh远程服务原理及配置
    • Ansible剧本文件应用
    • Ansible管理服务介绍
    • Ansible自动化部署node_exporter(包含升级,回滚)
    • Saltstack-部署安装
  • 脚本
    • 一键查看服务器资源利用率
    • 一键生成SSL证书
    • 保存指定数量的文件/目录
    • 初始化服务器
    • 扫描可用IP
    • 批量分发SSH密钥
    • 监控多主机磁盘脚本
    • 一键安装MySQL8.x脚本
    • Python脚本监控ES集群
    • 资源巡检脚本
    • 查看各用户使用的cpu占比
热衷于分享
架构师成长之路 !!!

Elasticsearch

1)elasticsearch 部署:

https://github.com/elastic/elasticsearch #基于 java 开发

主机名 地址 磁盘规格 挂载目录
es1 192.168.139.31 sdb 50G /data
es2 192.168.139.32 sdb 50G /data
es3 192.168.139.33 sdb50G /data

1.1)环境初始化:

最小化安装 Centos 7.x/Ubuntu x86_64 操作系统的虚拟机,vcpu 2,内存 4G 或更多,操作系统盘 50G 

1.1.1)主机名和磁盘挂载

[root@es1 ~]# hostname
es1
[root@es2 ~]# hostname
es2
[root@es3 ~]# hostname
es3
"磁盘挂载三个主机都要做,我这里演示一个"
[root@es1 ~]# mkfs.xfs /dev/sdb 
`注意每个主机的磁盘uuid都不一样`
[root@es1 ~]# blkid /dev/sdb
/dev/sdb: UUID="eee44259-492b-4f68-9c41-ca41ba7f2c58" TYPE="xfs" 
[root@es1 ~]# mkdir /data
`注意每个主机的磁盘uuid都不一样,按相应的填写`
[root@es1 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Aug  9 22:40:59 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos_nginx01-root /                       xfs     defaults        0 0
UUID=40724ad6-bcd4-40d5-b82b-010cf9fcf004 /boot                   xfs     defaults        0 0
#/dev/mapper/centos_nginx01-swap swap                    swap    defaults        0 0
UUID=eee44259-492b-4f68-9c41-ca41ba7f2c58 /data      xfs     defaults        0 0
​
[root@es1 ~]# mount -a

1.1.2)防火墙和 selinux

三个主机都要做,我这里演示一个

关闭防所有服务器的火墙和 selinux,包括 web 服务器、redis 和 logstash 服务器的防火墙和 selinux 全部关闭,此步骤是为了避免出现因为防火墙策略或 selinux 安全权限引起的各种未知问题 ,

[root@es1 ~]# systemctl stop firewalld
[root@es1 ~]# systemctl disable firewalld
[root@es1 ~]# setenforce  0 
[root@es1 ~]# sed -i '7s#enforcing#disabled#g'  /etc/selinux/config

1.1.3 )各服务器配置本地域名解析

三个主机都要做,我这里演示一个

[root@es1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.139.31 es1
192.168.139.32 es2
192.168.139.33 es3

1.1.4)设置 epel 源、安装基本操作命令并同步时间

三个主机都要做,我这里演示一个

[root@es1 ~]# yum install -y wget
[root@es1 ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
[root@es1 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@es1 ~]# yum install -y net-tools vim lrzsz tree screen lsof tcpdump wget ntpdate
[root@es1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

1.1.5)打开文件数优化

[root@es1 ~]# cat >> /etc/security/limits.conf << EOF
    * soft nofile 655350 
    * hard nofile 655350
    * soft nproc  655350
    * hard nproc  655350
    * soft core   unlimited
    * hard core   unlimited
EOF
[root@es1 ~]# reboot 

1.2 )安装 elasticsearch

https://github.com/elastic

版本选择: 0.x 1.x 2.x 5.x 6.x 7.x

我安装的elasticsearch 7.12.1 带jdk的所有不用再装jdk环境

如果安装带jdk的elasticsearch 请参照 elasticsearch 对应的jdk版本:https://www.elastic.co/cn/support/matrix#matrix_jvm

1.3)网上下载 elasticsearch 并安装

下载地址:https://www.elastic.co/cn/downloads/elasticsearch

清华源地址:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/

1.3.1)三台服务器分别安装 elasticsearch:

三个主机都要做,我这里演示一个

[root@es1 ~]# cd /usr/local/src/
`上传rpm包`
[root@es1 src]# ll
total 318004
-rw-r--r-- 1 root root 325635185 Oct 11  2021 elasticsearch-7.12.1-x86_64.rpm
[root@es1 src]# yum -y localinstall elasticsearch-7.12.1-x86_64.rpm

1.3.2)修改各 elasticsearch 服务器的服务配置文件

`es1的配置`
[root@es1 ~]# grep ^[a-Z] /etc/elasticsearch/elasticsearch.yml
cluster.name: stj-cluster   #这里三个主机必须保持一样
node.name: node1            #这里三个主机必须不一样
path.data: /data/elasticsearch/esdata
path.logs: /data/elasticsearch/eslog
bootstrap.memory_lock: true
network.host: 192.168.139.31
http.port: 9200
discovery.seed_hosts: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
cluster.initial_master_nodes: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
action.destructive_requires_name: true
​
`es2的配置`
[root@es2 ~]# grep ^[a-Z] /etc/elasticsearch/elasticsearch.yml
cluster.name: stj-cluster   #这里三个主机必须保持一样
node.name: node2            #这里三个主机必须不一样
path.data: /data/elasticsearch/esdata
path.logs: /data/elasticsearch/eslog
bootstrap.memory_lock: true
network.host: 192.168.139.32
http.port: 9200
discovery.seed_hosts: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
cluster.initial_master_nodes: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
action.destructive_requires_name: true
​
`es3的配置`
[root@es3 ~]# grep ^[a-Z] /etc/elasticsearch/elasticsearch.yml
cluster.name: stj-cluster   #这里三个主机必须保持一样
node.name: node3            #这里三个主机必须不一样
path.data: /data/elasticsearch/esdata
path.logs: /data/elasticsearch/eslog
bootstrap.memory_lock: true
network.host: 192.168.139.33
http.port: 9200
discovery.seed_hosts: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
cluster.initial_master_nodes: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
action.destructive_requires_name: true

1.3.2.1)配置文件参数解释

cluster.name: ELK-Cluster    #ELK 的集群名称,名称相同即属于是同一个集群
node.name: elk-node1         #当前节点在集群内的节点名称
path.data: /elk/data         #ES 数据保存目录
path.logs: /elk/logs         #ES 日志保存目
bootstrap.memory_lock: true  #服务启动的时候锁定足够的内存,防止数据写入swap
network.host: 0.0.0.0        #监听 IP
http.port: 9200              #监听端口
#集群中 node 节点发现列表
discovery.seed_hosts: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
#集群初始化那些节点可以被选举为 master
cluster.initial_master_nodes: ["192.168.139.31", "192.168.139.32","192.168.139.33"]
#2.x 5.x 6.x 配置节点发现列表
discovery.zen.ping.unicast.hosts: ["192.168.15.11", "192.168.15.12"]
#一个集群中的 N 个节点启动后,才允许进行数据恢复处理,默认是 1
gateway.recover_after_nodes: 2
# 设置是否可以通过正则或者_all 删除或者关闭索引库,默认 true 表示必须需要显式指定索引库名称,生产环境建议设置为 true,删除索引库的时候必须指定,否则可能会误删索引库中的索引库。
action.destructive_requires_name: true

1.3.3)修改内存限制,并同步配置文件

三个主机都要做,我这里演示一个

[root@es1 ~]# vim /etc/elasticsearch/jvm.options
........
-Xms1g   #31行
-Xmx1g   #32行
........
[root@es1 ~]# vim /usr/lib/systemd/system/elasticsearch.service 
.........
LimitMEMLOCK=infinity  #无限制使用内存
.........
[root@es1 ~]# systemctl daemon-reload

1.3.4)目录权限更改

三个主机都要做,我这里演示一个

[root@es1 ~]# chown -R elasticsearch:elasticsearch /data/
[root@es1 ~]# ll /data/ -d
drwxr-xr-x 2 elasticsearch elasticsearch 6 Nov 11 12:14 /data/

1.3.5)启动 elasticsearch 服务并验证

三个主机都要做,我这里演示一个

[root@es1 ~]# systemctl enable --now elasticsearch.service 
[root@es1 ~]# tail -f /data/elasticsearch/eslog/stj-cluster.log 

1.3.6)通过浏览器访问 elasticsearch 服务端口:

http://192.168.139.31:9200/

COPYRIGHT © 2025 TH小破站. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

渝ICP备2023013789号

渝公网安备50011702500926号