官网
下载
我的这些文件下载在 /usr/java/es8.3/elasticsearch-8.3.2
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.2-linux-x86_64.tar.gz wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.2-linux-x86_64.tar.gz.sha512 shasum -a 512 -c elasticsearch-8.3.2-linux-x86_64.tar.gz.sha512 tar -xzf elasticsearch-8.3.2-linux-x86_64.tar.gz cd elasticsearch-8.3.2/
添加用户
因为不能用root启动,所以才添加用户,你可以自己用root试试启动
useradd pengxiang
passwd pengxiang
# 接着设置密码
用root用户授权pengxiang文件权限
chown pengxiang /usr/java/es8.3/elasticsearch-8.3.2 -R
# /usr/java/es8.3/elasticsearch-8.3.2为es的安装目录
启动
切换用户并进入到bin目录
su pengxiang
cd bin
临时启动es
./elasticsearch
可以看到
访问https://IP:9200 ,默认9200,输入用户名及密码,
后台启动可以使用这个命令,我也是参考jar包启动的
nohup /usr/java/es8.3/elasticsearch-8.3.2/bin/elasticsearch >elasticsearch.out 2>&1 &
这里是我的elasticsearch.yml文件,其他配置文件没有修改
cluster.name: es83
node.name: node-1
path.data: /usr/java/es8.3/elasticsearch-8.3.2/data
path.logs: /usr/java/es8.3/elasticsearch-8.3.2/datalog
#http.port: 9200
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: false
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
cluster.initial_master_nodes: ["node-1"]
http.host: 0.0.0.0
ingest.geoip.downloader.enabled: false
#允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: "*"
# http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
同步mysql数据到es:logstash
目标:把t_news表的数据同步到es中。
自行下载解压,这是我的文件结构
在config中新建logstash.conf文件,内容为:
input {
jdbc {
# 数据库
jdbc_connection_string => "jdbc:mysql://localhost:3306/fywl-carmember"
# 用户名密码
jdbc_user => "root"
jdbc_password => "jinxin2022"
# Mysql-jdbc jar包的位置 路径不能写错 ,版本要对应
jdbc_driver_library => "/usr/java/logstash/logstash-8.3.2/lib/mysql-connector-java-8.0.23.jar"
# mysql的Driver
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#清除第一次同步的时间,日志时间
#clean_run => true
# mysql.sql内写sql 例如 select * from 你需要导入的表
statement_filepath => "/usr/java/logstash/logstash-8.3.2/config/mysql.sql"
# canel 时间参数,定时导入
schedule => "*/5 * * * * *"
#索引的类型 分词器类型
type => "monitor_task_video_manual_history"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
#es地址
hosts => "localhost:9200"
# index名
index => "index_news"
# 需要关联的数据库中一个id字段,对应索引的id号
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
在config中新建mysql.sql文件,该文件的查询结果将同步到es中,我是全部同步,所以内容为:
select * from t_news
启动:
nohup /usr/java/logstash/logstash-8.3.2/bin/logstash -f /usr/java/logstash/logstash-8.3.2/config/mysql.conf >logstash.out 2>&1 &
elasticsearch-head 可视化查询控件
这个控件需要nodejs和npm工具
下载源码
GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
下载好之后就像vue项目一样
npm install
npm run start
我安装过程中有一个依赖找不到 直接忽略就可以 忽略的命令不记得了,自己百度吧 。
启动完就是这样:
启动完访问http://ip:9200即可 , 可能协议为https,自己试试吧
后台启动
cd /usr/java/es-head/elasticsearch-head-master
nohup npm run start >es-head.out 2>&1 &