elasticsearch_mastodon/README.md
2024-05-18 16:39:44 +02:00

4.4 KiB

Instalace Elasticsearch pro Mastodo# Instalace Elasticsearch pro Mastodon

Tento repozitář obsahuje instrukce a konfigurace pro instalaci a nastavení Elasticsearch serveru, který je určen pro použití s Mastodon instancí na serveru Ubuntu 22.04.

Požadavky

  • Ubuntu 22.04
  • OpenJDK 11

Instalace Elasticsearch

  1. Aktualizace systému

    sudo apt update
    
  2. Instalace OpenJDK 11

    sudo apt install openjdk-11-jre
    
  3. Přidání Elasticsearch repozitáře

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-    key add -
    sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt          stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
    sudo apt update
    
  4. Instalace Elasticsearch

    sudo apt install elasticsearch
    

    ¨

  5. Zapnutí a spuštění služby Elasticsearch

    sudo service elasticsearch start
    sudo systemctl enable elasticsearch
    

Nastavení bezpečnosti

  1. Konfigurace firewallu Povolte přístup pouze z IP adresy serveru s Mastodon instancí:

    sudo ufw allow from <IP_adresa_Mastodon_serveru> to any port 9200
    

Nastavení uživatele pro Elasticsearch a konfigurace zabezpečení

Tento návod popisuje kroky pro nastavení zabezpečeného uživatele v Elasticsearch a konfiguraci přístupu Mastodonu k Elasticsearch.

Povolení zabezpečení v Elasticsearch

  1. Editace konfiguračního souboru Elasticsearch

    • Otevřete konfigurační soubor elasticsearch.yml, který se obvykle nachází v /etc/elasticsearch/:
      sudo nano /etc/elasticsearch/elasticsearch.yml
      
    • Vyhledejte následující řádek a odstraňte z něj komentář:
      #xpack.security.enabled: true
      
    • Změňte ho na:
      xpack.security.enabled: true
      
  2. Restartování Elasticsearch

    • Po uložení změn v konfiguračním souboru restartujte Elasticsearch, aby se změny projevily:
      sudo systemctl restart elasticsearch
      

Nastavení uživatele v Elasticsearch

  1. Vytvoření nového uživatele
    • Spusťte následující příkaz pro vytvoření nového uživatele s názvem mastodon_user:
      curl -u "admin:admin_password" -X POST "http://localhost:9200/_security/user/mastodon_user" -H 'Content-Type: application/json' -d'
      {
        "password" : "mastodon_password",
        "roles" : ["superuser"],
        "full_name" : "Mastodon User",
        "email" : "user@example.com"
      }
      

Konfigurace Mastodonu pro přístup k Elasticsearch

  1. Editace .env.production souboru v Mastodonu
    • Přejděte do kořenového adresáře Mastodonu a otevřete .env.production pro editaci:
      nano .env.production
      
  • Přidejte nebo upravte následující řádky, aby odrážely informace o Elasticsearch serveru:

    #Configuring full-text search
    ES_ENABLED=true
    ES_HOST=ip_adresa_serveru_elesticsearch
    ES_PORT=9200
    ES_PRESET=single_node_cluster # single_node_cluster, small_cluster or         large_cluster
    #ES_USER=
    #ES_PASS=
     ```
    
    
  1. Restartování Mastodonu
    • Restartujte Mastodon, aby se změny projevily:

      systemctl restart mastodon-*.service
      

Ověření funkčnosti

  • Po restartu služeb zkontrolujte, že Mastodon správně komunikuje s Elasticsearch.
  1. Zkontrolovat stav Elasticsearch v Mastodonu

    -Mastodon poskytuje Rake úlohu, která umožňuje ověřit, zda je Elasticsearch dostupný a správně funguje s vaší Mastodon instancí. Můžete spustit následující příkaz z kořenového adresáře vaší Mastodon instance:

    RAILS_ENV=production bin/tootctl search status
    
  2. Znovu indexovat obsah pro Elasticsearch

    -Pokud jste právě povolili Elasticsearch nebo změnili některé konfigurace a potřebujete, aby všechny stávající příspěvky byly znovu indexovány, můžete spustit následující příkaz:

    RAILS_ENV=production bin/tootctl search deploy
    

Tento příkaz provede znovu indexaci všech veřejných příspěvků a dalších relevantních dat v Elasticsearch, což je užitečné po jakýchkoli změnách v konfiguraci nebo pro začlenění minulých dat do nově nastaveného Elasticsearch.