Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Docker Compose -Tiedoston Konfigurointi | Valvonta ja Lokitus DevOpsissa
DevOpsin Perusteet

bookDocker Compose -Tiedoston Konfigurointi

Nyt kun kaikki tarvittavat konfiguraatiot ovat valmiina — Filebeatille, Logstashille ja Flask-sovellukselle — on aika yhdistää ne ja ajaa ne yhtenä järjestelmänä. Tätä varten käytämme Docker Composea.

Note
Määritelmä

Docker Compose on työkalu, jonka avulla voit määritellä kaikki tarvittavat kontit yhdessä YAML-tiedostossa ja ajaa ne yhdellä komennolla.

Sen sijaan, että kirjoittaisit erillisen docker run -komennon jokaiselle palvelulle, kirjoitat niiden konfiguraatiot tiedostoon docker-compose.yml ja ajat kaiken yhdessä.

Yksinkertainen docker-compose.yml -tiedosto näyttää tältä:

docker-compose.yml

docker-compose.yml

copy

Seuraavaksi luodaan täydellinen tiedosto vaihe vaiheelta ja selitetään jokainen kontti matkan varrella.

Flask-sovellus

Tämä on pääsovelluksesi, joka tuottaa lokitietoja.

docker-compose.yml

docker-compose.yml

copy

Tämä lohko ohjeistaa Dockeria rakentamaan kontin nykyisestä kansiosta (jossa Dockerfile sijaitsee).

Kontin nimeksi tulee flask-app. Rivi volumes yhdistää paikallisen ./logs-kansion kontin sisäiseen /logs-kansioon. Näin kaikki sovelluksen luomat lokit tallentuvat sekä kontin sisälle että tietokoneellesi.

Sovellus suoritetaan kontin sisällä portissa 5000, mutta se ohjataan koneesi porttiin 5050, jotta voit käyttää sitä selaimella osoitteessa http://localhost:5050.

Filebeat

Filebeat toimii agenttina, joka seuraa lokitiedostoja ja lähettää uudet merkinnät Logstashille.

docker-compose.yml

docker-compose.yml

copy

Filebeat käyttää virallista 8.15.0-kuvaa. Se suoritetaan root-käyttäjänä, jotta sillä on oikeus lukea lokitiedostoja.

Liitämme ./logs-kansion vain luku -tilassa sekä filebeat.yml-määritystiedoston. Tämä määrittää Filebeatille, mitä lokitiedostoja seurataan ja mihin ne lähetetään. depends_on varmistaa, että Filebeat käynnistyy vasta, kun sovellus ja Logstash ovat käynnissä.

Logstash

Logstash vastaanottaa lokit Filebeatilta, käsittelee ne (esimerkiksi jäsentää JSON-muotoon) ja välittää ne edelleen Elasticsearchiin.

docker-compose.yml

docker-compose.yml

copy

Tämä kontti käyttää virallista Logstash-kuvaa.

Liitämme logstash.conf-määritystiedoston, joka määrittelee, miten Logstash käsittelee saapuvat lokit. Kontti käynnistyy vasta, kun Elasticsearch on käynnissä, koska se tarvitsee kohteen käsitellyille lokitiedoille.

Portti 5044 on avattu, jotta Filebeat voi lähettää dataa Logstashille.

Elasticsearch

Elasticsearch tallentaa lokit dokumentteina ja mahdollistaa niiden nopean haun.

docker-compose.yml

docker-compose.yml

copy

Käytämme virallista Elasticsearch-kuvaa versiolla 8.15.0.

  • discovery.type=single-node määrittää, että käytössä on yhden solmun klusteri (riittää paikalliseen testaukseen);
  • xpack.security.enabled=false poistaa tietoturvan käytöstä, joten käyttäjätunnuksia ja salasanoja ei tarvitse käsitellä;
  • ES_JAVA_OPTS rajoittaa Java-prosessin muistinkäyttöä.

Palvelu on käytettävissä portissa 9200 osoitteessa http://localhost:9200.

Kibana

Kibana on Elasticsearchin verkkokäyttöliittymä. Sen avulla voidaan visualisoida lokitietoja ja luoda koontinäyttöjä.

docker-compose.yml

docker-compose.yml

copy

Käytämme virallista Kibana-kuvaa.

Portti 5601 on avattu, joten voit käyttää Kibanaa selaimessasi osoitteessa http://localhost:5601.

ELASTICSEARCH_HOSTS ohjaa Kibanan meidän Elasticsearch-säilöön, jotta se voi hakea ja näyttää tietoja.

Lopullinen docker-compose.yml

Tässä on täydellinen Docker Compose -tiedosto, jossa kaikki palvelut on yhdistetty oikeassa järjestyksessä:

docker-compose.yml

docker-compose.yml

copy

Tämä docker-compose.yml käynnistää kaikki palvelut oikeassa järjestyksessä. Flask-sovellus tuottaa lokitietoja, Filebeat kerää ne ja lähettää ne Logstashille, Logstash käsittelee lokit ja välittää ne Elasticsearchille, ja Kibana tarjoaa verkkokäyttöliittymän tietojen tarkasteluun ja analysointiin.

Jäljellä on enää järjestelmän käynnistäminen ja testaaminen, jotka käsitellään seuraavassa luvussa.

1. Mikä on Docker Composen päätarkoitus tässä kokonaisuudessa?

2. Mikä palvelu vastaa Flask-sovelluksen lokitiedostojen keräämisestä ja niiden lähettämisestä Logstashille?

question mark

Mikä on Docker Composen päätarkoitus tässä kokonaisuudessa?

Select the correct answer

question mark

Mikä palvelu vastaa Flask-sovelluksen lokitiedostojen keräämisestä ja niiden lähettämisestä Logstashille?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 3.7

