Wenn Sie Ereignisse skalierbar und verteilt indexieren möchten, müssen Sie Elasticsearch im Cluster-Modus installieren. Der für Sentinel installierte Elasticsearch-Cluster darf nur zur Indexierung von Sentinel-Daten verwendet werden.
Vor der Installation von Elasticsearch müssen folgende Voraussetzungen erfüllt sein:
Legen Sie den virtuellen Arbeitsspeicher fest, indem Sie in der Datei/etc/sysctl.conf die folgende Eigenschaft hinzufügen:
vm.max_map_count=262144
Legen Sie die Dateideskriptoren fest, indem Sie in der Datei/etc/security/limits.conf die folgenden Eigenschaften hinzufügen:
elasticsearch hard nofile 65536
elasticsearch soft nofile 65536
elasticsearch soft as unlimited
WICHTIG:Nachdem Sie die oben aufgeführten Voraussetzungen erfüllt haben, führen Sie den Befehl sysctl -p aus, um die an den Dateien vorgenommenen Änderungen neu zu laden.
Installieren Sie Elasticsearch und die erforderlichen Plugins auf jedem Knoten im Elasticsearch-Cluster.
So installieren und konfigurieren Sie Elasticsearch:
Installieren Sie die von Elasticsearch unterstützte JDK-Version.
Laden Sie die zertifizierte Version des Elasticsearch-RPM-Pakets herunter. Weitere Informationen zur zertifizierten Version von Elasticsearch sowie die Download-URL finden Sie auf der Seite Technical Information for Sentinel (Technische Informationen zu Sentinel).
Installieren Sie Elasticsearch:
rpm -i elasticsearch-<Version>.rpm
Führen Sie die Aufgaben wie auf dem Bildschirm mit der RPM-Installations-Nachbereitungsliste angegeben aus.
Stellen Sie mithilfe von folgendem Befehl sicher, dass der Elasticsearch-Benutzer auf Java zugreifen kann:
sudo -u elasticsearch java -version
Konfigurieren Sie die Datei /etc/elasticsearch/elasticsearch.yml, indem Sie die folgenden Informationen aktualisieren oder ergänzen:
|
Eigenschaft und Wert |
Anmerkungen |
|---|---|
|
cluster.name: <Elasticsearch-Cluster-Name> |
Der von Ihnen gewählte Cluster-Name muss für alle Knoten derselbe sein. |
|
node.name: <Knotenname> |
Jeder Knoten muss einen eindeutigen Namen erhalten. |
|
network.host: _<Netzwerkschnittstelle>:ipv4_ |
|
|
discovery.zen.ping.unicast.hosts: ["<FQDN des Elasticsearch-Knotens 1>", "<FQDN des Elasticsearch-Knotens 2>" und so weiter"] |
|
|
thread_pool.bulk.queue_size: 300 |
|
|
thread_pool.search.queue_size: 10000 |
Sobald die Suchwarteschlange den Grenzwert erreicht, verwirft Elasticsearch alle in der Warteschlange befindlichen ausstehenden Suchanforderungen. Mittels folgender Methode können Sie berechnen, um wie viel Sie die Suchwarteschlange eventuell verlängern müssen: threadpool.search.queue_size = durchschnittliche Anzahl an Widget-Anfoderungen pro Benutzer für ein Dashboard x Anzahl der Shards (Pro-Tag-Index) x Anzahl der Tage (Suchdauer) |
|
index.codec: best_compression |
|
|
path.data: ["/<es1>", "/<es2>"] |
Um die Datenträger-E/A-Latenz zu reduzieren, können Sie Daten auf mehrere voneinander unabhängige Datenträger oder Speicherorte verteilen. Konfigurieren Sie mehrere Pfade zum Speichern von Elasticsearch-Daten, z. B. /es1, /es2 und so weiter. Die besten Ergebnisse bezüglich Leistung und Verwaltbarkeit erhalten Sie, wenn Sie jeden Pfad einem separaten physischen Datenträger (JBOD) zuordnen. |
Aktualisieren Sie die standardmäßige Heap-Größe für Elasticsearch in der Datei /etc/elasticsearch/jvm.options.
Die Heap-Größe muss 50 % des Server-Arbeitsspeichers betragen. Beispiel: In einem 24-GB-Elasticsearch-Knoten bedeutet dies, dass eine Heap-Größe von 12 GB optimale Leistung verspricht.
Starten Sie Elasticsearch:
/etc/init.d/elasticsearch start
Wiederholen Sie jeden dieser Schritte auf jedem Knoten im Elasticsearch-Cluster.