CentOS7.5.1804 Minimal安装ElasticSearch7.x

注:1、如果已经安装了ES和ik,需要重新安装,需要把/usr/share/elasticsearch/plugins/路径下ik删除,避免版本不匹配导致ES不能启动
2、如果kibana要跟elasticsearch配合使用,安装的时候请将两个工具的版本保持一致,不然可能会出现一些奇怪的问题

一、CentOS7下安装ES
1. 配置jdk环境,建议1.8

安装之前必须先安装JDK:CentOS7.5.1804 Minimal 安装JDK1.8.0_172

java -version

在这里插入图片描述

2. 下载最新版elasticsearch压缩包

elasticsearch官网地址 :https://www.elastic.co/cn/downloads/elasticsearch
右键点击RPM选择 – 复制连接地址
在这里插入图片描述

3、下载rmp包
[root@oracle /]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-x86_64.rpm --no-check-certificate

在这里插入图片描述或者直接下载rpm安装包,然后上传服务器

4、上传服务器(如果是通过wget方式下载,则跳过此步)

在这里插入图片描述

5、安装ES
[root@oracle /]# cd /usr/local/src
[root@oracle src]# ll
[root@oracle src]# rpm -ivh elasticsearch-7.0.1-x86_64.rpm

在这里插入图片描述

6、启动ES
[root@oracle src]# sudo systemctl start elasticsearch.service

在这里插入图片描述

7、查看ES是否启动
[root@oracle src]# ps aux|grep elasticsearch

在这里插入图片描述

8、调试
[root@oracle src]# curl -XGET 'http://localhost:9200/'

在这里插入图片描述
出现如下信息代表成功:
在这里插入图片描述
至此ES配置成功!

二、外网访问
1. 查看ES目录结构
[root@oracle src]# whereis elasticsearch
elasticsearch: /etc/elasticsearch /usr/share/elasticsearch

在这里插入图片描述

2、修改配置文件
[root@oracle src]# vi /etc/elasticsearch/elasticsearch.yml

在这里插入图片描述
【提示】上面的IP是我安装es的虚拟机的IP地址。端口号默认就是9200。如果远程访问没有成功、或是出现错误,尝试把上面的IP换成0.0.0.0

并修改/etc/elasticsearch/elasticsearch.yml配置文件里的cluster.initial_master_nodes属性
在这里插入图片描述

3、重启ES
[root@oracle src]# sudo systemctl restart elasticsearch.service
4、设置防火墙
[root@oracle ~]# sudo vi /etc/sysconfig/iptables 
添加参数 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9200 -j ACCEPT
[root@oracle ~]# sudo systemctl restart iptables  #重启生效

在这里插入图片描述

5、外网访问测试

在这里插入图片描述
至此外网访问配置成功!

三、elasticsearch开机自启动
1、在/etc/init.d目录下新建elasticsearch 文件
[root@oracle /]# vi /etc/init.d/elasticsearch
#!/bin/bash
#
# elasticsearch <summary>
#
# chkconfig:   2345 80 20
# description: Starts and stops a single elasticsearch instance on this system
#

### BEGIN INIT INFO
# Provides: Elasticsearch
# Required-Start: $network $named
# Required-Stop: $network $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: This service manages the elasticsearch daemon
# Description: Elasticsearch is a very scalable, schema-free and high-performance search solution supporting multi-tenancy and near realtime search.
### END INIT INFO

#
# init.d / servicectl compatibility (openSUSE)
#
if [ -f /etc/rc.status ]; then
    . /etc/rc.status
    rc_reset
fi

#
# Source function library.
#
if [ -f /etc/rc.d/init.d/functions ]; then
    . /etc/rc.d/init.d/functions
fi

# Sets the default values for elasticsearch variables used in this script
ES_HOME="/usr/share/elasticsearch"
MAX_OPEN_FILES=65535
MAX_MAP_COUNT=262144
ES_PATH_CONF="/etc/elasticsearch"

