Ubuntu22.04安装配置ElasticSearch,Kibana,Logstash保姆级教程


写一个笔记记录一下我在服务器上部署ElasticStack全家桶所遇到的问题以及安装方式,方便下次安装查阅,希望对你们也有用

1.安装配置ElasticSearch

1.1下载解压

这里我下载的版本号是7.17.4大家可以根据需求在官网上进行下载,放个elasticsearch7.17.4的下载链接,进入下载页面后点击Linux x86_64,服务器的内存要在4G以上不然可能会因为内存不足而引起服务器崩溃(我的2GB服务器就因为这个原因崩溃,我这里使用的是8GB的服务器进行操作的)更多详情请参考官方文档

下载好之后上传至服务器中,我将安装包上传到/software/中,终端进入到该目录下

cd /software

进入后输入以下命令解压软件包,等待解压完毕

tar zxvf elasticsearch-7.17.4-linux-x86_64.tar.gz

解压后使用在此目录使用ls -l 可以查看以下内容:

!!!如果目前登录的用户是root用户的话请先创建一个用户,然后用另一个用户进行操作,因为ES官方不允许使用root用户进行操作(在进行启动时会报错,提示不允许root用户进行运行)

1.2创建新用户

在root用户下创建用户组名为es

groupadd es

在root用户下创建用户并将用户添加到用户组中

useradd es -g es

#给es用户设置密码
passwd es

为该用户指定命令解释程序(/bin/bash)

usermod -s /bin/bash es

为用户创建家目录

#进入home目录
1. cd /home
#出那个键es目录将其作为家目录
2.mkdir es

将刚刚创建的/home/es设置为es用户的家目录

usermod -d /home/es es

查看修改是否完成

cat /etc/passwd

以上说名修改完成在root用户下修改刚刚的/software/elasticsearch-7.17.4文件夹的权限为es用户组中的es用户

chown -Rf es:es /software/elasticsearch-7.17.4

切换到es用户 

su es

#输入密码

1.3运行elasticsearch

用户切换好后,我们直接进入解压好的elasticsearch-7.17.4中的bin目录中

cd /software/elasticsearch-7.17.4/bin

可以ls -l 一下就可以看到以下文件,下面圈出来的就是主程序

有两种运行方式,一个是直接运行(前台运行),一个是后台运行(使用nuhop)

1.3.1前台运行

可以测试一下elasticsearch能否正常运行,其依赖Java环境,所以还需要提前部署好Java环境,若还没有部署JAVA环境的话可以借鉴我这个博客Ubuntu部署java项目和vue项目

./elasticsearch

#关闭的时候使用CTRL+C
1.3.2后台运行

后续教程都是采用后台运行的方式

#在刚刚的bin目录下运行该命令,运行后会在本目录下自动创建名为log的日志文件
nohup ./elasticsearch >/dev/null 2>log &

后台运行成功后可以使用命令查看一下(输入上面后台运行命令后等待10几秒查看程序会不会自动崩溃)

ps -ef |grep elasticsearch

看到一下信息就说明启动成功了,这时候我们在命令行输入官方文档的测试命令

curl -X GET "localhost:9200/?pretty"

输入后终端出现以下输出就说明elasticsearch部署成功了

{
  "name" : "Cp8oag6",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA",
  "version" : {
    "number" : "7.17.4",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "f27399d",
    "build_date" : "2016-03-30T09:51:41.449Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.3",
    "minimum_wire_compatibility_version" : "1.2.3",
    "minimum_index_compatibility_version" : "1.2.3"
  },
  "tagline" : "You Know, for Search"
}

1.4远程连接elasticsearch

如果你需要远程连接elasticsearch,kibana等就需要配置elasticsearch让其能够远程连接

1.4.1修改配置文件
#1.打开配置文件/software/elasticsearch-7.17.4/config/elasticsearch.yml
sudo vim /software/elasticsearch-7.17.4/config/elasticsearch.yml

#2.在文章末添加如下内容
network.host: 0.0.0.0 #开启远程连接
http.port: 9230 #指定端口号,官方的是9200,保险起见我们还是自定义端口号

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

#保存

修改配置文件并保存后进入到/software/elasticsearch-7.17.4/bin中并且执行以下代码

./elasticsearch-setup-passwords interactive

