How to Set Up Elasticsearch on Your VPS

Elasticsearch is a powerful open-source search and analytics engine that helps handle large volumes of data efficiently. Setting it up on your VPS can enhance your application’s search functionality.


Step 1: Update Your System

Ensure your VPS is up-to-date to avoid compatibility issues.

  • Update the package lists:
    sudo apt update && sudo apt upgrade -y
    

Step 2: Install Java (Prerequisite)

Elasticsearch requires Java to run.

  • Install OpenJDK:
    sudo apt install openjdk-11-jdk -y
    
  • Verify the Java installation:
    java -version
    
    You should see output confirming the installed version of Java.

Step 3: Import the Elasticsearch GPG Key and Repository

Add the official Elasticsearch package repository to your system.

  • Import the Elasticsearch GPG key:
    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    
  • Add the repository to your sources list:
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
    
  • Update the package list:
    sudo apt update
    

Step 4: Install Elasticsearch

  • Install Elasticsearch:
    sudo apt install elasticsearch -y
    
  • Verify the installation:
    dpkg -l | grep elasticsearch
    

Step 5: Configure Elasticsearch

Edit the Elasticsearch configuration file to optimize its performance.

  • Open the configuration file:
    sudo nano /etc/elasticsearch/elasticsearch.yml
    
  • Modify the following settings:
    • Set the node name:
      node.name: node-1
      
    • Set the cluster name (optional):
      cluster.name: my-cluster
      
    • Bind Elasticsearch to your VPS’s IP:
      network.host: 0.0.0.0
      
      Replace 0.0.0.0 with your specific IP if necessary.
  • Save and exit (Ctrl+O, Enter, Ctrl+X).

Step 6: Enable and Start Elasticsearch

  • Enable Elasticsearch to start at boot:
    sudo systemctl enable elasticsearch
    
  • Start the Elasticsearch service:
    sudo systemctl start elasticsearch
    
  • Check the service status:
    sudo systemctl status elasticsearch
    

Step 7: Test the Installation

  • Verify that Elasticsearch is running by sending an HTTP request:
    curl -X GET "http://localhost:9200/"
    
    You should see a JSON response with cluster information.
  • If your VPS is accessible externally, replace localhost with your VPS’s IP to test connectivity.

Step 8: Secure Elasticsearch (Optional but Recommended)

By default, Elasticsearch binds to localhost for security. If you’ve configured it to be externally accessible, secure it.

  • Set up a firewall: Only allow trusted IPs to access port 9200. For example:
    sudo ufw allow from <trusted-IP> to any port 9200
    
  • Enable authentication: Configure Elasticsearch to use X-Pack security for added protection. Refer to the Elasticsearch documentation for detailed instructions.

Step 9: Use Elasticsearch

You can now integrate Elasticsearch into your application. Popular use cases include:

  • Full-text search.
  • Data analytics.
  • Log monitoring with tools like Kibana.

Step 10: Troubleshooting Tips

  • Service not starting: Check logs for errors:
    sudo journalctl -u elasticsearch
    
  • Connection issues: Verify that the firewall and network.host settings are configured correctly.

Note: Regularly update Elasticsearch to keep it secure and ensure compatibility with your applications.

Was this answer helpful? 0 Users Found This Useful (0 Votes)