PID_DIR="/var/run/elasticsearch"

# Source the default env file
ES_ENV_FILE="/etc/sysconfig/elasticsearch"
if [ -f "$ES_ENV_FILE" ]; then
    . "$ES_ENV_FILE"
fi

# ES_USER and ES_GROUP settings were removed
if [ ! -z "$ES_USER" ] || [ ! -z "$ES_GROUP" ]; then
    echo "ES_USER and ES_GROUP settings are no longer supported. To run as a custom user/group use the archive distribution of Elasticsearch."
    exit 1
fi

exec="$ES_HOME/bin/elasticsearch"
prog="elasticsearch"
pidfile="$PID_DIR/${prog}.pid"

export ES_JAVA_OPTS
export JAVA_HOME
export ES_PATH_CONF
export ES_STARTUP_SLEEP_TIME

lockfile=/var/lock/subsys/$prog

##新加内容开始
case "$1" in
start)
cd /usr/share/elasticsearch
./bin/elasticsearch -d
!
##新加内容结束
echo "elasticsearch startup"
;;


if [ ! -x "$exec" ]; then
    echo "The elasticsearch startup script does not exists or it is not executable, tried: $exec"
    exit 1
fi

checkJava() {
    if [ -x "$JAVA_HOME/bin/java" ]; then
        JAVA="$JAVA_HOME/bin/java"
    else
        JAVA=`which java`
    fi

    if [ ! -x "$JAVA" ]; then
        echo "Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME"
        exit 1
    fi
}

start() {
    checkJava
    [ -x $exec ] || exit 5

    if [ -n "$MAX_OPEN_FILES" ]; then
        ulimit -n $MAX_OPEN_FILES
    fi
    if [ -n "$MAX_LOCKED_MEMORY" ]; then
        ulimit -l $MAX_LOCKED_MEMORY
    fi
    if [ -n "$MAX_MAP_COUNT" -a -f /proc/sys/vm/max_map_count ] && [ "$MAX_MAP_COUNT" -gt $(cat /proc/sys/vm/max_map_count) ]; then
        sysctl -q -w vm.max_map_count=$MAX_MAP_COUNT
    fi

    # Ensure that the PID_DIR exists (it is cleaned at OS startup time)
    if [ -n "$PID_DIR" ] && [ ! -e "$PID_DIR" ]; then
        mkdir -p "$PID_DIR" && chown elasticsearch:elasticsearch "$PID_DIR"
    fi
    if [ -n "$pidfile" ] && [ ! -e "$pidfile" ]; then
        touch "$pidfile" && chown elasticsearch:elasticsearch "$pidfile"
    fi

    cd $ES_HOME
    echo -n $"Starting $prog: "
    # if not running, start it up here, usually something like "daemon $exec"
    daemon --user elasticsearch --pidfile $pidfile $exec -p $pidfile -d
    retval=$?
    echo
    [ $retval -eq 0 ] && touch $lockfile
    return $retval
}

stop() {
    echo -n $"Stopping $prog: "
    # stop it here, often "killproc $prog"
    killproc -p $pidfile -d 86400 $prog
    retval=$?
    echo
    [ $retval -eq 0 ] && rm -f $lockfile
    return $retval
}

restart() {
    stop
    start
}

reload() {
    restart
}

force_reload() {
    restart
}

rh_status() {
    # run checks to determine if the service is running or use generic status
    status -p $pidfile $prog
}

rh_status_q() {
    rh_status >/dev/null 2>&1
}


case "$1" in
    start)
        rh_status_q && exit 0
        $1
        ;;
    stop)
        rh_status_q || exit 0
        $1
        ;;
    restart)
        $1
        ;;
    reload)
        rh_status_q || exit 7
        $1
        ;;
    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;
    condrestart|try-restart)
        rh_status_q || exit 0
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
        exit 2
