文章目录
- 安装准备
- 手册说明
- 支持的数据类型
- 安装控制台
- 安装单节点(如需集群请跳过这一节)
- 解压和启动
- 开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
- 配置内置用户密码
- 配置ssl(先配置内置用户密码再配ssl)
- 配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
- 安装集群(节点都在不同服务器)
- 解压和启动
- 开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
- 配置内置用户密码
- 配置ssl(先配置内置用户密码再配ssl)
- 配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
- 安装集群(节点都在同一台服务器)
- 解压和启动
- 配置控制台
- 查看授权过期时间
- 更新授权
- 如何配置冷热节点
- 忘记控制台密码
- 重置内置用户密码(例如tongsearch用户)
- 索引操作
- 新增
- 方式一:控制台的开发工具
- 方式二:postman
- 方式三:控制台的新增索引
- 往已有的索引里新增数据
- 更新
- 监控索引的信息
- 全文检索
- 聚合查询
- 根据日期进行分组
- 使用 terms 聚合结合范围查询来过滤出 4 月过生日的人
- 地理空间搜索测试
- 添加别名
- 索引模版
- 索引管理功能测试
- 关闭索引的写入
- 打开索引的写入
- 集群相关
- 读取一致性校验
- 负载均衡监控测试
安装准备
1.安装和配置好jdk环境变量(本次示范使用的是jdk11,最低要求jdk11)。
也可以使用自带jdk,在tongsearch节点的jdk目录:
2.确认cpu架构(可以使用lscpu查看),上传好相关安装包和授权(请联系销售获取),本次示范x86。
3.确保端口9209,9309不被占用,并放行对应端口(可以的话最好关闭防火墙)。
firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --permanent --zone=public --add-port=9300/tcp
firewall-cmd --reload
systemctl disable firewalld
4.创建对应使用的普通用户(本次示范创建的是tongsearch)。
useradd tongsearch
passwd tongsearch
5.配置/etc/security/limits.conf
tongsearch hard nproc unlimited
tongsearch soft nproc unlimited
tongsearch - nofile 262144
tongsearch - memlock unlimited
重启服务器,切换用户,输入ulimit -a查看:
配置/etc/sysctl.conf
#在最下面加一行配置
vm.max_map_count = 262144
#更新配置
sysctl -p
#輸出
vm.max_map_count = 262144
手册说明
支持的数据类型
备注:最终以产品手册为准。
安装控制台
su root
chown -R tongsearch:tongsearch /home/ts
su tongsearch
cd /home/ts
tar -zvxf tongsearch-console-3.0.4.0-linux-x86_64.tar.gz
如果需要修改端口,修改config.yml即可
注意检查并关闭防火墙
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 二 2025-01-21 14:11:05 CST; 54min ago
Docs: man:firewalld(1)
Main PID: 736 (firewalld)
CGroup: /system.slice/firewalld.service
└─736 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
1月 21 14:11:05 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
1月 21 14:11:05 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost ~]# systemctl stop firewalld
cd /home/ts/tongsearch-console-3.0.4.0-linux-x86_64/bin
# 后台启动
nohup ./tongsearch-console &
#启动
./tongsearch_console_service.sh start
#停止
./tongsearch_console_service.sh stop
#重启
./tongsearch_console_service.sh restart
启动后访问
http://服务器ip:8090/
◦ 用户名:admin
◦ 密码:admin123.com
登录后会显示如下,咱们先不动,把tongsearch节点给安装了
安装单节点(如需集群请跳过这一节)
解压和启动
通过tongsearch用户,解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts
编辑jvm.options,配置以下配置:
这里xmx和xms配置了4g,请根据自身需求配置:
修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下
cluster.name: tongsearch-cluster
node.name: ts1
transport.tcp.port: 9300
http.port: 9200
cluster.initial_master_nodes: ["ts1"]
network.host: 0.0.0.0
path.data: /home/ts/tongsearch-3.0.4.0/data
path.logs: /home/ts/tongsearch-3.0.4.0/logs
配置后启动服务
su tongsearch
cd /home/ts/tongsearch-3.0.4.0/bin
# 启动
./tongsearch -d -p pid
curl http://localhost:9200
如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid)
开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
备份好当前的tongsearch目录后,在tongserach节点目录执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil ca
之后会生成一个tongsearch-stack-ca.p12文件:
继续执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil cert --ca tongsearch-stack-ca.p12
之后会生成tongsearch-stack-ca.p12文件:
在config目录下创建certs目录,并将创建的两个p12文件拷贝过来:
cd /home/ts/tongsearch-3.0.4.0/config
mkdir certs
chmod 755 /home/ts/tongsearch-3.0.4.0/config/certs
cp ../tongsearch-certificates.p12 ./certs
cp ../tongsearch-stack-ca.p12 ./certs
在config目录下的tongsearch.yml最下面添加这一段:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/tongsearch-certificates.p12
之后可以关掉tongsearh后启动tongsearch,测试是否正常运行:
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
配置内置用户密码
前提条件:已根据上一节开启X-Pack Security和生成p12证书,并且节点运行正常。
如果没有的话,直接配置会报错,如下图所示:
备份好当前的tongsearch目录后,在tongsearch根目录执行(需保证tongsearch节点正常运行):
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-setup-passwords interactive
执行后如下图所示:
输入y,然后依次输入
之后执行:
curl -u tongsearch:你设置的密码 http://localhost:9200
配置ssl(先配置内置用户密码再配ssl)
前提条件:tongsearch单节点运行正常(如果没有配置内置用户密码,需要先配了内置用户密码)。
由于tongsearch-setup-passwords只能用于http,不能用于https,所以建议要是先设置了密码,再去开启ssl。
备份好当前的tongsearch目录后,在tongsearch.yml加入以下配置:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.http.ssl.truststore.path: certs/tongsearch-certificates.p12
重启tongsearch
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
然后访问https://服务器ip:9200/,在弹窗内输入tongsearch的账号和密码,得到下图所示:
也可以在服务器上执行
curl -k -u tongsearch:设置的密码 https://服务器ip:9200
配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
启动控制台,输入密码:
◦ 用户名:admin
◦ 密码:admin123.com
填写信息,测试连接(根据节点配的是http还是https来输入集群地址)
没问题后下一步:
修改密码
进去后看看当前集群,有对应节点的信息。
安装集群(节点都在不同服务器)
解压和启动
通过tongsearch用户,每台服务器上解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts
编辑jvm.options,配置以下配置:
这里xmx和xms配置了4g,请根据自身需求配置:
修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下
每个节点的tongsearch.yaml配置下述信息:
cluster.name: tongsearch-cluster
node.name: ts1
network.host: 192.168.10.113
transport.tcp.port: 9300
http.port: 9200
path.data: /home/ts/tongsearch-3.0.4.0/data
path.logs: /home/ts/tongsearch-3.0.4.0/logs
discovery.seed_hosts: ["192.168.10.113","192.168.10.114","192.168.10.115"]
cluster.initial_master_nodes: ["ts1","ts2","ts3"]
其中
node.name依次为ts1,ts2,ts3,不要重复
network.host为服务器ip,
discovery.seed_hosts为三台服务器ip,例如:
[“192.168.10.113”,“192.168.10.114”,“192.168.10.115”]
备注:
1.data和logs目录要配置好权限,最好就用tongsearch内部自带的。
2.192.168.10.113请替换为自身服务器ip
3.node.name需要改,例如是ts1,ts2,ts3
4.discovery.seed_hosts 需要写入集群ip
5.注意缩进。
编辑jvm.options,配置以下配置:
这里xmx和xms配置了4g,请根据自身需求配置:
修改后启动各个节点(记得检查防火墙有没有关)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
[root@localhost ~]# curl http://192.168.10.113:9200/_cat/nodes
192.168.10.114 11 63 1 0.00 0.07 0.05 cdfhimrstw * ts2
192.168.10.115 4 63 1 0.13 0.17 0.12 cdfhimrstw - ts3
192.168.10.113 5 63 1 0.14 0.15 0.08 cdfhimrstw - ts1
[root@localhost ~]# curl http://192.168.10.113:9200/_cluster/health?pretty
{
"cluster_name" : "tongsearch-cluster",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 3,
"number_of_data_nodes" : 3,
"active_primary_shards" : 2,
"active_shards" : 4,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
记得把192.168.10.113 替换成实际主节点的服务器ip。
如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid)
开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
确认集群没问题后,每个节点都执行以下操作:
tongserach节点目录执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil ca
之后会生成一个tongsearch-stack-ca.p12文件:
继续执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil cert --ca tongsearch-stack-ca.p12
之后会生成tongsearch-stack-ca.p12文件:
在config目录下创建certs目录,并将创建的两个p12文件拷贝过来:
cd /home/ts/tongsearch-3.0.4.0/config
mkdir certs
chmod 755 /home/ts/tongsearch-3.0.4.0/config/certs
cp ../tongsearch-certificates.p12 ./certs
cp ../tongsearch-stack-ca.p12 ./certs
配置在tongsearch.yml最下面添加这一段(这里的xpack.security.transport.ssl.verification_mode跟单节点的有点不一样):
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/tongsearch-certificates.p12
之后可以关掉tongsearh后启动tongsearch,测试是否正常运行:
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
配置内置用户密码
前提条件:已根据上一节开启X-Pack Security和生成p12证书,并且节点运行正常。
如果没有的话,直接配置会报错,如下图所示:
备份好当前的tongsearch目录后,在其中一个tongsearch根目录下执行(需保证tongsearch节点正常运行):
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-setup-passwords interactive
执行后如下图所示:
输入y,然后依次输入
配置成功后,可以测试一下集群的指令,例如:
curl -k -u tongsearch:配置的密码 http://服务器ip:9200/_cat/nodes
可以看到,虽然只配置了一个节点的内置用户密码,但是集群里的其他节点也可以使用:
也可以在浏览器访问
还可以执行
curl -k -u tongsearch:配置的密码 http://服务器ip:9200/_cluster/health?pretty
配置ssl(先配置内置用户密码再配ssl)
前提条件:tongsearch集群运行正常(如果没有配置内置用户密码,需要先配了内置用户密码)。
由于tongsearch-setup-passwords只能用于http,不能用于https,所以建议要是先设置了密码,再去开启ssl。
备份好当前的tongsearch目录后,在tongsearch.yml加入以下配置:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.http.ssl.truststore.path: certs/tongsearch-certificates.p12
重启tongsearch
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
然后访问https://服务器ip:9200/_cat/nodes,在弹窗内输入tongsearch的账号和密码,得到下图所示:
也可以在服务器上执行
curl -k -u tongsearch:设置的密码 https://服务器ip:9200/_cat/nodes
配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
之后可以登录控制台后,输入主节点的ip地址:9200,输入密码
◦ 用户名:admin
◦ 密码:admin123.com
填写信息,点击测试连接:
没问题后下一步:
修改密码
进去后看看当前集群,有对应集群里所有节点的信息。
安装集群(节点都在同一台服务器)
解压和启动
通过tongsearch用户,解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts
编辑jvm.options,配置以下配置:
这里xmx和xms配置了4g,请根据自身需求配置:
修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下
network.host: 0.0.0.0
discovery.seed_hosts: ["localhost:9300","localhost:9301","localhost:9302"]
cluster.initial_master_nodes: ["ts1","ts2","ts3"]
依次执行指令:
[tongsearch@192 tongsearch-3.0.4.0]$ cd /home/ts/tongsearch-3.0.4.0
[tongsearch@192 tongsearch-3.0.4.0-onenode]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts1 -Etransport.tcp.port=9300 -Ehttp.port=9200 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data1 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log1 -p pid1
[tongsearch@192 tongsearch-3.0.4.0]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts2 -Etransport.tcp.port=9301 -Ehttp.port=9201 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data2 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log2 -p pid2
[tongsearch@192 tongsearch-3.0.4.0]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts3 -Etransport.tcp.port=9302 -Ehttp.port=9202 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data3 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log3 -p pid3
如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid1)
kill $(cat pid2)
kill $(cat pid3)
之后执行
[tongsearch@192 tongsearch-3.0.4.0]$ curl http://192.168.10.113:9200/_cat/nodes
192.168.10.113 14 98 6 0.46 0.44 0.22 cdfhimrstw * ts1
192.168.10.113 33 98 5 0.46 0.44 0.22 cdfhimrstw - ts2
192.168.10.113 24 98 2 0.46 0.44 0.22 cdfhimrstw - ts3
备注:
1.如果需要配置内置用户密码和ssl,可以参考本帖里的其他章节内容,用法基本一致。
配置控制台
启动控制台,输入密码:
◦ 用户名:admin
◦ 密码:admin123.com
填写信息,测试连接
没问题后下一步:
修改密码
进去后看看当前集群,有对应集群里所有节点的信息。
查看授权过期时间
查看授权过期时间
第一种:没有配置ssl和内置用户:
curl http://localhost:9209/_license/tong
第二种:(配置了内置用户密码)
curl -u tongsearch:你设置的密码 http://localhost:9200/_license/tong
第三种:(配置了内置用户密码和ssl)
curl -k -u tongsearch:设置的密码
https://localhost:9200/_license/tong
备注:localhost可换成服务器ip
更新授权
curl -k -v -u tongsearch:tongsearch 'http://192.168.10.113:9200/_license/tong' --header 'Content-Type: application/json' --data '"授权信息"'
其中tongsearch用户配置了密码tongsearch,如果没有配置,可以把-k -u 去掉,如果配置了ssl,则把http改成https,另外192.168.10.113:9200为服务器ip,授权信息为license.dat文件里的文本信息,该文件需要联系东方通销售进行获取。
如何配置冷热节点
tongsearch.yml配置,跟elasticsearch的配置语法一致:
忘记控制台密码
重置内置用户密码(例如tongsearch用户)
如果已经使用了./bin/tongsearch-setup-passwords interactive配置了一次内置用户的密码,再执行相同指令,会有报错提示:
这是因为这种方式只适合第一次配置内置用户密码,第二次的话,得参考以下形式:
索引操作
新增
可以通过控制台或者postman进行操作。
方式一:控制台的开发工具
PUT product_info
{
"settings": {
"number_of_shards": 5,
"number_of_replicas": 1
},
"mappings": {
"properties": {
"productName": {
"type": "text"
},
"annual_rate": {
"type": "keyword"
},
"describe": {
"type": "text"
}
}
}
}
方式二:postman
方式三:控制台的新增索引
往已有的索引里新增数据
例如已在控制台创建了一个索引people,可以通过以下形式新增数据:
curl -k -u tongsearch:设置的密码 -H 'Content-Type: application/x-ndjson' -s -XPOST https://192.168.10.113:9200/people/_bulk --data-binary "@chinese_people_test_dataset2.json"
其中如果没有配置内置用户密码的,可以把-k -u tongserach:设置的密码去掉,另外json文件已绑定在该帖子里了。
执行后会有以下提示,不用管(json文件里的个别数据的问题,大概1138和1196行):
到控制台查看:
可以往下拉,看看其中一个id是多少,再去查询
更新
监控索引的信息
根据下列索引性能相关重要指标判断性能情况:
refresh.total:总刷新计数。刷新总数的计数。
refresh.total_time_in_millis:刷新总时间。汇总所有花在刷新的时间(以毫秒为
单位进行测量)。
merges.current_docs:目前的合并。合并目前正在处理中。
merges.total_docs:合并总数。合并总数的计数。
merges.total_stopped_time_in_millis。合并花费的总时间。合并段的所有时间的聚
合
全文检索
还可以增加搜索条件
GET people/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"first_name": "马"
}
},
{
"match": {
"last_name": "程"
}
}
]
}
}
}
聚合查询
更多的内容可参考帖子上传的文件:009_TongSearch_V3.0聚合使用手册_3040A01,本帖只提供部分作为参考
根据日期进行分组
GET people/_search
{
"size": 0,
"aggs": {
"birthdays_by_month": {
"date_histogram": {
"field": "birthday",
"calendar_interval": "month",
"format": "yyyy-MM",
"min_doc_count": 0
}
}
}
}
使用 terms 聚合结合范围查询来过滤出 4 月过生日的人
GET people/_search
{
"size": 0,
"query": {
"range": {
"birthday": {
"gte": "2000-04-01",
"lte": "2010-04-30",
"format": "yyyy-MM-dd"
}
}
},
"aggs": {
"birth_years": {
"date_histogram": {
"field": "birthday",
"calendar_interval": "year",
"format": "yyyy",
"min_doc_count": 0
}
}
}
}
地理空间搜索测试
PUT /museums
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
POST /museums/_doc/_bulk?refresh
{"index":{"_id":1}}
{"location": "52.374081,4.912350", "name": "NEMO Science Museum"}
{"index":{"_id":2}}
{"location": "52.369219,4.901618", "name": "Museum Het Rembrandthuis"}
{"index":{"_id":3}}
{"location": "52.371667,4.914722", "name": "Nederlands Scheepvaartmuseum"}
{"index":{"_id":4}}
{"location": "51.222900,4.405200", "name": "Letterenhuis"}
{"index":{"_id":5}}
{"location": "48.861111,2.336389", "name": "Musée du Louvre"}
{"index":{"_id":6}}
{"location": "48.860000,2.327000", "name": "Musée d'Orsay"}
查询
POST /museums/_search?size=0
{
"aggs": {
"rings_around_amsterdam": {
"geo_distance": {
"field": "location",
"origin": "52.3760, 4.894",
"ranges": [
{ "to": 100000 },
{ "from": 100000, "to": 300000 },
{ "from": 300000 }
]
}
}
}
}
添加别名
POST _aliases
{
"actions":[
{
"add":{
"index": "people",
"alias": "people_alias"}
}]
}
索引模版
PUT _template/my_template
{
"index_patterns": [
"my_index_*"
],
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
},
"mappings": {
"properties": {
"title": {
"type": "text"
},
"content": {
"type": "text"
},
"date": {
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
验证:
索引管理功能测试
关闭索引的写入
打开索引的写入
集群相关
读取一致性校验
先确认集群状态是否正常
GET _cluster/health
通过指令查看例如people这个索引里的数据,选择一条作为测试用(这里请留意id这个数值)
集群里的每个节点都执行指令查询是否有对应数据:
curl -k -u tongsearch:100879o.o -XGET https://192.168.10.113:9200/people/_doc/F1Ja2ZQBffzEZVfC0AHR
其中如果没有配内置用户密码,可以去掉-k -u tongsearch:100879o.o(100879o.o是我自己配的内置用户密码),如果没配ssl,把https改成http。
负载均衡监控测试
可以在控制台里查看,如下图所示:
可以通过 load_1m(最近 1 分钟的平均负载),load_5m(最近 5 分钟的平均负载),
load_15m(最近 15 分钟的平均负载)判断各个节点的负载是否平衡。