VK Cloud logo

ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

Бұл мақала Linux тобына жататын операциялық жүйеге — Ubuntu 18.04 жүйесіне ELK стегін орнатуды сипаттайды.

ELK стегі — деректерді жинау, сақтау және талдаудың кең ауқымды міндеттерін тиімді шешуге арналған қуатты құралдар жиынтығы:

  • Elasticsearch – Apache Lucene негізінде құрылған және қосымша ыңғайлылықтары бар толықмәтінді іздеу шешімі.
  • Logstash – деректерді жинауға, сүзуге және кейіннен соңғы деректер қоймасына қайта бағыттауға арналған утилита. Бұл механизм нақты уақыттағы конвейерді қамтамасыз етеді. Ол деректерді бірнеше көзден қабылдап, оларды JSON құжаттарына түрлендіре алады.
  • Kibana — Elasticsearch ішінен деректерді алуға және іздеуге, сондай-ақ көрнекі графиктер құруға мүмкіндік беретін қолданба.

Талаптар

  • Ubuntu 18.04 нұсқасындағы операциялық жүйе.
  • Орнатылған Nginx веб-сервері.
  • Орнатылған Java виртуалды машинасы.
  • sudo командасына қолжетімділігі бар пайдаланушы.

Nginx веб-серверін орнату

Apache веб-серверімен салыстырғанда, Nginx веб-сервері трафигі жоғары көлемді сайттарды орналастыру үшін аз ресурстар пайдаланады. Nginx архитектурасының арқасында жүздеген мың параллель қосылымға дейін оңай масштабталуға болады.

Nginx веб-серверін орнатып, бастапқы баптауды орындау үшін:

  1. Терминал терезесін ашыңыз.

  2. Келесі команданы орындап, пакет индекстерін жаңартыңыз:

    sudo apt update
  3. Келесі команданы орындап, Nginx веб-серверін орнатыңыз:

    sudo apt install nginx -y
  4. Веб-сервердің жұмысын тексеру үшін веб-браузерді іске қосып, мекенжай жолағына веб-сервердің IP-мекенжайын енгізіңіз.

    Егер орнату сәтті орындалса, веб-сервердің келесі беті ашылады:

    ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

Java виртуалды машинасын орнату

ELK стегінің жұмыс істеуі үшін Java виртуалды машинасы қажет. JVM орнату үшін:

  1. Терминал терезесін ашыңыз.

  2. Келесі команданы орындап, JVM бағдарламалық пакетін орнатыңыз:

    sudo apt install default-jre -y

    Нәтижесінде Java Runtime Environment (JRE) пакеті орнатылады.

  3. Құрамына Java компиляторы, Java стандартты кластар кітапханалары, мысалдар, құжаттама және түрлі утилиталар кіретін JDK бағдарламалық пакетін орнатыңыз. Ол үшін келесі команданы орындаңыз:

    sudo apt install default-jdk -y

Elasticsearch орнату және баптау

Elasticsearch орнатып, бастапқы баптауды орындау үшін:

  1. Elasticsearch-тің ағымдағы нұсқасын тексеру үшін мына бетке өтіңіз: https://www.elastic.co/downloads/elasticsearch.

  2. Терминал терезесін ашыңыз.

  3. Келесі команданы орындап, Elastic пакеттері қорғалатын Elasticsearch ашық GPG кілтін импорттаңыз:

    sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add
  4. Келесі команданы орындап, Elastic пакеттерін sources.list.d жүйелік репозиторийлер директориясына қосыңыз:

    sudo echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
  5. Келесі команданы орындап, пакет индекстерін жаңартыңыз:

    sudo apt update
  6. Келесі команданы орындап, Elasticsearch орнатыңыз:

    sudo apt install elasticsearch
  7. elasticsearch.yml конфигурациялық файлына өзгерістер енгізіңіз. Ол үшін:

    1. Келесі команданы орындап, осы файлды өңдеуге ашыңыз:

      sudo nano /etc/elasticsearch/elasticsearch.yml
    2. Келесі жолды табыңыз:

      #network.host: 192.168.0.1

      Оны мына жолға ауыстырыңыз:

      network.host: localhost

      .yml конфигурациялық файлын өңдегеннен кейін онда артық бос орындар және/немесе шегіністер жоқ екеніне көз жеткізіңіз!

    3. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  8. Келесі команданы орындап, Elasticsearch сервисін іске қосыңыз:

    sudo systemctl start elasticsearch
  9. Келесі команданы орындап, Elasticsearch сервисінің іске қосылу күйін тексеріңіз:

    sudo systemctl status elasticsearch
  10. Егер қате көрсетілсе:

    ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

    Келесі әрекеттерді орындаңыз:

    1. Келесі команданы орындап, Java виртуалды машинасының параметрлері бар файлды ашыңыз:

      sudo nano /etc/elasticsearch/jvm.options
    2. Java үшін ең аз және ең көп жедел жад көлемін анықтайтын параметрлерді табыңыз:

      ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

    3. -Xms1g және -Xmx1g параметрлерінде қажетті мәндерді көрсетіңіз. Мысалы, жедел жады көлемі 1 ГБ болатын операциялық жүйе үшін мынаны көрсетуге болады:

      -Xms128m-Xmx128m
    4. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

    5. Elasticsearch сервисін іске қосып, күйін тексеріңіз. Қателер болмаса, төмендегідей көрсетіледі:

      ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

  11. Операциялық жүйе қайта жүктелгенде Elasticsearch сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:

    sudo systemctl enable elasticsearch
  12. Elasticsearch сервисіне қолжетімділікті тексеру үшін келесі команданы орындап, HTTP сұрауын жіберіңіз:

    curl -X GET localhost:9200

    Егер Elasticsearch орнатуы сәтті орындалса, келесі ақпарат көрсетіледі:

    ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату

