ELK Stack is 's werelds populairste platform voor logbeheer. Het is een verzameling open-sourceproducten, waaronder Elasticsearch, Logstash en Kibana. Al deze 3 producten worden ontwikkeld, beheerd en onderhouden door Elastic.
ELK Stack is een krachtig en open source platform dat een enorme hoeveelheid gelogde gegevens kan beheren. Het invoerlogboek is over het algemeen afkomstig van een grafische webinterface (GUI).
- Elasticsearch is een op JSON gebaseerde zoek- en analyse-engine bedoeld voor horizontale schaalbaarheid en eenvoudiger beheer.
- Logstash is een server-side gegevensverwerkingsinterface die de mogelijkheid heeft om gelijktijdig gegevens uit verschillende bronnen te verzamelen. Het transformeert het vervolgens en stuurt de gegevens vervolgens naar de gewenste stash. Het is een open source applicatie.
- Kibana wordt gebruikt om uw gegevens te visualiseren en door de Elastic Stack te navigeren. Het is ook een open source tool.
Installeer en configureer ELK Stack op Ubuntu
In deze tutorial gaan we gebruiken filebeat om loggegevens naar Logstash te verzenden. Beats zijn lichtgewicht gegevensverzenders en om te beginnen zouden we de agent op servers moeten installeren.
Stap 1) Java 8 . installeren
ElasticSearch ondersteunt Java 8 en 9, maar het probleem is dat Logstash alleen compatibel is met Java 8. Java 9 wordt nog niet ondersteund. Daarom gaan we Oracle Java 8 installeren.
Start de Terminal en voeg Oracle Java 8-repository toe, gevolgd door een systeemupdate en daadwerkelijke installatie.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-set-default
Let op de Terminal the. U moet akkoord gaan met de vensters van de licentieovereenkomst en 'ja' selecteren om door te gaan. Nadat de installatie is voltooid, kunt u de Java-versie controleren met behulp van de volgende opdrachten:
.sudo java -versie
sudo echo $JAVA_HOME
Stap 2) Elasticsearch installeren en configureren
Laten we beginnen met wget opdracht om Elasticsearch te downloaden gevolgd door openbare ondertekeningssleutel:
sudo wget -qO - https://artifacts.elastisch.co/GPG-KEY-elastisch zoeken | sudo apt-key add -
Installeer ten tweede het pakket apt-transport-https (distro's op basis van Debian hebben dit nodig).
sudo apt-get install apt-transport-https
Voeg de repository toe:
echo "deb https://artifacts.elastisch.co/pakketten/6.x/apt stable main" | sudo tee -a /etc/apt/sources.lijst.d/elastisch-6.X.lijst
Werk de repolijst bij en installeer het pakket:
sudo apt-get update
sudo apt-get install elasticsearch
Laten we "elastisch zoeken" wijzigen.yml” bestand:
sudo vim /etc/elasticsearch/elasticsearch.yml
Uncomment "netwerk".host" en "http.haven". De volgende configuratie moet worden toegevoegd:
netwerk.host: localhost http.poort: 9200
Sla vervolgens het bestand op en sluit het.
Om ervoor te zorgen dat ElasticSearch naadloos werkt, schakelt u het in bij het opstarten en Start ElasticSearch.
sudo systemctl activeer elasticsearch.onderhoud
sudo systemctl start elasticsearch.onderhoud
Installatie controleren:
sudo curl -XGET 'localhost:9200/?mooi'
Stap 3) Kibana installeren
Laten we nu beginnen met het installeren van Kibana en de Kibana-instellingen wijzigen:
sudo apt-get install kibana
sudo vim /etc/kibana/kibana.yml
Maak een opmerking over de volgende regels:
server.poort: 5601 server.host: "localhost" elasticsearch.url: "http://localhost:9200"
Opslaan en het bestand afsluiten.
Schakel het in bij het opstarten en start de Kibana-service:
sudo systemctl enable kibana.onderhoud
sudo systemctl start kibana.onderhoud
Stap 4) Nginx configureren als Reverse Proxy voor Kibana
Laten we in dezelfde regels Nginx installeren, configureren en de service starten. Gebruik de volgende opdrachten één voor één:
sudo apt-get install nginx apache2-utils
Virtuele host configureren:
sudo vim /etc/nginx/sites-available/elk
Voeg de volgende configuratie toe aan het bestand:
server luister 80; servernaam elk.fosslinux.com; auth_basic "Beperkte toegang"; auth_basic_user_file /etc/nginx/.elkgebruikersgeheim; locatie / proxy_pass http://localhost:5601; proxy_http_versie 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Verbinding 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade;
Maak een gebruikers- en wachtwoordbestand voor webbrowserverificatie:
sudo htpasswd -c /etc/nginx/.elkusergeheim elkusr
Voer wachtwoord in en herhaal. Controleer Nginx-configuraties:
sudo nginx -t
Schakel Nginx in bij het opstarten van het systeem en start de service opnieuw:
sudo systemctl nginx inschakelen.onderhoud
sudo systemctl herstart nginx.onderhoud
Stap 5) Logstash installeren en configureren
Installeer Logstash:
sudo apt-get install logstash
Hier gaan we een SSL-certificaatsleutel genereren om de logoverdracht van de File Beat-client te beveiligen. Wijzig het "hosts"-bestand voordat u het SSL-certificaat aanmaakt.
sudo vim /etc/hosts
Voeg de volgende regel toe aan het bestand. Zorg ervoor dat u de IP- en servernaam wijzigt in de uwe.
172.31.31.158 elk-server elk-server
Als u klaar bent, slaat u het bestand op en sluit u het af.
Verander nu de map in Logstash.
sudo cd /etc/logstash/
Maak een map voor SSL:
sudo mkdir ssl
SSL-certificaat genereren. Wijzig elk-server in uw servernaam in de onderstaande opdracht:.
sudo openssl req -subj '/CN=elk-server/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout ssl/logstash-forwarder.key -out ssl/logstash-forwarder.crt
Maak de volgende bestanden aan in "/etc/logstash/conf.d”.
sudo cd /etc/logstash/conf.d/
maak een filebeat-invoerbestand met vim.
sudo vim filebeat-invoer.conf
Voeg er de volgende regels aan toe.
input beats port => 5443 type => syslog ssl => true ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt" ssl_key => "/etc/logstash/ssl/logstash-forwarder.sleutel"
Sla het bestand op en sluit het en maak een nieuw configuratiebestand aan.
sudo vim syslog-filter.conf
Voeg de volgende inhoud toe:.
filter if [type] == "syslog" grok match => "message" => "%SYSLOGTIMESTAMP:syslog_timestamp %SYSLOGHOST:syslog_hostname %DATA:syslog_program(?:\[%POSINT:syslog_pid\])?: %GREEDYDATA:syslog_message" add_field => [ "received_at", "%@timestamp" ] add_field => [ "received_from", "%host" ] date match => [ "syslog_timestamp" , "MMM d UU:mm:ss", "MMM dd UU:mm:ss" ]
Opslaan en het bestand afsluiten. Aanmaken elastisch zoeken uitvoerbestand.
sudo vim output-elastisch zoeken.conf
Voeg er de volgende regels aan toe.
output elasticsearch hosts => ["localhost:9200"] hosts => "localhost:9200" manage_template => false index => "%[@metadata][beat]-%+YYYY.MM.dd" document_type => "%[@metadata][type]"
Laten we Logstash bij het opstarten inschakelen en de service starten:
sudo systemctl logstash inschakelen.onderhoud
sudo systemctl start logstash.onderhoud
Stap 6) Filebeat installeren en configureren op clientservers
Begin met het bewerken van de gastheren bestand om elk host-items toe te voegen. Zorg ervoor dat u het IP-adres en de naam vervangt door die van u.
sudo vim /etc/hosts
172.31.31.158 elk-server
Opslaan en het bestand afsluiten.
Download en installeer de openbare ondertekeningssleutel:
sudo wget -qO - https://artifacts.elastisch.co/GPG-KEY-elastisch zoeken | sudo apt-key add -
Installeer 'apt-transport-https' en voeg opslagplaats toe.
sudo apt-get install apt-transport-https
sudo echo "deb https://artifacts.elastisch.co/pakketten/6.x/apt stable main" | sudo tee -a /etc/apt/sources.lijst.d/elastisch-6.X.lijst
Update repo en installeer Filebeat.
sudo apt-get update
sudo apt-get install filebeat
Filebeat-configuraties wijzigen.
sudo vim /etc/filebeat/filebeat.yml
Zoek de volgende regel en wijzig de waarde in "true".
ingeschakeld: waar
Hier wijzigen we het logpad niet en Filebeat stuurt alle logs door in de map "var/log"
paden: - /var/log/*.log
Maak commentaar op de volgende regels:
uitvoer.logstash: # De Logstash host hosts: ["elk-server:5443"] ssl.certificaat_autoriteiten: ["/etc/filebeat/logstash-forwarder.crt"]
Commentaar Elastisch zoeken:
#output.elasticsearch: # Array van hosts om verbinding mee te maken. # hosts: ["localhost:9200"]
Opslaan en het bestand afsluiten.
Ga nu naar de ELK-server en haal "logstash-forwarder" op.crt” inhoud
sudo cat /etc/logstash/ssl/logstash-forwarder.crt
kopieer uitvoer en ga dan naar Elk client-server.
Een certificaatbestand maken
sudo vim /etc/filebeat/logstash-forwarder.crt
voeg gekopieerde uitvoer in en sla op en sluit af.
Inschakelen filebeat bij opstarten van het systeem Start filebeat onderhoud.
sudo systemctl filebeat inschakelen.onderhoud
sudo systemctl start filebeat.onderhoud
Stap 7) Door het Kibana-dashboard bladeren
Start uw favoriete webbrowser en voer de domeinnaam in gevolgd door gebruikersnaam en wachtwoord.
http://elk.fosslinux.com
Voer de aangemaakte gebruikersnaam en het wachtwoord in. Je zou de Kibana-welkomstpagina moeten zien. Klik op de knop "Verken mijn eigen".
U moet worden doorverwezen naar de Kibana-startpagina.
Klik op "Ontdekken" aan de linkerkant. Klik op "Indexpatroon maken".
Definieer vervolgens het indexpatroon 'filebeat-*'.
Klik op volgende en kies @timestamp en klik op 'Indexpatroon maken'.
Indexpatroon moet worden gemaakt.
Klik op het menu "Ontdekken" om de serverlogboeken te bekijken.
Logboeken worden weergegeven volgens de tijdstempel. Klik op een tijdstempel om het uit te vouwen en de inhoud van het logbestand en de details ervan te bekijken.
Als je hier bent aangekomen, betekent dit dat je de ELK-stack met succes hebt geïnstalleerd en geconfigureerd met filebeat. Heb je problemen? Laat het ons gerust weten in de reacties hieronder.