es学习之elasticsearch在centos7上的搭建

我爱海鲸 2024-11-21 17:44:20 暂无标签

简介elasticsearch搭建、jdk、maven、kibana、6.2.4版本、7.7版本、logstash、elk、ES设置用户名和密码

0、相关的资源保存了在百度云上:

链接:https://pan.baidu.com/s/1Dbi0PFvcmqPYgtOysSCqiA
提取码:05wp

1、安装jdk:

将jdk上传到/usr/local/java目录下(没有就创建一个)

vim /etc/profile


放到文件最后:
export JAVA_HOME=/usr/local/java/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

重新加载配置文件,输入:source /etc/profile

2、安装es:

1、安装jdk8

2、将elasticsearch6.2.4压缩包上传到/usr/local/elasticsearch上 没有就创建一个

3、解压tar -zvxf elasticsearch-6.2.4.tar.gz

4、创一个es的专属用户 不能用root用户来启动(安全原因)

5、groupadd eszu es的用户组

6、useradd esyonghu -g eszu -p 123456 创建es的用户

7、返回/usr/local/elasticsearch目录 chown -R esyonghu:eszu elasticsearch-6.2.4 更改elasticsearch的所属组和用户

8、su esyonghu 将root用户更换为esyonghu

9、进入es目录下bin目录./elasticsearch

10、出现started即为启动成功

出现killed 可能为内存不足 进入config 目录下修改配置文件 jvm.options
-Xms150m
-Xmx150m

 

systemctl stop firewalld.service 停止防火墙

systemctl status firewalld.service 查看防火墙状态


远程访问es :
1、进入es的config目录下vi elasticsearch.yml

2、修改network.host: 0.0.0.0 (注意将前面的#去掉)0.0.0.0表示允许所有ip访问

3、将http.port: 9200前面的#去掉(不去掉也行)

4、修改cluster.name: haijinweblog (集群名字自定义)

2022-07-14

start:

5、修改配置vi elasticsearch.yml

node.name: node-1

discovery.seed_hosts: ["127.0.0.1"]
cluster.initial_master_nodes: ["node-1"]

end


5、重启es

4、如出现
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3891] for user [esyonghu] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65536] is too low, increase to at least [262144]

su root 切换为root用户

vi /etc/security/limits.conf 在文件里添加

esyonghu soft nofile 65536

esyonghu hard nofile 65536

esyonghu soft nproc 4096

esyonghu hard nproc 4096

vi /etc/security/limits.d/20-nproc.conf 修改为 esyonghu soft nproc 4096

vi /etc/sysctl.conf 在文件里添加vm.max_map_count=655360
sysctl -p 使文件生效

6、再次重启es

若重启后还有错误,请重启centos7系统


Elasticsearch在linux下使用命令sh elasticsearch start,按键ctrl+c的时候程序就会stop掉,如何将程序在后台启动呢?
需要使用:./elasticsearch -d:
这时执行的时候会出现没有权限./elasticsearch: Permission denied
需要授权执行命令:chmod +x bin/elasticsearch
再次执行./elasticsearch -d即可启动
使用ps aux|grep elasticsearch可以查看是否启动


停止es

jps 查看端口

kill -9 端口 杀死进程

3、安装ik中文分词器

下载地址https://github.com/medcl/elasticsearch-analysis-ik

1、将elasticsearch-analysis-ik-master.zip上传到/usr/local/es-ik (没有创建)

2、unzip elasticsearch-analysis-ik-master.zip 解压缩

3、进入目录mvn clean install -Dmaven.test.skip=true 编译 (需先安装maven3.5.3)

4、将target目录下的elasticsearch-analysis-ik-6.2.4.zip复制到es目录的plugins/ik目录下 (没有ik创建) 创建较慢可直接上传

yum install -y unzip zip
5、unzip elasticsearch-analysis-ik-6.2.4.zip 解压