Kibana орнату және баптау

Kibana-ны орнатып, бастапқы баптауды орындау үшін келесі әрекеттерді орындаңыз:

  1. Elasticsearch-ті сәтті орнатқаныңызға көз жеткізіңіз.

  2. Терминал терезесін ашыңыз.

  3. Келесі команданы орындап, Kibana орнатыңыз:

    sudo apt install kibana
  4. Келесі команданы орындап, Kibana-ны іске қосыңыз:

    sudo systemctl start kibana
  5. Операциялық жүйе қайта жүктелгенде Kibana сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:

    sudo systemctl enable kibana
  6. Kibana жұмысының күйін тексеру үшін келесі команданы орындаңыз:

    sudo systemctl status kibana
  7. kibana.yml конфигурациялық файлына өзгерістер енгізіңіз. Ол үшін:

    1. Келесі команданы орындап, осы файлды ашыңыз:

      sudo nano /etc/kibana/kibana.yml
    2. Келесі жолды табыңыз:

      #server.port: 5601

      Және оны мына жолға ауыстырыңыз:

      server.port: 5601
    3. Келесі жолды табыңыз

      #server.host: "localhost"

      Және оны мына жолға ауыстырыңыз:

      server.host: "localhost"
    4. Келесі жолды табыңыз:

      #elasticsearch.hosts: ["http://localhost:9200"]

      Және оны мына жолға ауыстырыңыз:

      elasticsearch.hosts: ["http://localhost:9200"]
    5. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз

  8. Kibana веб-интерфейсіне қол жеткізу үшін әкімші тіркелгісін жасаңыз. Ол үшін келесі команданы орындаңыз:

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

    мұнда mcskibadmin - әкімші тіркелгісінің логині, htpasswd.users - тіркелгі деректері сақталатын файл.

    Содан кейін құпиясөзді енгізіңіз.

  9. Келесі команданы орындап, Nginx веб-сервері үшін виртуалды сайты бар файлды жасаңыз:

    sudo nano /etc/nginx/sites-available/elk
  10. Осы файлға келесі ақпаратты қосыңыз:

    server {    listen 80;     server_name <внешний IP-адрес веб-сервера>;     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;    }}

    Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  11. Келесі команданы орындап, Nginx-тің жаңа конфигурациясын белсендіріңіз:

    sudo ln -s /etc/nginx/sites-available/elk /etc/nginx/sites-enabled/
  12. Келесі команданы орындап, Kibana-ны қайта жүктеңіз:

    sudo systemctl restart kibana
  13. Келесі команданы орындап, Nginx веб-серверін қайта жүктеңіз:

    sudo systemctl restart nginx
  14. Келесі команданы орындап, nginx конфигурациялық файлының синтаксисінде қателер жоқ екеніне көз жеткізіңіз:

    sudo nginx -t

Logstash орнату және баптау

