Cum să instalez Elasticsearch, Logstash și Kibana (Stiva ELK) în Ubuntu 18.04

Pasul 4 – Instalarea și configurarea Filebeat

Stiva Elastic folosește câteva programe ușoare, din punctul de vedere al consumului de resurse, care transmit datele, denumite Beats, colectându-le din mai multe surse și transportând-le ulterior către Logstash sau direct în Elasticsearch. Iată aceste programe/aplicații Beats care sunt disponibile (sau care lucrează cu) pentru Elastic:

  • Filebeat: colectează și trimite fișierele jurnal.
  • Metricbeat: colectează parametri sistemului și a serviciilor dvs.
  • Packetbeat: colectează și analizează datele din rețea.
  • Winlogbeat: colectează jurnalele evenimentelor din Windows.
  • Auditbeat: colectează datele cadru de audit și monitorizează integritatea fisierelor.
  • Heartbeat: monitorizează disponibilitatea serviciilor prin testare activă.

În acest tutorial vom folosi Filebeat pentru a redirecționat jurnalele locale către stiva noastră Elastic.

Instalați Filebeat folosind apt:

$ sudo apt install filebeat

Apoi, configurați Filebeat să se conecteze la Logstash. Aici, vom modifica fișierul de configurare exemplu care vine direct instalat în Filebeat.

Editați fișierul de configurare Filebeat:

$ sudo nano /etc/filebeat/filebeat.yml

Atenție: La fel ca și Elasticsearch, fișierul de configurare Filebeat este în format YAML. Aceasta înseamnă că indentarea adecvată este de o importanță crucială, așa că fiți siguri că folosiți același număr de spații așa cum sunt folosite în aceste instrucțiuni.

Filebeat suportă numeroase afișări sau output-uri, dar de obicei veți trimite evenimentele direct în Elasticsearch sau în Logstash pentru procesare superioară. În acest tutorial vom folosi Logstash pentru a genera o procesare superioară a datelor colectare de Filebeat. Filebeat nu va fi nevoit sa trimită date direct către Elasticsearch, așa că haideți sa dezactivam asta. Pentru aceasta, găsiți secțiunea output.elasticsearch și comentați/anulați următoarea linie prin adăugarea la începutul ei a unui simbol #:

...
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["localhost:9200"]
...

Apoi, configurați secțiunea output.logstash. Anulați comentarea liniilor output.logstash: și hosts: ["localhost:5044"] prin ștergerea caracterului #. Acestea vor configura Filebeat să se conecteze la Logstash de pe serverul stivei Elastic pe portul 5044, port pentru care am specificat un input Logstash mai devreme:

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

Salvați și închideți fișierul.

Funcționalitatea Filebeat poate fi extinsă cu ajutorul modulelor Filebeat. În acest tutorial vom folosi modulul pentu sistem, care colectează și generează jurnale create de serviciul de jurnalizare a sistemului comun în mai toate distribuțiile Linux.

Haideți să îl activăm:

$ sudo filebeat modules enable system

Puteți verifica lista modulelor activate sau a celor inactive cu ajutorul comenzii:

$ sudo filebeat modules list

Veți vedea afișată pe ecran o lista similară cu aceasta:

Enabled:
system

Disabled:
apache2
auditd
elasticsearch
icinga
iis
kafka
kibana
logstash
mongodb
mysql
nginx
osquery
postgresql
redis
traefik

În mod normal, Filebeat este configurat să folosească căile implicite pentru jurnalele de sistem și de autentificare. În cazul acestui tutorial nu trebuie să schimbați nimic în configurație. Puteți vizualiza parametrii modulului în fișierul de configurare /etc/filebeat/modules.d/system.yml

Următorul pas va fi să încărcați un index template în. Un index Elasticsearch este o colecție de documente care au caracteristici similare. Indexurile sunt identificate după un nume, care este folosit atunci când se fac operați variate cu acest index. Template-ul / șablonul de index va fi aplicat automat în momentul în care un nou index este creat.

Pentru a încărca șablonul folosiți următoarea comanda:

$ sudo filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
Mesajul afișat
Loaded index template

Filebeat vine la pachet cu exemple de panouri de control / monitorizare Kibana care vă permit sa vizualizați date Filebeat în Kibana. Înainte de a folosi aceste panouri trebuie să creați un tipar de indexare (index pattern) și apoi să încărcați panourile în Kibana.