esac
exit $?
2、赋予执行权限
[root@oracle /]# cd /etc/init.d/
[root@oracle init.d]# chmod +x elasticsearch

在这里插入图片描述

3、添加到开机启动任务
[root@oracle init.d]# chkconfig elasticsearch on
4、重启CentOS验证elasticsearch 是否能够开机自启动
[root@oracle ~]# reboot
5、验证是否成功

方式一:

[root@oracle ~]# ps aux|grep elasticsearch

在这里插入图片描述
方式二:

[root@oracle ~]# curl -XGET 'http://localhost:9200/'

在这里插入图片描述
方式三:
在这里插入图片描述
常用命令

sudo systemctl start elasticsearch.service  #启动es
sudo systemctl restart elasticsearch.service #重启es
systemctl status elasticsearch  #查看es状态
ps aux|grep elasticsearch  #查看es进程
whereis elasticsearch  #查看es目录

可以看出elasticsearch的安装目录和配置文件所在目录,因为rpm安装和安装包解压的目录结构是不一样的,为了方便运维,你需要记住:

启动文件目录:/usr/share/elasticsearch/bin
配置文件目录:/etc/elasticsearch
日志目录:/var/log/elasticsearch

请关注我个人学习的公众号,公众号会不定期发布个人学习的内容记录!
在这里插入图片描述