6、mv ./elasticsearch/* ./ 将解压后elasticsearch目录下的所有文件移动到ik文件夹中

7、rm -rf elasticsearch rm -rf elasticsearch-analysis-ik-6.2.4.zip 删除压缩的文件

8、./elasticsearch 在bin目录下重新启动es

4、安装kibana:

1、将kibana压缩包上传到/usr/local/kibana里 (没有就创建一个)

2、tar -xzvf kibana-6.2.4-linux-x86_64.tar.gz 解压缩

3、进入kibana目录cd config

4、vi kibana.yml 修改server.host: "192.168.42.159" ,elasticsearch.url: "http://192.168.42.159:9200" 修改为es所在的地址 注意去掉前面的#

2022-07-14 start:

i18n.locale: "zh-CN"   将kibana设置为中文

设置kibana的权限不然启动不了  chown -R esyonghu:eszu kibana-7.7.0-linux-x86_64

end

5、systemctl start firewalld.service 开启防火墙

6、firewall-cmd --permanent --zone=public --add-port=5601/tcp 开启5601端口

7、firewall-cmd --reload重启防火墙

8、systemctl stop firewalld.service 关闭防火墙

9、启动es 注意su esyonghu

10、切换root启动kibana

ps -ef|grep kibana
ps -ef|grep 5601
都找不到
尝试 使用 fuser -n tcp 5601

没有命令时:yum install psmisc


kill -9 端口

ps -ef | grep node

后台:

nohup ../bin/kibana &

 

error  [07:19:08.512] [fatal] Error: listen EADDRNOTAVAIL 192.168.1.100:5601
    at Object.exports._errnoException (util.js:1020:11)
    at exports._exceptionWithHostPort (util.js:1043:20)
    at Server._listen2 (net.js:1249:19)
    at listen (net.js:1298:10)
    at net.js:1408:9
    at _combinedTickCallback (internal/process/next_tick.js:83:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
FATAL { Error: listen EADDRNOTAVAIL 192.168.1.100:5601
    at Object.exports._errnoException (util.js:1020:11)
    at exports._exceptionWithHostPort (util.js:1043:20)
    at Server._listen2 (net.js:1249:19)
    at listen (net.js:1298:10)
    at net.js:1408:9
    at _combinedTickCallback (internal/process/next_tick.js:83:11)
    at process._tickCallback (internal/process/next_tick.js:104:9)
  cause:
   { Error: listen EADDRNOTAVAIL 192.168.1.100:5601
       at Object.exports._errnoException (util.js:1020:11)
       at exports._exceptionWithHostPort (util.js:1043:20)
       at Server._listen2 (net.js:1249:19)

解决:

问题在于这是一个云主机,先前 kibana.yml 里设置的 server.host 是外网的ip,后来改成内网的ip,或者0.0.0.0,就能正常运行。

改成内网ip就外网访问不了,改成0.0.0.0外网就可以访问了

5、安装maven:

1、进入cd /usr/local/maven (没有就创建)

2、wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz 或上传到该目录

3、tar -zxvf apache-maven-3.5.3-bin.tar.gz 解压

4、vi /etc/profile 在文末添加文件内容
export M2_HOME=/usr/local/maven/apache-maven-3.5.3
export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

5、保存退出后运行下面的命令使配置生效,或者重启服务器生效。
source /etc/profile

6、验证版本
mvn -v
出现maven版本即成功

6、安装head:

1、cd /usr/local

2、git clone git://github.com/mobz/elasticsearch-head.git 将head从github上复制下来 (若失败请安装git)yum install -y git

4、将node-v8.9.3上传到usr/local下 解压tar -xJf node-v8.9.3-linux-x64.tar.xz

5、vi /etc/profile 将以下内容粘贴到最后
export NODE_HOME=/usr/local/node-v8.9.3-linux-x64
export PATH=$NODE_HOME/bin:$PATH

6、保存再执行 source /etc/profile

7、npm install -g grunt-cli 安装grunt

8、cd elasticsearch-head/

9、npm install -g cnpm --registry=https://registry.npm.taobao.org

9、cnpm install

11、vi Gruntfile.js
在connect-->server-->options下面添加:hostname: '*' 允许所有ip可以访问

12、进入_site目录下cd _site vi app.js
将this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";中的localhost修改成你es的服务器地址

13、设置跨域访问
进入elasticsearch config目录下 vi elasticsearch.yml
在文件末增加
http.cors.enabled: true
http.cors.allow-origin: "*"

若已将防火墙关闭14和15不用做

14、打开9100端口
firewall-cmd --zone=public --add-port=9100/tcp --permanent

15、重启防火墙
firewall-cmd --reload

16、使用es账户启动es

17、进入head目录下的node_modules

18、cd grunt

19、cd bin

20、 ./grunt server 启动head插件

2022-07-15 start:

7、安装logstash:

1、将logstash压缩包上传到/usr/local/logstash上 没有就创建一个

2、解压:tar -zxvf logstash-7.7.0.tar.gz

3、进入logstash-7.7.0目录中的config中

4、 vi jvm.options  修改内存大小:

-Xms150m
-Xmx150m

5、vi logstash.yml   修改如下配置:

node.name: node-1

network.host: 0.0.0.0

discovery.seed_hosts: ["127.0.0.1"]

cluster.initial_master_nodes: ["node-1"]

http.host: "0.0.0.0"

http.port: 9600

6、 vi logstash-sample.conf  修改如下配置:

input {
  tcp {
    host => "192.168.19.138"
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.19.138:9200"]
    index => "weblog-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

7、启动,进入到logstash中的bin目录下

后台启动:
nohup ./logstash -f ../config/logstash-sample.conf > /dev/null 2>&1 &
调试启动:
./logstash -f ../config/logstash-sample.conf

8、springboot上配置logstash,

引入pom:

   <!--logStash-->
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>7.0.1</version>
    </dependency>

logback配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--配置logStash 服务地址-->
        <destination>192.168.19.138:5044</destination>
        <!-- 日志输出编码 -->
        <encoder charset="UTF-8"
                 class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "rest": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>

    <root level="INFO">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="LOGSTASH" />
    </root>
</configuration>

9、在kibana上查看日志:

如图:

8、设置es密码等等

参考文章:ElasticSearch 7配置密码认证及创建用户ES设置用户名和密码

end

2024-11-21 start

设置密码

首先启动es,

然后在bin目录下:

./elasticsearch-certutil ca

然后按回车

设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:

elastic-stack-ca.p12

./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

三项都按回车

设置完毕后,会在/usr/local/elasticsearch-7.6.2下看到新生成的文件:

elastic-certificates.p12

然后将这个文件放到config目录下的certs(没有就创建)

修改vi  /config/elasticsearch.yml  (es目录下的)

添加:

xpack.security.enabled: true
 
xpack.security.transport.ssl.enabled: true
 
xpack.security.transport.ssl.verification_mode: certificate
 
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
 
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

然后再重启es

然后再es的bin目录下:

./elasticsearch-setup-passwords interactive

然后输入每一项的密码

设置完毕后,kibana也要再配置文件中设置

vi config/kibana.yml

elasticsearch.username: "kibana"

elasticsearch.password: "密码"

 

 

es的验证地址:ip:9200

kibana的验证地址:ip:5601

end

 

 

你好:我的2025