Logstash Logfile Analytics Software te installeren op Ubuntu 20.04

ELK is een combinatie van drie open-source producten ElasticSearch, Logstash en Kibana. Het is een van de populairste log management platformen over de hele wereld. Elasticsearch is een zoek- en analyse-engine. Logstash is een pijplijn voor logverwerking die logs uit meerdere bronnen tegelijk transporteert, transformeert en dan naar een “stash” als Elasticsearch stuurt. Kibana wordt gebruikt om je gegevens die Logstash heeft geïndexeerd in de Elasticsearch index te visualiseren

In deze zelfstudie leggen we uit hoe je Logstash installeert op Ubuntu 20.04.

Vereisten

  • Een server waarop Ubuntu 20.04 draait.
  • Een root wachtwoord is op de server ingesteld.

Installeer de vereiste afhankelijkheden

Om Elasticsearch te kunnen installeren, moet je Java in je systeem installeren. Je kunt de Java JDK installeren met het volgende commando:

apt-get install openjdk-11-jdk -y

Controleer na de installatie de geïnstalleerde versie van java met het volgende commando:

java -version

Je zou de volgende uitvoer moeten zien:

openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-3ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-3ubuntu1, mixed mode, sharing)

Installeer vervolgens andere vereiste afhankelijkheden door het volgende commando uit te voeren:

apt-get install nginx curl gnupg2 wget -y

Als alle afhankelijkheden geïnstalleerd zijn, kun je verder gaan met de volgende stap.

Installeer en configureer Elasticsearch

Voordat je begint, moet je Elasticsearch in je systeem installeren. Het slaat logs en gebeurtenissen uit Logstash op en biedt een mogelijkheid om de logs in real-time te doorzoeken.

Voeg eerst de Elastic repository aan je systeem toe met het volgende commando:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list

Werk vervolgens de repository bij en installeer Elasticsearch met het volgende commando:

apt-get update -y
apt-get install elasticsearch -y

Eenmaal geïnstalleerd, bewerk je het Elasticsearch standaard configuratiebestand:

nano /etc/elasticsearch/elasticsearch.yml

Haal het commentaar weg en verander de waarde ervan zoals hieronder:

network.host: localhost  

Sla het bestand op en sluit het af start dan de Elasticsearch dienst en zet hem aan om bij het opstarten te starten met het volgende commando:

systemctl start elasticsearch
systemctl enable elasticsearch

Op dit moment is Elasticsearch geïnstalleerd en luistert het op poort 9200. Je kunt nu testen of Elasticsearch werkt of niet door het volgende commando uit te voeren:

curl -X GET "localhost:9200"

Als alles in orde is zou je de volgende uitvoer moeten zien:

