elastersearch7.6.1搭建及基本操作详解
vim /etc/security/limits.conf
* soft nofile 655350 * hard nofile 655350 * soft nofile 655350 * hard nofile 655350 es soft memlock unlimited es hard memlock unlimited
vim /etc/sysctl.conf
vm.max_map_count=262144 fs.file-max=655360 vm.swappiness=1
保存后执行 sysctl -p
编辑配置文件
vim elastersearch.yaml
cluster.name: elastersearch node.name: cs-es1 path.data: /home/es/data path.logs: /home/es/logs # 是否锁住内存,避免交换内存带来性能损失,默认为false bootstrap.memory_lock: true # 本机ip network.host: 192.168.1.2 http.port: 9200 transport.tcp.port: 9300 # 节点角色,默认data master client 都有,如果分开,则改为 false node.data: true node.master: true # 所有节点ip discovery.seed_hosts: ["192.168.1.2","192.168.1.3","192.168.1.4"] # 初始化 master 节点 cluster.initial_master_nodes: ["192.168.1.2","192.168.1.3","192.168.1.4"] discovery.zen.ping_timeout: 60s discovery.zen.join_timeout: 60s # 忽略不符合master的节点 discovery.zen.master_election.ignore_non_master_pings: true # 选举最多同意数 discovery.zen.mininum_master_nodes: 1 gateway.recover_after_nodes: 1 gateway.recover_after_time: 5m gateway.expected_nodes: 1 # xpack,如果不需要开启,注释掉 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
此配置文件为模板,如需多台服务器组集群,则要将本模板的node.name、network.host字段更改为实际的名称和地址,discovery.seed_hosts和cluster.initial_master_nodes也要做相应的更改
若开启 xpath ,需要创建证书
执行命令生成证书
bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""
需要将此证书放在每台节点的 config/ 目录下
然后重启es,然后设置密码
需要为4个用户分别设置密码:elastic、kibana、logstash_system、beats_system
1.可以自动设置密码
bin/elasticsearch-setup-passwords auto
2.也可以手动设置密码
bin/elasticsearch-setup-passwords interactive
访问时加上密码访问即可
curl -u elastic:baidu@123 '192.168.1.2/_cat/nodes'
如果kibina等需要链接ES,需要在连接的配置文件中指定密码
加入systemd管理
vim /usr/lib/systemd/system/elasticsearch.service
[Unit] Description=es user elasticsearch.service After=network.target [Service] Type=simple User=es Group=es ExecStart=/home/es/elasticsearch7/bin/elasticsearch ExecStop=/bin/kill -9 $MAINPID Restart=no LimitMEMLOCK=infinity LimitNOFILE=1048576 LimitNPROC=1048576 PrivateTmp=true [Install] WantedBy=multi-user.target
其中参数不太理解可以参考此博文:http://www.jinbuguo.com/systemd/systemd.service.html
重新加载systemd
systemctl daemon-reload
systemctl start elasticsearch.service
基本操作
1、查看集群健康状态
curl '10.231.13.177:9200/_cluster/health?pretty' { "cluster_name" : "elasticsearch", "status" : "green", //集群的状态红绿灯,绿:健康,黄:亚健康,红:病态 "timed_out" : false, "number_of_nodes" : 4, //节点数 "number_of_data_nodes" : 1, //数据节点数 "active_primary_shards" : 0, //分片数,0个Index库 "active_shards" : 0, //正常的分片数 "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 } ## 查看指定索引库的健康状态 http://localhost:9200/_cluster/health/index_name?pretty
2、查询集群所有节点
curl '10.231.13.177:9200/_cat/nodes?v' ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 10.231.66.181 18 96 14 3.12 4.11 4.44 di - ngd-es5-elasticsearch-data-0 10.231.66.172 26 96 14 3.12 4.11 4.44 - - ngd-es5-elasticsearch-client-7795566789-6qc5x 10.231.66.183 40 96 14 3.12 4.11 4.44 m - ngd-es5-elasticsearch-master-0 10.231.64.85 35 99 2 0.37 0.63 0.76 m * ngd-es5-elasticsearch-master-1 heap.percent:堆内存占的内存百分比 ram.percent:物理内存占用百分比 cpu:表示使用的cpu核心 load_1m load_5m load_15m:1分钟 5分钟 15分钟 占用系统cpu百分比 node.role:表示节点能充当的角色主(m)、数据(di) 、client(-)节点,节点未区分开为dilm master:表示当前是否为主节点,*表示当前为主 ## 查看MASTER节点 curl '10.233.0.93:9200/_cat/master?v' id host ip node 2oaDofmzQ6KQK9BlorvO0Q 10.233.110.41 10.233.110.41 ngd-es5-elasticsearch-master-1
3、列出所有索引
curl '10.231.13.177:9200/_cat/indices?v' health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open vfantest acyI9dArRAqTOHNAwGO_oQ 5 1 0 0 650b 650b
当前只有一个索引
4、查看各个节点的总分片数及分布情况,及磁盘使用率
curl '10.233.8.243:9200/_cat/allocation?v' shards disk.indices disk.used disk.avail disk.total disk.percent host ip node 28 84.8kb 284.4gb 57.8gb 342.2gb 83 10.233.64.133 10.233.64.133 ngd-es7-master-1 29 68.2kb 140.3gb 201.9gb 342.2gb 40 10.233.66.72 10.233.66.72 ngd-es7-master-2 29 106.4kb 91.4gb 250.8gb 342.2gb 26 10.233.65.219 10.233.65.219 ngd-es7-master-0
5、查看集群分片的详细分布,分片的大小等
curl '10.233.8.243:9200/_cat/shards?v' index shard prirep state docs store ip node dialog-statistics-scene-202106 1 p STARTED 0 283b 10.233.64.133 ngd-es7-master-1 dialog-statistics-scene-202106 1 r STARTED 0 283b 10.233.65.219 ngd-es7-master-0 dialog-statistics-scene-202106 2 p STARTED 0 283b 10.233.66.72 ngd-es7-master-2 dialog-statistics-scene-202106 2 r STARTED 0 283b 10.233.65.219 ngd-es7-master-0 dialog-statistics-scene-202106 0 r STARTED 0 283b 10.233.64.133 ngd-es7-master-1 dialog-statistics-scene-202106 0 p STARTED 0 283b 10.233.66.72 ngd-es7-master-2 search-suggest-online-data 1 r STARTED 0 283b 10.233.64.133 ngd-es7-master-1 search-suggest-online-data 1 p STARTED 0 283b 10.233.65.219 ngd-es7-master-0 search-suggest-online-data 2 p STARTED 0 283b 10.233.66.72 ngd-es7-master-2 search-suggest-online-data 2 r STARTED 0 283b 10.233.65.219 ngd-es7-master-0 search-suggest-online-data 0 r STARTED 0 283b 10.233.64.133 ngd-es7-master-1 search-suggest-online-data 0 p STARTED 0 283b 10.233.66.72 ngd-es7-master-2
6、查看 segments 分布信息
curl '10.233.8.243:9200/_cat/segments?v' index shard prirep ip segment generation docs.count docs.deleted size size.memory committed searchable version compound data-record-index-202106 0 p 10.233.64.133 _0 0 9 0 19.4kb 6477 true true 8.4.0 true data-record-index-202106 0 r 10.233.66.72 _0 0 9 0 19.4kb 6477 true true 8.4.0 true data-record-index-202106 1 p 10.233.64.133 _0 0 7 0 19.4kb 6461 true true 8.4.0 true data-record-index-202106 1 p 10.233.64.133 _1 1 9 0 38.1kb 6621 true true 8.4.0 true data-record-index-202106 1 r 10.233.65.219 _0 0 7 0 19.4kb 6461 true true 8.4.0 true data-record-index-202106 1 r 10.233.65.219 _1 1 9 0 38.1kb 6621 true true 8.4.0 true data-record-index-202106 2 p 10.233.66.72 _0 0 4 0 16.2kb 6437 true true 8.4.0 true data-record-index-202106 2 p 10.233.66.72 _1 1 5 0 24.4kb 6541 true true 8.4.0 true data-record-index-202106 2 r 10.233.65.219 _0 0 4 0 16.2kb 6437 true true 8.4.0 true data-record-index-202106 2 r 10.233.65.219 _1 1 5 0 24.4kb 6541 true true 8.4.0 true
7、创建一个索引:
## 可以在创建中指定settings 和 mappings,加-d '{}' 参数指定即可 curl -XPUT '10.231.13.177:9200/20210122?pretty' -H 'content-type: application/json' -d '{ "acknowledged" : true, "shards_acknowledged" : true }' settings格式: "settings": { "number_of_shards": 5, "number_of_replicas": 1 } mappings格式: "mappings": { "sms_up": { "dynamic_templates": [ { "strings_as_keywords": { "match_mapping_type": "string", "mapping": { "type": "keyword" } } } ], ## 再次查看索引 curl '10.231.13.177:9200/_cat/indices?v' health status index uuid pri rep docs.count docs.deleted store.size pri.store.size yellow open vfantest acyI9dArRAqTOHNAwGO_oQ 5 1 0 0 650b 650b yellow open 20210122 urFLBfkQRGmIQVcXqITG5w 5 1 0 0 260b 260b
看到名称为"20210122"的索引已经创建,它有5个私有的分片以及一个副本
8、插入和获取
现在来插入一些数据到集群索引,插入时必须要指定数据类型,例如 external 类型 ID为 1 的数据
curl -XPUT 'localhost:9200/20210122/external/1?pretty' -d ' > { > "name": "Tony", > "sex": "boy" > }' 回显: { "_index" : "20210122", "_type" : "external", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true }
返回为""created" : true" 代表创建成功
获取 20210122 索引下类型为 external 、ID =1 的数据,pretty参数表示返回结果格式美观。
curl 'localhost:9200/20210122/external/1?pretty' { "_index" : "20210122", "_type" : "external", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "name" : "Tony", "sex" : "boy" } }
9、删除索引
curl -XDELETE 'localhost:9200/20210122' {"acknowledged":true}
10、查看ES有哪些插件
curl '10.233.0.93:9200/_cat/plugins?v' name component version ngd-es5-elasticsearch-master-2 analysis-ik 5.4.2 ngd-es5-elasticsearch-master-2 discovery-kubernetes 5.4.2 ngd-es5-elasticsearch-master-2 elasticsearch-analysis-ansj 5.4.2.0 ngd-es5-elasticsearch-master-2 ingest-geoip 5.4.2 ngd-es5-elasticsearch-master-2 ingest-user-agent 5.4.2 ngd-es5-elasticsearch-master-2 x-pack 5.4.2 ... ngd-es5-elasticsearch-client-7795566789-6w2ns x-pack 5.4.2
11、查看当前ES节点信息
curl '10.233.0.93:9200' { "name" : "ngd-es5-elasticsearch-client-7795566789-6w2ns", "cluster_name" : "elasticsearch", "cluster_uuid" : "KJAcgz-xQ1awOxG4T-WOlA", "version" : { "number" : "5.4.2", "build_hash" : "929b078", "build_date" : "2017-06-15T02:29:28.122Z", "build_snapshot" : false, "lucene_version" : "6.5.1" }, "tagline" : "You Know, for Search" }
You Know,for Search 表示节点正常