Pe măsură ce panourile se încarcă, Filebeat se conectează la Elasticsearch pentru a verifica informațiile despre versiune. Pentru a încărca panourile când Logstash este activat, va trebui să dezactivați ieșirile (output) Logstash și să le activați pe cele ale Elasticsearch:

$ sudo filebeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601

Veți vedea niște mesaje afișate de genul celor de mai jos:

Mesaj afișat

Output
2018-09-10T08:39:15.844Z        INFO    instance/beat.go:273    Setup Beat: filebeat; Version: 6.4.2
2018-09-10T08:39:15.845Z        INFO    elasticsearch/client.go:163     Elasticsearch url: http://localhost:9200
2018-09-10T08:39:15.845Z        INFO    pipeline/module.go:98   Beat name: elk
2018-09-10T08:39:15.845Z        INFO    elasticsearch/client.go:163     Elasticsearch url: http://localhost:9200
2018-09-10T08:39:15.849Z        INFO    elasticsearch/client.go:708     Connected to Elasticsearch version 6.4.2
2018-09-10T08:39:15.856Z        INFO    template/load.go:129    Template already exists and will not be overwritten.
Loaded index template
Loading dashboards (Kibana must be running and reachable)
2018-09-10T08:39:15.857Z        INFO    elasticsearch/client.go:163     Elasticsearch url: http://localhost:9200
2018-09-10T08:39:15.865Z        INFO    elasticsearch/client.go:708     Connected to Elasticsearch version 6.4.2
2018-09-10T08:39:15.865Z        INFO    kibana/client.go:113    Kibana url: http://localhost:5601
2018-09-10T08:39:45.357Z        INFO    instance/beat.go:659    Kibana dashboards successfully loaded.
Loaded dashboards
2018-09-10T08:39:45.358Z        INFO    elasticsearch/client.go:163     Elasticsearch url: http://localhost:9200
2018-09-10T08:39:45.361Z        INFO    elasticsearch/client.go:708     Connected to Elasticsearch version 6.4.2
2018-09-10T08:39:45.361Z        INFO    kibana/client.go:113    Kibana url: http://localhost:5601
2018-09-10T08:39:45.455Z        WARN    fileset/modules.go:388  X-Pack Machine Learning is not enabled
Loaded machine learning job configurations

Acum puteți porni și activa Filebeat:

$ sudo systemctl start filebeat
$ sudo systemctl enable filebeat

Dacă ați configurat stiva dvs. Elastic corect, Filebeat va începe să trimită jurnalele de sistem și de autorizare către Logstash, care le va încarca la rândul lui (datele) în Elasticsearch.

Pentru a verifica dacă Elasticsearch într-adevăr primește date, interogați indexul Filebeat cu această comandă:

$ curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

Veți vedea niște mesaje afișate care vor arata ceva de genul:

Mesaj afisat

...
{
  "took" : 32,
  "timed_out" : false,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 1641,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "filebeat-6.4.2-2018.10.10",
        "_type" : "doc",
        "_id" : "H_bZ62UBB4D0uxFRu_h3",
        "_score" : 1.0,
        "_source" : {
          "@version" : "1",
          "message" : "Oct 10 06:22:36 elk systemd[1]: Reached target Local File Systems (Pre).",
          "@timestamp" : "2018-10-10T08:43:56.969Z",
          "host" : {
            "name" : "elk"
          },
          "source" : "/var/log/syslog",
          "input" : {
            "type" : "log"
          },
          "tags" : [
            "beats_input_codec_plain_applied"
          ],
          "offset" : 296,
          "prospector" : {
            "type" : "log"
          },
          "beat" : {
            "version" : "6.4.2",
            "hostname" : "elk",
            "name" : "elk"
          }
        }
      },
...

Dacă mesajele afișate arata “0 total hits“, Elasticsearch nu încarcă nici un jurnal în indexul căutat de dvs. și va trebui să revedeți configurările pentru a identifica eventualele erori. Dacă aveți afișat ceva de genul exemplului de mai sus, continuați cu următorul pas, în care vom vedea cum sa navigăm prin câteva panouri Kibana.

root

Un entuziast pasionat de tot ceea ce înseamnă Linux și Open Source și un energic promotor. Deschis la orice proiecte bazate pe aceste tehnologii.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.