Come posso connettermi ad Amazon OpenSearch Service utilizzando Filebeat e Logstash su Amazon Linux?
Sto cercando di connettermi a un cluster Amazon OpenSearch Service utilizzando Logstash su Amazon Linux. Tuttavia, continuo a ricevere un errore. Come posso risolvere questo problema?
Breve descrizione
Per connetterti ad Amazon OpenSearch Service utilizzando Logstash, esegui i passaggi di seguito:
1. Configura le porte di sicurezza (come la porta 443) per inoltrare i registri a OpenSearch Service.
2. Aggiorna le configurazioni di Filebeat, Logstash e OpenSearch Service.
3. Installa Filebeat sull'istanza di Amazon Elastic Compute Cloud (Amazon EC2) della fonte. Assicurati di aver installato e configurato correttamente il file di configurazione YAML.
4. Installa Logstash su un'istanza Amazon EC2 separata da cui verranno inviati i registri.
Se non hai configurato o impostato Logstash correttamente, riceverai uno di questi errori: errore 401 autorizzazione, errore 403 non consentito o errore di installazione di x-pack.
Risoluzione
Configura le porte di sicurezza
Assicurati di configurare le porte di sicurezza in modo che l'istanza EC2 possa inoltrare i log al servizio OpenSearch.
Per configurare le porte di sicurezza per l'inoltro dei log da Logstash, esegui i passaggi di seguito:
1. Crea un'istanza EC2 in cui hai installato Apache e Filebeat. L'istanza EC2 deve essere in grado di inoltrare i log da Logstash al servizio OpenSearch.
2. Assicurati che le tue istanze EC2 risiedano nello stesso gruppo di sicurezza del tuo virtual private cloud (VPC) per OpenSearch Service.
3. Assicurati che le seguenti porte siano aperte nel gruppo di sicurezza: 80, 443 e 5044. Queste porte devono essere aperte in modo da poter inviare dati tra Logstash e il servizio OpenSearch.
Aggiorna le configurazioni di FileBeat, Logstash e del servizio OpenSearch
Il servizio OpenSearch funziona meglio quando si utilizzano le stesse versioni del sistema operativo. Pertanto, prova a utilizzare versioni compatibili per i seguenti software:
- FileBeat versione x.x OSS
- Logstash versione x.x OSS (v7.16.2 e v6.8.22 per patch di sicurezza Log4j)
- OpenSearch Service versione x.x
Per assicurarti che il software scaricato rimanga sincronizzato, scarica gli RPM su ciascuna istanza EC2 (separata). Per prevenire un singolo punto di errore nella pipeline, è importante evitare di eseguire il servizio Filebeat e Logstash sulla stessa istanza EC2.
Nota: se utilizzi il servizio OpenSearch versione 1.0 o successive, assicurati che la modalità di compatibilità sia abilitata al primo avvio del tuo dominio. Tieni presente che puoi abilitare la modalità di compatibilità solo tramite la Console di gestione AWS.
Installa Filebeat sull'istanza EC2 della fonte
1. Scarica l'RPM per la versione desiderata di Filebeat:
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.16.2-x86_64.rpm
2. Installa il file Filebeat RPM:
rpm -ivh filebeat-oss-7.16.2-x86_64.rpm
Installa Logstash su un'istanza EC2 separata da cui verranno inviati i log
1. Scarica il file RPM della versione di Logstash desiderata:
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.16.2-x86_64.rpm
In questo esempio viene utilizzata la versione 6.7 per corrispondere al numero di versione del servizio OpenSearch e Filebeat.
2. Installa Java od OpenJDK sulla tua istanza EC2 prima di installare il file RPM Logstash:
yum install java-1.8.0-*
3. Dopo l'installazione di Java, installa il file RPM scaricato per Logstash utilizzando il comando rpm:
rpm -ivh logstash-oss-7.16.2-x86_64.rpm
Nota: Logstash richiede l'esecuzione di Java per funzionare. In questo esempio, stiamo utilizzando Java versione 8 (Open JDK 1.8), supportata da tutte le versioni di Logstash. Per ulteriori informazioni sulle versioni supportate di Java e Logstash, vedi la Matrice di supporto sul sito Web Elasticsearch.
4. Controlla i file di configurazione controllando le directory "/etc/filebeat" e "/etc/logstash".
5. Per Filebeat, aggiorna l'output a Logstash o OpenSearch Service e specifica che i registri che devono essere inviati. Quindi, avvia il servizio.
Nota: se provi a caricare modelli su OpenSearch Dashboards con Filebeat, il caricamento non riesce. Filebeat presuppone che il cluster abbia il supporto del plug-in x-pack.
6. Aggiorna il file di configurazione di Filebeat YAML per inviare i registri di accesso di Apache a Logstash.
Ad esempio:
filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"] #protocol: "https" output.logstash: # The Logstash hosts hosts: [“Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: false
7. Assicurati che il file di configurazione di Logstash possa accedere a Filebeat sulla porta 5044. Questo accesso alla porta permette a Logstash di inoltrare richieste all'endpoint VPC di OpenSearch Service.
Ad esempio:
input { beats { port => 5044 } } output { elasticsearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" ilm_enabled => false } }
8. Avvia i servizi Filebeat e Logstash con i seguenti comandi su ogni istanza.
Filebeat:
systemctl start filebeat (service filebeat start)
Logstash:
cp /etc/logstash/logstash.conf /etc/logstash/conf.d/ systemctl start logstash (service logstash start)
9. Esegui una chiamata API cat indices al tuo dominio OpenSearch Service per confermare che i registri di Filebeat vengano inviati. Se i registri sono stati inviati correttamente, riceverai la seguente risposta:
curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
Di default, gli indici Filebeat ruotano quotidianamente. Ecco un esempio di output di un indice Filebeat:
curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
Se configuri correttamente Filebeat Service, Logstash e OpenSearch Dashboards (ELK) con Amazon EC2 Linux, allora la pipeline è simile alla seguente:
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
Errore 401 non autorizzato
Un errore 401 non autorizzato di Logstash indica che il dominio OpenSearch Service è protetto da FGAC (Fine-Grain Access Control) o Amazon Cognito. FGAC necessita di richieste firmate da un utente o un ruolo, che devono essere definite nella policy di accesso del dominio. Se ricevi un errore 401 non autorizzato, assicurati di aver abilitato correttamente FGAC nel file di configurazione di Logstash.
Ad esempio:
output { elasticsearch { hosts => ["https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "elastic" password => "changeme" } }
Errore 403 non consentito
Quando utilizzi e configuri Logstash per inviare dati a OpenSearch Service, è possibile che si verifichi un errore 403 non consentito. Questo errore si verifica quando Logstash non dispone delle autorizzazioni necessarie e non è riuscito a verificare la tua identità di AWS Identity Access Management (IAM). Per risolvere questo problema, assicurati di firmare le tue richieste a OpenSearch Service utilizzando le tue credenziali (IAM).
Per firmare le richieste di OpenSearch Service utilizzando Logstash, attieniti ai seguenti passaggi:
1. Installa il plug-in Logstash per OpenSearch Service:
bin/logstash-plugin install logstash-output-amazon_es
2. Collega un ruolo IAM all'istanza Amazon EC2, in questo modo:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" }] }
3. Aggiorna le impostazioni di configurazione di Logstash per utilizzare il plug-in Logstash "amazon_es" come output nella pipeline:
output { amazon_es { hosts => ["domain-endpoint"] ssl => true region => "us-east-1" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }
Errore di installazione di Logstash x-pack
Se si verificano errori con x-pack all'avvio di Logstash, disabilita manualmente il plug-in x-pack dal file di registro.
Per disabilitare manualmente il plug-in x-pack, attieniti ai seguenti passaggi:
1. Apri il seguente file:
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb
2. Trova load_xpack e commenta in linea:
"load_xpack unless LogStash::OSS" >> "#load_xpack unless LogStash::OSS"
Nota: puoi controllare i file di configurazione per confermare che le impostazioni ILM (Index Life Management) (ilm.enabled e ilm_enabled) siano entrambe impostate su "false" (falso). La disabilitazione di queste impostazioni ILM nei file di configurazione eliminerà gli errori di avvio per il plug-in x-pack.
Informazioni correlate
Caricamento dei dati in Amazon OpenSearch Service con Logstash
Contenuto pertinente
- AWS UFFICIALEAggiornata 5 mesi fa
- AWS UFFICIALEAggiornata 3 anni fa
- Perché OpenSearch Dashboards si trovano nello stato rosso nel mio dominio Amazon OpenSearch Service?AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 3 anni fa