文章目录概况安装PostgreSQL设置主节点设置从节点验证故障处理,主从节点切换从节点扩容概况CentOS Linux release 7.7.1908PostgreSQL13三台服务器,一主两从,实时复制。主节点读写,从节点只读,读写分离不借助插件或第三方中间件,仅使用PostgreSQL自带的流复制功能Replication主节点可建库建表、可读写,两个从节点为只读,程序使用时可以将查询和统计相关服务读取从节点,通过读写分离减少数据库读写压力设置同步复制,为热备份,数据实时同步,对于大多数业务来说,可以认为三个库数据完全相同,当一个库故障时,其他库仍然可提供服务,增加服务可用性当主节点故障时,数据无法更新,只能手动将从节点升格为主节点,需要修改服务的数据库连接配置等,服务短暂不可用(也可提前准备好监控和切换脚本,服务不可用时尽早发现和切换)。需要根据自己业务特点,是否能接受此种情况,来决定是否使用此方式。单点故障,自动切换的集群,可以考虑使用PGPool-II 等第三方中间件搭建,后面研究好我会出一篇文档安装PostgreSQL命令如下,具体可参考我之前的博客《PostgreSQL简介和安装部署》# 安装 repository 源:sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装 PostgreSQL13:sudo yum install -y postgresql13-server# 初始化数据库,并设置启动命令和开机启动:sudo /usr/pgsql-13/bin/postgresql-13-setup initdbsudo systemctl enable postgresql-13sudo systemctl start postgresql-13# 另外,查看状态,关闭命名和重启命令sudo systemctl status postgresql-13sudo systemctl stop postgresql-13sudo systemctl restart postgresql-13123456789101112131415三个节点安装完成后,就可以开始使用了可以创建用户、赋予权限、修改密码,可以建库建表早一些功能测试等默认安装创建的数据库,没有主从之分,都是主节点,可以使用这条语句验证下是否为从节点,查询结果为"f"表示false,当前数据库节点为主库节点sudo -u postgres /usr/pgsql-13/bin/psql -c "select pg_is_in_recovery()"1下面开始搭建集群,关闭三个PostgreSQL服务,开始改配置文件设置主节点主从节点可以自己规划好,准备好不同机器就行,也可以使用最小集群一主一从主要是修改2个配置文件,都在data目录下,一个是数据库基础配置,一个是访问权限控制默认初始化的数据库,data目录在/var/lib/pgsql/13/data修改文件夹里面的pg_hba.conf,设置 Replication 访问策略,允许流复制# replication privilege.# 追加一条“允许postgres用户,通过全部网络地址使用 Replication ”的策略host replication postgres 0.0.0.0/0 trust123继续修改数据库配置文件postgres.conf,进行一些参数设置,允许流复制# -----------------------------# PostgreSQL configuration file# -----------------------------# - Connection Settings -listen_addresses = '*' # what IP address(es) to listen on;#port = 5432 # (change requires restart)max_connections = 200 # (change requires restart)# - Authentication -#authentication_timeout = 1min # 1s-600spassword_encryption = scram-sha-256 # md5 or scram-sha-256#------------------------------------------------------------------------------# RESOURCE USAGE (except WAL)#------------------------------------------------------------------------------# - Memory -shared_buffers = 1GB # min 128kB 官方推荐内存设置带大小为系统内存的1/4temp_buffers = 64MB # min 800kBwork_mem = 64MB # min 64kBmax_stack_depth = 4MB # min 100kBdynamic_shared_memory_type = posix # the default is the first option#------------------------------------------------------------------------------# WRITE-AHEAD LOG#------------------------------------------------------------------------------wal_level = replica # minimal, replica, or logicalfsync = on # flush data to disk for crash safetysynchronous_commit = on # synchronization level;wal_log_hints = on # also do full page writes of non-critical updates# - Checkpoints -checkpoint_timeout = 10min # range 30s-1dmax_wal_size = 1GBmin_wal_size = 80MB# - Archiving -archive_mode = on # enables archiving; off, on, or always# (change requires restart)archive_command = 'cp %p /data/postgresql/archive/%f' # command to use to archive a logfile segment#-----------------------------------------------------------------------------# REPLICATION#------------------------------------------------------------------------------max_wal_senders = 10 # max number of walsender processes 设置了可以最多有几个流复制的链接# (change requires restart)wal_keep_size = 1024 # in megabytes; 0 disablesmax_slot_wal_keep_size = 10 # in megabytes; -1 disableswal_sender_timeout = 120s # in milliseconds; 0 disables# - Standby Servers -hot_standby = on # "off" disallows queries during recovery#------------------------------------------------------------------------------# REPORTING AND LOGGING#------------------------------------------------------------------------------# - Where to Log -log_destination = 'stderr' # Valid values are combinations oflogging_collector = on # Enable capturing of stderr and csvloglog_directory = 'log' # directory where log files are written,# can be absolute or relative to PGDATAlog_filename = 'postgresql-%a.log' # log file name pattern,log_truncate_on_rotation = on # If on, an existing log file with thelog_rotation_age = 1d # Automatic rotation of logfiles willlog_rotation_size = 50MB # Automatic rotation of logfiles willlog_min_duration_statement = 2000 # 配置数据库慢查询时间,如果超过配置的时间,就会将查询的SQL语句记录到日志# - What to Log -log_connections = onlog_disconnections = onlog_line_prefix = '%m [%p] ' # special values:log_timezone = 'Asia/Shanghai'datestyle = 'iso, mdy'#intervalstyle = 'postgres'timezone = 'Asia/Shanghai'# These settings are initialized by initdb, but they can be changed.lc_messages = 'en_US.UTF-8' # locale for system error message# stringslc_monetary = 'en_US.UTF-8' # locale for monetary formattinglc_numeric = 'en_US.UTF-8' # locale for number formattinglc_time = 'en_US.UTF-8' # locale for time formatting# default configuration for text searchdefault_text_search_config = 'pg_catalog.english'shared_preload_libraries = '' # citus (change requires restart)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586启动服务,使配置生效,主节点设置完毕sudo systemctl start postgresql-13# 或sudo systemctl restart postgresql-13123设置从节点主从要保持一致,主要是 data 保持一致,我们可以直接将主节点data同步到从节点如果从节点没有关闭,可以先关闭 sudo systemctl stop postgresql-13去默认的data位置,删除所有文件
03-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值