vm.max_map_count<\/strong> as shown below.<\/p>\n\n\n\nvm.max_map_count=262144<\/pre>\n\n\n\nYou can simply run the command below to configure virtual memory settings.<\/p>\n\n\n\n
echo \"vm.max_map_count=262144\" >> \/etc\/sysctl.conf<\/pre>\n\n\n\nTo apply the changes;<\/p>\n\n\n\n
sysctl -p<\/code><\/pre>\n\n\n\nTo that far, below is the configuration file on each node;<\/p>\n\n\n\n
grep -Ev '^#|^$' \/etc\/elasticsearch\/elasticsearch.yml<\/code><\/pre>\n\n\n\nNode 01;<\/p>\n\n\n\n
cluster.name: kifarunix-demo\nnode.name: es-node01\nnode.roles: [ master, data ]\npath.data: \/var\/lib\/elasticsearch\npath.logs: \/var\/log\/elasticsearch\nbootstrap.memory_lock: true\nnetwork.host: 192.168.122.12\nhttp.port: 9200\nxpack.security.enabled: true\nxpack.security.enrollment.enabled: true\nxpack.security.http.ssl:\n enabled: true\n keystore.path: certs\/http.p12\nxpack.security.transport.ssl:\n enabled: true\n verification_mode: certificate\n keystore.path: certs\/transport.p12\n truststore.path: certs\/transport.p12\ncluster.initial_master_nodes: [\"es-node01\"]\n<\/code><\/pre>\n\n\n\nNode 02<\/p>\n\n\n\n
cluster.name: kifarunix-demo\nnode.name: es-node02\nnode.roles: [ master, data ]\npath.data: \/var\/lib\/elasticsearch\npath.logs: \/var\/log\/elasticsearch\nbootstrap.memory_lock: true\nnetwork.host: 192.168.122.73\nhttp.port: 9200\nxpack.security.enabled: true\nxpack.security.enrollment.enabled: true\nxpack.security.http.ssl:\n enabled: true\n keystore.path: certs\/http.p12\nxpack.security.transport.ssl:\n enabled: true\n verification_mode: certificate\n keystore.path: certs\/transport.p12\n truststore.path: certs\/transport.p12\ncluster.initial_master_nodes: [\"es-node02\"]\n<\/code><\/pre>\n\n\n\nNode 03<\/p>\n\n\n\n
cluster.name: kifarunix-demo\nnode.name: es-node03\nnode.roles: [ master, data ]\npath.data: \/var\/lib\/elasticsearch\npath.logs: \/var\/log\/elasticsearch\nbootstrap.memory_lock: true\nnetwork.host: 192.168.122.50\nhttp.port: 9200\nxpack.security.enabled: true\nxpack.security.enrollment.enabled: true\nxpack.security.http.ssl:\n enabled: true\n keystore.path: certs\/http.p12\nxpack.security.transport.ssl:\n enabled: true\n verification_mode: certificate\n keystore.path: certs\/transport.p12\n truststore.path: certs\/transport.p12\ncluster.initial_master_nodes: [\"en-node03\"]\n<\/code><\/pre>\n\n\n\nStart and Enable Elasticsearch Service on Node 01<\/h4>\n\n\n\n
For now, start and enable Elasticsearch service to run on system boot on Node 01 ONLY.<\/p>\n\n\n\n
systemctl enable --now elasticsearch<\/code><\/pre>\n\n\n\nConfirm that Elasticsearch is running;<\/p>\n\n\n\n
systemctl status elasticsearch<\/code><\/pre>\n\n\n\nThe password was in the installation output;<\/p>\n\n\n\n
\u25cf elasticsearch.service - Elasticsearch\n Loaded: loaded (\/lib\/systemd\/system\/elasticsearch.service; enabled; preset: enabled)\n Drop-In: \/etc\/systemd\/system\/elasticsearch.service.d\n \u2514\u2500override.conf\n Active: active (running) since Thu 2023-11-23 12:25:26 EST; 4s ago\n Docs: https:\/\/www.elastic.co\n Main PID: 580 (java)\n Tasks: 80 (limit: 4645)\n Memory: 1.7G\n CPU: 27.822s\n CGroup: \/system.slice\/elasticsearch.service\n \u251c\u2500580 \/usr\/share\/elasticsearch\/jdk\/bin\/java -Xms4m -Xmx64m -XX:+UseSerialGC -Dcli.name=server -Dcli.script=\/usr\/share\/elasticsearch\/bin\/elasticsearch -Dcl>\n \u251c\u2500638 \/usr\/share\/elasticsearch\/jdk\/bin\/java -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -Djava.security.manager=allow -XX:+>\n \u2514\u2500658 \/usr\/share\/elasticsearch\/modules\/x-pack-ml\/platform\/linux-x86_64\/bin\/controller\n\nNov 23 12:25:12 es-node01.kifarunix-demo.com systemd[1]: Starting elasticsearch.service - Elasticsearch...\nNov 23 12:25:14 es-node01.kifarunix-demo.com systemd-entrypoint[580]: Nov 23, 2023 12:25:14 PM sun.util.locale.provider.LocaleProviderAdapter \nNov 23 12:25:14 es-node01.kifarunix-demo.com systemd-entrypoint[580]: WARNING: COMPAT locale provider will be removed in a future release\nNov 23 12:25:26 es-node01.kifarunix-demo.com systemd[1]: Started elasticsearch.service - Elasticsearch.\n<\/code><\/pre>\n\n\n\nConfirm the ports are opened.<\/p>\n\n\n\n
ss -altnp | grep -iE '92|93'<\/code><\/pre>\n\n\n\nLISTEN 0 4096 [::ffff:192.168.122.12]:9200 *:* users:((\"java\",pid=638,fd=438))\nLISTEN 0 4096 [::ffff:192.168.122.12]:9300 *:* users:((\"java\",pid=638,fd=433))\n<\/code><\/pre>\n\n\n\ncurl -k -u elastic https:\/\/es-node01:9200<\/code><\/pre>\n\n\n\n{\n \"name\" : \"es-node01\",\n \"cluster_name\" : \"kifarunix-demo\",\n \"cluster_uuid\" : \"KuX8vWFOTry9GDJCtXvo_g\",\n \"version\" : {\n \"number\" : \"8.11.1\",\n \"build_flavor\" : \"default\",\n \"build_type\" : \"deb\",\n \"build_hash\" : \"6f9ff581fbcde658e6f69d6ce03050f060d1fd0c\",\n \"build_date\" : \"2023-11-11T10:05:59.421038163Z\",\n \"build_snapshot\" : false,\n \"lucene_version\" : \"9.8.0\",\n \"minimum_wire_compatibility_version\" : \"7.17.0\",\n \"minimum_index_compatibility_version\" : \"7.0.0\"\n },\n \"tagline\" : \"You Know, for Search\"\n}\n<\/code><\/pre>\n\n\n\nEnroll Other Nodes into Elasticsearch Cluster<\/h3>\n\n\n\n
At this point, Elasticsearch is running on Node 01 ONLY.<\/p>\n\n\n\n
Generate Elasticsearch Cluster Enrollment Token<\/h4>\n\n\n\n
Next, you need to generate Elasticsearch cluster enrollment token. Do this only on a single node<\/strong> where ES is already started.<\/p>\n\n\n\nIn this setup, we will generate Elasticsearch cluster enrollment token on ES Node01 ONLY since we have started Elasticsearch service on this node.<\/p>\n\n\n\n
\/usr\/share\/elasticsearch\/bin\/elasticsearch-create-enrollment-token -s node<\/code><\/pre>\n\n\n\nSample token;<\/p>\n\n\n\n
eyJ2ZXIiOiI4LjExLjEiLCJhZHIiOlsiMTkyLjE2OC4xMjIuMTI6OTIwMCJdLCJmZ3IiOiI0MDAxNjNiYmEzNDA3NjM4ZGEyNmNmYWI4OTVmNTFjNDU1NzU2NWNmYzljNGZhMzY4OGNhOTEwNDE1MWQxM2ViIiwia2V5IjoiMnRRNl9Zc0JsYjlwbjlBcGk2Qk06emZqU1ZPMXNRbmFvTDZ5N0FORVdHZyJ9<\/code><\/pre>\n\n\n\nOnce you have the token, enroll other nodes.<\/p>\n\n\n\n
Enroll Elasticsearch Node 02;<\/p>\n\n\n\n
\/usr\/share\/elasticsearch\/bin\/elasticsearch-reconfigure-node --enrollment-token <PASTE TOKEN ABOVE> <\/strong><\/code><\/pre>\n\n\n\nFor example;<\/p>\n\n\n\n
\/usr\/share\/elasticsearch\/bin\/elasticsearch-reconfigure-node --enrollment-token eyJ2ZXIiOiI4LjExLjEiLCJhZHIiOlsiMTkyLjE2OC4xMjIuMTI6OTIwMCJdLCJmZ3IiOiI0MDAxNjNiYmEzNDA3NjM4ZGEyNmNmYWI4OTVmNTFjNDU1NzU2NWNmYzljNGZhMzY4OGNhOTEwNDE1MWQxM2ViIiwia2V5IjoiMnRRNl9Zc0JsYjlwbjlBcGk2Qk06emZqU1ZPMXNRbmFvTDZ5N0FORVdHZyJ9<\/code><\/pre>\n\n\n\n