{
  "name" : "ubuntu2004",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "AVRzLjAbQTK-ayYQc0GaMA",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Als je klaar bent, kun je verder gaan met de volgende stap.

Installeer en configureer Kibana

Vervolgens moet je Kibana in je systeem installeren. Met Kibana kun je gegevens analyseren die op Elasticsearch zijn opgeslagen. Je kunt het installeren door gewoon het volgende commando uit te voeren:

apt-get install kibana -y

Als Kibana geïnstalleerd is, start je de Kibana dienst en schakel je hem in om bij het opstarten te starten met het volgende commando:

systemctl start kibana
systemctl enable kibana

Vervolgens moet je een administratieve gebruiker voor Kibana aanmaken om de Kibana webinterface te kunnen openen. Voer het volgende commando uit om de administratieve Kibana gebruiker en wachtwoord aan te maken, en bewaar ze in het bestand htpasswd.users.

echo "admin:`openssl passwd -apr1`" | tee -a /etc/nginx/htpasswd.users

Je wordt gevraagd om een wachtwoord op te geven zoals in de volgende uitvoer:

Password: 
Verifying - Password: 
admin:$apr1$8d05.YO1$E0Q8QjfNxxxPtD.unmDs7/

Maak vervolgens een Nginx virtual host configuratiebestand om de Kibana te serveren:

nano /etc/nginx/sites-available/kibana

Voeg de volgende regels toe:

server {
    listen 80;

    server_name kibana.example.com;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

Bewaar en sluit het bestand en schakel dan het Nginx virtuele host bestand in met het volgende commando:

ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/

Herstart vervolgens de Nginx dienst om de veranderingen toe te passen:

systemctl restart nginx

Open vervolgens je webbrowser en controleer de status van de Kibana met de URL http://kibana.example.com/status. Je wordt gevraagd om gebruikersnaam en wachtwoord op te geven zoals hieronder:

Kibana Inloggen

Geef je Kibana gebruikersnaam en wachtwoord op, en klik op de knop Sign in. Je zou het volgende scherm moeten zien:

Kibana Status

Op dit punt is het Kibana dashboard in je systeem geïnstalleerd. Je kunt nu verder gaan met de volgende stap.

Installeer en configureer Logstash

Logstash wordt gebruikt voor de verwerking van logs die door beats worden verstuurd. Je kunt het installeren door het volgende commando uit te voeren:

apt-get install logstash -y

Als Logstash geïnstalleerd is, maak je een nieuw beat configuratiebestand aan met het volgende commando:

nano /etc/logstash/conf.d/02-beats-input.conf

Voeg de volgende regels toe:

input {
  beats {
    port => 5044
  }
}

Bewaar en sluit het bestand en maak dan een Elasticsearch configuratiebestand aan met het volgende commando:

nano /etc/logstash/conf.d/30-elasticsearch-output.conf

Voeg de volgende regels toe:

output {
  if [@metadata][pipeline] {
    elasticsearch {
    hosts => ["localhost:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    pipeline => "%{[@metadata][pipeline]}"
    }
  } else {
    elasticsearch {
    hosts => ["localhost:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    }
  }
}

Bewaar en sluit het bestand en controleer dan je Logstash configuratie met dit commando:

sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t

Als alles in orde is, zou je de volgende uitvoer moeten zien:

Config Validation Result: OK. Exiting Logstash

Start vervolgens de Logstash dienst en zet hem aan om bij het opstarten te starten met het volgende commando:

systemctl start logstash
systemctl enable logstash

Op dit punt is Logstash in je systeem geïnstalleerd. Je kunt nu verder gaan met de volgende stap.

Installeer en configureer Filebeat

ELK stack gebruikt Filebeat om gegevens uit verschillende bronnen te verzamelen en ze naar Logstash te transporteren.

Je kunt Filebeat installeren met het volgende commando:

apt-get install filebeat -y

Eenmaal geïnstalleerd moet je Filebeat configureren om met Logstash te verbinden. Je kunt het configureren met het volgende commando:

nano /etc/filebeat/filebeat.yml

Commentarieer de volgende regels uit:

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

Maak dan het commentaar van de volgende regels ongedaan:

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

Bewaar en sluit het bestand en schakel dan de systeemmodule in met het volgende commando:

filebeat modules enable system

Standaard is Filebeat ingesteld om standaard paden te gebruiken voor de syslog en authorization logs.

Je kunt de ingest pijplijn voor de systeemmodule laden met het volgende commando:

filebeat setup --pipelines --modules system

Laad vervolgens het sjabloon met het volgende commando:

filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'

Je zou de volgende uitvoer moeten zien:

Index setup finished.

Filebeat wordt standaard geleverd met voorbeeld Kibana dashboards waarmee je Filebeat gegevens in Kibana kunt visualiseren. Je moet dus de Logstash uitvoer uitschakelen en de Elasticsearch uitvoer inschakelen. Je kunt dat doen met het volgende commando:

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

Je zou de volgende uitvoer moeten zien:

Overwriting ILM policy is disabled. Set `setup.ilm.overwrite:true` for enabling.

Index setup finished.
Loading dashboards (Kibana must be running and reachable)
Loaded dashboards
Setting up ML using setup --machine-learning is going to be removed in 8.0.0. Please use the ML app instead.
See more: https://www.elastic.co/guide/en/elastic-stack-overview/current/xpack-ml.html
Loaded machine learning job configurations
Loaded Ingest pipelines

Start nu de Filebeat dienst en zet hem aan om bij het opstarten te starten met het volgende commando:

systemctl start filebeat
systemctl enable filebeat

Open het Kibana Dashboard

Op dit punt zijn alle componenten van ELK geïnstalleerd en geconfigureerd. Open nu je webbrowser en typ de URL http://kibana.example.com. Je zou het Kibana dashboard moeten zien in het volgende scherm:

Kibana Dashboard

Klik in het linkerdeelvenster op Ontdek en kies het voorgedefinieerde filebeat-* index patroon om Filebeat gegevens te zien in het volgende scherm:

Filebeat Gegevensrapport

Nu biedt Kibana een heleboel mogelijkheden. Voel je vrij om ze te verkennen zoals je wilt.

Conclusie

Gefeliciteerd! je hebt met succes Logstash op Ubuntu 20.04 server geïnstalleerd en ingesteld. Je kunt nu systeemlogs verzamelen en analyseren vanaf een centrale plaats. Voel je vrij me te vragen als je vragen hebt.