执行后,程序会让你在终端设置6个账号的密码设置完成后将刚刚运行的elasticsearch程序进行关闭输入以下内容(记得终止字最多的那个程序,不要终止错了)--密码要记住后面步骤要用(尽量6个账号密码统一)

#1.查询程序进程
ps -ef |grep elasticsearch

#2.将elasticsearch程序进行终止,主要不要杀错了,不要吧目前登录的es用户终止了,若终止es用户,就会回到root用户,使用root用户再执行第一步再执行下一步

kill -9 [进程号]

 终止后再执行其在后台运行的命令1.3.2,等待10几秒后在查看程序状态(可能程序80%会出错)

报错如下(报错信息在名为log日志文件里):(ERROR: [2] bootstrap checks failed. You must address the points described in the following [2] lines before starting Elasticsearch. bootstrap check failure [1] of [2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] bootstrap check failure [2] of [2]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured ERROR: Elasticsearch did not exit normally - check the logs at /software/elasticsearch-7.17.4/logs/elasticsearch.log)这里借鉴的是阿里社区的解决方法

这个时候在 /etc/security/limits.conf 文件末尾追加以下内容

#1,打开文件
sudo vim /etc/security/limits.conf

#追加以下内容

* soft nofile 65536
* hard nofile 65536

/etc/sysctl.conf 文件下追加以下内容

#打开文件
sudo vim /etc/security/limits.conf


#追加以下内容
vm.max_map_count=655360

保存退出后再输入以下指令刷新配置

sysctl -p

重启elasticsearch,可能有60%报以下错误(ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch. bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of )

如果报以上错误进入到elasticsearch.yaml()里面再追加一行内容

#1.打开配置文件/software/elasticsearch-7.17.4/config/elasticsearch.yml
sudo vim /software/elasticsearch-7.17.4/config/elasticsearch.yml



#添加以下内容
cluster.initial_master_nodes: ["node-1"]

1.4.2配置成功

修改完成后保存重新启动elasticsearch (方法在1.3.2),启动完成,在本地浏览器输入地址:端口号,并且按照提示输入用户名和密码后出现以下内容说明配置成功,如果报错请查看log日志进行排错,如果程序正常运行并且访问不了,请查看防火墙,端口,安全组的开启情况

用户名:elastic
密码:刚刚你设置的密码

1.5安装ik分词器

ik是对中文比较友好的开源的分词器,这里是下载地址:下载链接,根据elasticsearch的版本下对应版本的ik分词器版本,我的是7.17.4版本,所以我选择的也是相同版本的分词器

下载好后将其上传到 /software/elasticsearch-7.17.4/plugins 然后解压到当前目录下

#进入到上传的目录中
cd /software/elasticsearch-7.17.4/plugins 

#解压文件
unzip elasticsearch-analysis-ik-7.17.4.zip -d ik

#删除压缩包
rm elasticsearch-analysis-ik-7.17.4.zip

 解压安装完毕,重启elasticsearch

2.安装配置Kibana

2.1下载解压

       要安装与ElasticSearch版本相同的kibana,我上面的ElasticSearch安装的就是7.17.4版本,所以我的Kibana就安装7.17.4,放一个下载链接在这里,下载以下版本,更多请参考官方文档

我还是将其上传到 /software文件夹下,使用以下命令进行解压

#进入存储目录进行执行
tar -xzvf kibana-7.17.4-linux-x86_64.tar.gz

解压后得到以下文件

 这里切换到root用户给es用户文件夹权限

#1.切换root用户
su root

#2.添加权限
chown -Rf es:es /software/kibana-7.17.4-linux-x86_64

#切回es用户
su es

2.2修改配置文件

切换到es用户后,修改Kibana的配置文件,在文件最后追加以下内容

#打开文件
vim /software/kibana-7.17.4-linux-x86_64/config/kibana.yml

#追加以下内容
server.port: 5630 #官方默认5601,建议自行指定
server.host: "0.0.0.0" #开启远程连接
elasticsearch.hosts: ["http://localhost:9200"]#elasticsearch端口号
elasticsearch.username: "elastic"
elasticsearch.password: "刚刚在elasticsearch设置的密码"

2.2启动Kibana

保存文件,进入kibana的bin目录下进行启动程序

#进入bin目录
cd /software/kibana-7.17.4-linux-x86_64/bin