bookDocker Compose -Tiedoston Konfigurointi

Pyyhkäise näyttääksesi valikon

Nyt kun kaikki tarvittavat konfiguraatiot ovat valmiina — Filebeatille, Logstashille ja Flask-sovellukselle — on aika yhdistää ne ja ajaa ne yhtenä järjestelmänä. Tätä varten käytämme Docker Composea.

Note
Määritelmä

Docker Compose on työkalu, jonka avulla voit määritellä kaikki tarvittavat kontit yhdessä YAML-tiedostossa ja ajaa ne yhdellä komennolla.

Sen sijaan, että kirjoittaisit erillisen docker run -komennon jokaiselle palvelulle, kirjoitat niiden konfiguraatiot tiedostoon docker-compose.yml ja ajat kaiken yhdessä.

Yksinkertainen docker-compose.yml -tiedosto näyttää tältä:

docker-compose.yml

docker-compose.yml

copy

Seuraavaksi luodaan täydellinen tiedosto vaihe vaiheelta ja selitetään jokainen kontti matkan varrella.

Flask-sovellus

Tämä on pääsovelluksesi, joka tuottaa lokitietoja.

docker-compose.yml

docker-compose.yml

copy

Tämä lohko ohjeistaa Dockeria rakentamaan kontin nykyisestä kansiosta (jossa Dockerfile sijaitsee).

Kontin nimeksi tulee flask-app. Rivi volumes yhdistää paikallisen ./logs-kansion kontin sisäiseen /logs-kansioon. Näin kaikki sovelluksen luomat lokit tallentuvat sekä kontin sisälle että tietokoneellesi.

Sovellus suoritetaan kontin sisällä portissa 5000, mutta se ohjataan koneesi porttiin 5050, jotta voit käyttää sitä selaimella osoitteessa http://localhost:5050.

Filebeat

Filebeat toimii agenttina, joka seuraa lokitiedostoja ja lähettää uudet merkinnät Logstashille.

docker-compose.yml

docker-compose.yml

copy

Filebeat käyttää virallista 8.15.0-kuvaa. Se suoritetaan root-käyttäjänä, jotta sillä on oikeus lukea lokitiedostoja.

Liitämme ./logs-kansion vain luku -tilassa sekä filebeat.yml-määritystiedoston. Tämä määrittää Filebeatille, mitä lokitiedostoja seurataan ja mihin ne lähetetään. depends_on varmistaa, että Filebeat käynnistyy vasta, kun sovellus ja Logstash ovat käynnissä.

Logstash

Logstash vastaanottaa lokit Filebeatilta, käsittelee ne (esimerkiksi jäsentää JSON-muotoon) ja välittää ne edelleen Elasticsearchiin.

docker-compose.yml

docker-compose.yml

copy

Tämä kontti käyttää virallista Logstash-kuvaa.

Liitämme logstash.conf-määritystiedoston, joka määrittelee, miten Logstash käsittelee saapuvat lokit. Kontti käynnistyy vasta, kun Elasticsearch on käynnissä, koska se tarvitsee kohteen käsitellyille lokitiedoille.

Portti 5044 on avattu, jotta Filebeat voi lähettää dataa Logstashille.

Elasticsearch

Elasticsearch tallentaa lokit dokumentteina ja mahdollistaa niiden nopean haun.

docker-compose.yml

docker-compose.yml

copy

Käytämme virallista Elasticsearch-kuvaa versiolla 8.15.0.

  • discovery.type=single-node määrittää, että käytössä on yhden solmun klusteri (riittää paikalliseen testaukseen);
  • xpack.security.enabled=false poistaa tietoturvan käytöstä, joten käyttäjätunnuksia ja salasanoja ei tarvitse käsitellä;
  • ES_JAVA_OPTS rajoittaa Java-prosessin muistinkäyttöä.

Palvelu on käytettävissä portissa 9200 osoitteessa http://localhost:9200.

Kibana

Kibana on Elasticsearchin verkkokäyttöliittymä. Sen avulla voidaan visualisoida lokitietoja ja luoda koontinäyttöjä.

docker-compose.yml

docker-compose.yml

copy

Käytämme virallista Kibana-kuvaa.

Portti 5601 on avattu, joten voit käyttää Kibanaa selaimessasi osoitteessa http://localhost:5601.

ELASTICSEARCH_HOSTS ohjaa Kibanan meidän Elasticsearch-säilöön, jotta se voi hakea ja näyttää tietoja.

Lopullinen docker-compose.yml

Tässä on täydellinen Docker Compose -tiedosto, jossa kaikki palvelut on yhdistetty oikeassa järjestyksessä:

docker-compose.yml

docker-compose.yml

copy

Tämä docker-compose.yml käynnistää kaikki palvelut oikeassa järjestyksessä. Flask-sovellus tuottaa lokitietoja, Filebeat kerää ne ja lähettää ne Logstashille, Logstash käsittelee lokit ja välittää ne Elasticsearchille, ja Kibana tarjoaa verkkokäyttöliittymän tietojen tarkasteluun ja analysointiin.

Jäljellä on enää järjestelmän käynnistäminen ja testaaminen, jotka käsitellään seuraavassa luvussa.

1. Mikä on Docker Composen päätarkoitus tässä kokonaisuudessa?

2. Mikä palvelu vastaa Flask-sovelluksen lokitiedostojen keräämisestä ja niiden lähettämisestä Logstashille?

question mark

Mikä on Docker Composen päätarkoitus tässä kokonaisuudessa?

Select the correct answer

question mark

Mikä palvelu vastaa Flask-sovelluksen lokitiedostojen keräämisestä ja niiden lähettämisestä Logstashille?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 5
some-alt