Logstash-ты орнатып, бастапқы баптауды орындау үшін:

  1. Келесі команданы екі рет айтылғандай емес, бір рет орындап, Logstash орнатыңыз:

    sudo apt install logstash
  2. beats-агенттерден ақпарат қабылдау ережелері бар конфигурациялық файлды жасаңыз және баптаңыз. Ол үшін:

    1. Келесі команданы орындап, 02-beats-input.conf файлын жасаңыз:

      sudo nano /etc/logstash/conf.d/02-beats-input.conf
    2. Осы файлға келесі жолдарды қосыңыз:

      input {  beats {    port => 5044  }}
    3. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  3. beats туралы ақпаратты Elasticsearch-те сақтау ережелері бар 30-elasticsearch-output.conf конфигурациялық файлын жасаңыз және баптаңыз. Ол үшін:

    1. Келесі команданы орындап, 30-elasticsearch-output.conf файлын жасаңыз:

      sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf
    2. Осы файлға келесі жолдарды қосыңыз:

      output {  elasticsearch {    hosts => ["localhost:9200"]    sniffing => true    manage_template => false    template_overwrite => true    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"    document_type => "%{[@metadata][type]}"  }}
    3. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  4. Кіріс деректерді сүзу және құрылымдау ережелері бар файлды жасаңыз. Ол үшін:

    1. Келесі команданы орындап, 10-system-filter.conf файлын жасаңыз:

      sudo nano /etc/logstash/conf.d/10-logstash-filter.conf
    2. Ашылған файлға келесі жолдарды орналастырыңыз:

      input { stdin { } }filter {grok {   match => { "message" => "%{COMBINEDAPACHELOG}" }}date {   match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]}}output {elasticsearch { hosts => ["localhost:9200"] }stdout { codec => rubydebug }}
    3. Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  5. Келесі команданы орындап, Logstash конфигурациясын тексеріңіз:

    sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
  6. Келесі команданы орындап, Logstash-ты іске қосыңыз:

    sudo systemctl start logstash
  7. Операциялық жүйе қайта жүктелгенде Logstash сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:

    sudo systemctl enable logstash

Filebeat орнату және баптау

Filebeat әртүрлі көздерден деректерді (beats) жинап, оларды Linux-тәрізді жүйелерде Logstash немесе Elasticsearch-ке жіберуге мүмкіндік береді.

Filebeat орнату үшін:

  1. Терминалды ашыңыз.

  2. Келесі команданы орындап, Filebeat орнатыңыз:

    sudo apt install filebeat
  3. filebeat.yml конфигурациялық файлын баптаңыз. Ол үшін:

    1. Осы файлды ашыңыз:

      sudo nano /etc/filebeat/filebeat.yml
    2. Filebeat-ке деректерді тікелей Elasticsearch-ке жіберуге тыйым салыңыз. Ол үшін келесі жолдарды табыңыз:

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

      Және оларды мына жолдарға ауыстырыңыз:

      #output.elasticsearch:    # Array of hosts to connect to.    #hosts: ["localhost:9200"]
    3. Filebeat сервисіне Logstash-ты логтар жинағышы ретінде пайдалануды көрсетіңіз. Ол үшін келесі жолдарды табыңыз:

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

      Және оларды мына жолдарға ауыстырыңыз:

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

      Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.

  4. Logstash модулін қосыңыз. Ол үшін келесі команданы орындаңыз:

    sudo sudo filebeat modules enable logstash
  5. Қосылған модульдерді көру үшін келесі команданы орындаңыз:

    sudo filebeat modules list
  6. Келесі команданы орындап, Elasticsearch индексі шаблонын жүктеңіз:

    sudo filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
  7. Дашбордтар Kibana-ға жіберілетін Filebeat деректерін визуализациялауға мүмкіндік береді. Дашбордты қосу үшін келесі команданы орындаңыз:

    sudo filebeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601
  8. Келесі команданы орындап, Filebeat-ті іске қосыңыз:

    sudo systemctl start filebeat
  9. Операциялық жүйе қайта жүктелгенде filebeat сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:

    sudo systemctl enable filebeat
  10. Elasticsearch-тің деректер қабылдап жатқанын тексеру үшін Filebeat индексін келесі команда арқылы сұраңыз:

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

ELK стегін орнату аяқталды.

Веб-браузердің мекенжай жолағына Elastic-серверіңіздің IP-мекенжайын енгізіңіз. Кіру үшін әкімші тіркелгісінің деректерін пайдаланыңыз. Сәтті авторизациядан кейін сіз Kibana-ның негізгі бетіне өтесіз.