查看bin目录下的文件信息,可以看到圈出来的就是主程序 

2.2.1前台运行

命令行输入

./kibana

 可以看到运行结果,如果报错请查看elasticsearch是否正常运行

在本地浏览器中输入【服务器ip】:【kibana端口号】可以看到以下网页,提示输入账号密码,账号和密码与ElasticSearch一样,这样说明kibana能够正常运行了(若失败请检查防火墙,端口开放情况以及安全组设置)

2.2.2后台运行

进入到bin目录输入以下内容

#进入bin目录
cd /software/kibana-7.17.4-linux-x86_64/bin

#输入执行命令
nohup ./kibana >/dev/null 2>log &

查看运行情况:

ps -ef |grep kibana

再在本地输入ip+端口号,可以看到已经能正常的使用了

这里就可以对elasticsearch进行可视化操作

执行上图命令可以看到右面正常输出,说明kibana与elasticsearch完全连接了可以进行自定操作 

3.安装配置 Logstash

3.1下载解压

安装配置 Logstash实现Elasticsearch与数据库数据同步,更多详情请参考官方文档,版本也要与Elasticsearch的版本保持一致下载链接

将其上传到 /software 目录下并且在当前目录进行解压,命令如下

#进入到上传目录
cd /software

#解压logstash

3.2编写示例

进入到/software/logstash-7.17.4/config 中创建自己的实例

#进入到config目录中
cd /software/logstash-7.17.4/config


#创建自己的实例
touch mytask.conf

创建文件后,进入文件进行编写

sudo vim mytask.conf

#输入以下内容
input {
  udp {
    port => 514
    type => "syslog"
  }
}

output {
  stdout { codec => rubydebug }
}

保存后进入到 /software/logstash-7.17.4/bin 中运行下面代码

#进入到bin目录中

cd /software/logstash-7.17.4/bin

#运行下面脚本启动程序
./bin/logstash -f ./config/mytask.conf

看到以下输出就说明logstash能够根据自己编写的conf运行了

 3.3编写与数据库映射文件

终止程序重新回到config目录中,编写与数据库映射conf,注意这里要添加mysql-connector-java-8.0.29.jar的文件在服务器中,不然他会没有mysql驱动,这个可以在网上进行下载或者去idea项目去提取,下面可以参考官方文档,我这里提供了网盘地址,需要的友友自取

mysql-connector-java-8.0.29.jar
链接: https://pan.baidu.com/s/1jwNGdWooAhTq1bDtRLDBuw 提取码: sd97 

#进入到config目录中
cd /software/logstash-7.17.4/config

#示例
input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-8.0.29.jar的文件地址"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/my_db"
    jdbc_user => "数据用户"
    jdbc_password => "密码"
    statement => "SELECT * from post where updateTime > :sql_last_value and updateTime < now() order by updateTime desc"
    tracking_column => "updatetime"
    tracking_column_type => "timestamp"
    use_column_value => true
    parameters => { "favorite_artist" => "Beethoven" }
    schedule => "*/5 * * * * *" #每5秒执行一次
    jdbc_default_timezone => "Asia/Shanghai"
  }
}

filter {
    mutate {
        rename => {
          "updatetime" => "updateTime"
          "userid" => "userId"
          "createtime" => "createTime"
          "isdelete" => "isDelete"
        }
        remove_field => ["thumbnum", "favournum"]
    }
}

output {
  stdout { codec => rubydebug }

  elasticsearch {
    user =>"logstash_system"
    pasword=>"上面你设置的elasticsearch密码"
    hosts => "127.0.0.1:9200"#Elasticsearch ip以及端口地址
    index => "post_v1"#映射到Elasticsearch哪个表中
    document_id => "%{id}" #id
  }
}

保存后然后我们回到/software/logstash-7.17.4/ 运行以下指令

./bin/logstash -f ./config/mysqltask.conf

 可以看到以下输出代表已经配置成功

然后停掉他,将其进行后台运行

nohup ./bin/logstash -f ./config/mysqltask.conf  >/dev/null 2>log &


#检查运行状态
ps -ef|grep logstash 

得到以下输出代表 logstash 配置运行成功

我的本篇博客到这就告一段落了,制作不易,如果可以的话方便给个三连吗

我是Jerry,每天进步一点点 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᯤ⁶ᴳ⁺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值