ELK стегін Ubuntu 18.04 операциялық жүйесіне орнату
Бұл мақала Linux тобына жататын операциялық жүйеге — Ubuntu 18.04 жүйесіне ELK стегін орнатуды сипаттайды.
ELK стегі — деректерді жинау, сақтау және талдаудың кең ауқымды міндеттерін тиімді шешуге арналған қуатты құралдар жиынтығы:
- Elasticsearch – Apache Lucene негізінде құрылған және қосымша ыңғайлылықтары бар толықмәтінді іздеу шешімі.
- Logstash – деректерді жинауға, сүзуге және кейіннен соңғы деректер қоймасына қайта бағыттауға арналған утилита. Бұл механизм нақты уақыттағы конвейерді қамтамасыз етеді. Ол деректерді бірнеше көзден қабылдап, оларды JSON құжаттарына түрлендіре алады.
- Kibana — Elasticsearch ішінен деректерді алуға және іздеуге, сондай-ақ көрнекі графиктер құруға мүмкіндік беретін қолданба.
- Ubuntu 18.04 нұсқасындағы операциялық жүйе.
- Орнатылған Nginx веб-сервері.
- Орнатылған Java виртуалды машинасы.
- sudo командасына қолжетімділігі бар пайдаланушы.
Apache веб-серверімен салыстырғанда, Nginx веб-сервері трафигі жоғары көлемді сайттарды орналастыру үшін аз ресурстар пайдаланады. Nginx архитектурасының арқасында жүздеген мың параллель қосылымға дейін оңай масштабталуға болады.
Nginx веб-серверін орнатып, бастапқы баптауды орындау үшін:
-
Терминал терезесін ашыңыз.
-
Келесі команданы орындап, пакет индекстерін жаңартыңыз:
sudo apt update -
Келесі команданы орындап, Nginx веб-серверін орнатыңыз:
sudo apt install nginx -y -
Веб-сервердің жұмысын тексеру үшін веб-браузерді іске қосып, мекенжай жолағына веб-сервердің IP-мекенжайын енгізіңіз.
Егер орнату сәтті орындалса, веб-сервердің келесі беті ашылады:

ELK стегінің жұмыс істеуі үшін Java виртуалды машинасы қажет. JVM орнату үшін:
-
Терминал терезесін ашыңыз.
-
Келесі команданы орындап, JVM бағдарламалық пакетін орнатыңыз:
sudo apt install default-jre -yНәтижесінде Java Runtime Environment (JRE) пакеті орнатылады.
-
Құрамына Java компиляторы, Java стандартты кластар кітапханалары, мысалдар, құжаттама және түрлі утилиталар кіретін JDK бағдарламалық пакетін орнатыңыз. Ол үшін келесі команданы орындаңыз:
sudo apt install default-jdk -y
Elasticsearch орнатып, бастапқы баптауды орындау үшін:
-
Elasticsearch-тің ағымдағы нұсқасын тексеру үшін мына бетке өтіңіз: https://www.elastic.co/downloads/elasticsearch.
-
Терминал терезесін ашыңыз.
-
Келесі команданы орындап, Elastic пакеттері қорғалатын Elasticsearch ашық GPG кілтін импорттаңыз:
sudo wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Келесі команданы орындап, 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 -
Келесі команданы орындап, пакет индекстерін жаңартыңыз:
sudo apt update -
Келесі команданы орындап, Elasticsearch орнатыңыз:
sudo apt install elasticsearch -
elasticsearch.ymlконфигурациялық файлына өзгерістер енгізіңіз. Ол үшін:-
Келесі команданы орындап, осы файлды өңдеуге ашыңыз:
sudo nano /etc/elasticsearch/elasticsearch.yml -
Келесі жолды табыңыз:
#network.host: 192.168.0.1Оны мына жолға ауыстырыңыз:
network.host: localhost.ymlконфигурациялық файлын өңдегеннен кейін онда артық бос орындар және/немесе шегіністер жоқ екеніне көз жеткізіңіз! -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
-
Келесі команданы орындап, Elasticsearch сервисін іске қосыңыз:
sudo systemctl start elasticsearch -
Келесі команданы орындап, Elasticsearch сервисінің іске қосылу күйін тексеріңіз:
sudo systemctl status elasticsearch -
Егер қате көрсетілсе:

Келесі әрекеттерді орындаңыз:
-
Келесі команданы орындап, Java виртуалды машинасының параметрлері бар файлды ашыңыз:
sudo nano /etc/elasticsearch/jvm.options -
Java үшін ең аз және ең көп жедел жад көлемін анықтайтын параметрлерді табыңыз:

-
-Xms1gжәне-Xmx1gпараметрлерінде қажетті мәндерді көрсетіңіз. Мысалы, жедел жады көлемі 1 ГБ болатын операциялық жүйе үшін мынаны көрсетуге болады:-Xms128m-Xmx128m -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
Elasticsearch сервисін іске қосып, күйін тексеріңіз. Қателер болмаса, төмендегідей көрсетіледі:

-
-
Операциялық жүйе қайта жүктелгенде Elasticsearch сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:
sudo systemctl enable elasticsearch -
Elasticsearch сервисіне қолжетімділікті тексеру үшін келесі команданы орындап, HTTP сұрауын жіберіңіз:
curl -X GET localhost:9200Егер Elasticsearch орнатуы сәтті орындалса, келесі ақпарат көрсетіледі:

Kibana-ны орнатып, бастапқы баптауды орындау үшін келесі әрекеттерді орындаңыз:
-
Elasticsearch-ті сәтті орнатқаныңызға көз жеткізіңіз.
-
Терминал терезесін ашыңыз.
-
Келесі команданы орындап, Kibana орнатыңыз:
sudo apt install kibana -
Келесі команданы орындап, Kibana-ны іске қосыңыз:
sudo systemctl start kibana -
Операциялық жүйе қайта жүктелгенде Kibana сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:
sudo systemctl enable kibana -
Kibana жұмысының күйін тексеру үшін келесі команданы орындаңыз:
sudo systemctl status kibana -
kibana.ymlконфигурациялық файлына өзгерістер енгізіңіз. Ол үшін:-
Келесі команданы орындап, осы файлды ашыңыз:
sudo nano /etc/kibana/kibana.yml -
Келесі жолды табыңыз:
#server.port: 5601Және оны мына жолға ауыстырыңыз:
server.port: 5601 -
Келесі жолды табыңыз
#server.host: "localhost"Және оны мына жолға ауыстырыңыз:
server.host: "localhost" -
Келесі жолды табыңыз:
#elasticsearch.hosts: ["http://localhost:9200"]Және оны мына жолға ауыстырыңыз:
elasticsearch.hosts: ["http://localhost:9200"] -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз
-
-
Kibana веб-интерфейсіне қол жеткізу үшін әкімші тіркелгісін жасаңыз. Ол үшін келесі команданы орындаңыз:
echo "mcskibadmin:\`openssl passwd -apr1\`" | sudo tee -a /etc/nginx/htpasswd.usersмұнда
mcskibadmin- әкімші тіркелгісінің логині,htpasswd.users- тіркелгі деректері сақталатын файл.Содан кейін құпиясөзді енгізіңіз.
-
Келесі команданы орындап, Nginx веб-сервері үшін виртуалды сайты бар файлды жасаңыз:
sudo nano /etc/nginx/sites-available/elk -
Осы файлға келесі ақпаратты қосыңыз:
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 пернелер тіркесімі арқылы аяқтаңыз.
-
Келесі команданы орындап, Nginx-тің жаңа конфигурациясын белсендіріңіз:
sudo ln -s /etc/nginx/sites-available/elk /etc/nginx/sites-enabled/ -
Келесі команданы орындап, Kibana-ны қайта жүктеңіз:
sudo systemctl restart kibana -
Келесі команданы орындап, Nginx веб-серверін қайта жүктеңіз:
sudo systemctl restart nginx -
Келесі команданы орындап, nginx конфигурациялық файлының синтаксисінде қателер жоқ екеніне көз жеткізіңіз:
sudo nginx -t
Logstash-ты орнатып, бастапқы баптауды орындау үшін:
-
Келесі команданы екі рет айтылғандай емес, бір рет орындап, Logstash орнатыңыз:
sudo apt install logstash -
beats-агенттерден ақпарат қабылдау ережелері бар конфигурациялық файлды жасаңыз және баптаңыз. Ол үшін:
-
Келесі команданы орындап,
02-beats-input.confфайлын жасаңыз:sudo nano /etc/logstash/conf.d/02-beats-input.conf -
Осы файлға келесі жолдарды қосыңыз:
input {beats {port => 5044}} -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
-
beats туралы ақпаратты Elasticsearch-те сақтау ережелері бар
30-elasticsearch-output.confконфигурациялық файлын жасаңыз және баптаңыз. Ол үшін:-
Келесі команданы орындап,
30-elasticsearch-output.confфайлын жасаңыз:sudo nano /etc/logstash/conf.d/30-elasticsearch-output.conf -
Осы файлға келесі жолдарды қосыңыз:
output {elasticsearch {hosts => ["localhost:9200"]sniffing => truemanage_template => falsetemplate_overwrite => trueindex => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"document_type => "%{[@metadata][type]}"}} -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
-
Кіріс деректерді сүзу және құрылымдау ережелері бар файлды жасаңыз. Ол үшін:
-
Келесі команданы орындап,
10-system-filter.confфайлын жасаңыз:sudo nano /etc/logstash/conf.d/10-logstash-filter.conf -
Ашылған файлға келесі жолдарды орналастырыңыз:
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 }} -
Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
-
Келесі команданы орындап, Logstash конфигурациясын тексеріңіз:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t -
Келесі команданы орындап, Logstash-ты іске қосыңыз:
sudo systemctl start logstash -
Операциялық жүйе қайта жүктелгенде Logstash сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:
sudo systemctl enable logstash
Filebeat әртүрлі көздерден деректерді (beats) жинап, оларды Linux-тәрізді жүйелерде Logstash немесе Elasticsearch-ке жіберуге мүмкіндік береді.
Filebeat орнату үшін:
-
Терминалды ашыңыз.
-
Келесі команданы орындап, Filebeat орнатыңыз:
sudo apt install filebeat -
filebeat.ymlконфигурациялық файлын баптаңыз. Ол үшін:-
Осы файлды ашыңыз:
sudo nano /etc/filebeat/filebeat.yml -
Filebeat-ке деректерді тікелей Elasticsearch-ке жіберуге тыйым салыңыз. Ол үшін келесі жолдарды табыңыз:
output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]Және оларды мына жолдарға ауыстырыңыз:
#output.elasticsearch:# Array of hosts to connect to.#hosts: ["localhost:9200"] -
Filebeat сервисіне Logstash-ты логтар жинағышы ретінде пайдалануды көрсетіңіз. Ол үшін келесі жолдарды табыңыз:
#output.logstash:# The Logstash hosts#hosts: ["localhost:5044"]Және оларды мына жолдарға ауыстырыңыз:
output.logstash:# The Logstash hostshosts: ["localhost:5044"]Өзгерістерді CTRL+O пернелер тіркесімі арқылы сақтап, өңдеуді CTRL+X пернелер тіркесімі арқылы аяқтаңыз.
-
-
Logstash модулін қосыңыз. Ол үшін келесі команданы орындаңыз:
sudo sudo filebeat modules enable logstash -
Қосылған модульдерді көру үшін келесі команданы орындаңыз:
sudo filebeat modules list -
Келесі команданы орындап, Elasticsearch индексі шаблонын жүктеңіз:
sudo filebeat setup --template -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]' -
Дашбордтар Kibana-ға жіберілетін Filebeat деректерін визуализациялауға мүмкіндік береді. Дашбордты қосу үшін келесі команданы орындаңыз:
sudo filebeat setup -e -E output.logstash.enabled=false -E output.elasticsearch.hosts=['localhost:9200'] -E setup.kibana.host=localhost:5601 -
Келесі команданы орындап, Filebeat-ті іске қосыңыз:
sudo systemctl start filebeat -
Операциялық жүйе қайта жүктелгенде filebeat сервисі автоматты түрде іске қосылуы үшін келесі команданы орындаңыз:
sudo systemctl enable filebeat -
Elasticsearch-тің деректер қабылдап жатқанын тексеру үшін Filebeat индексін келесі команда арқылы сұраңыз:
curl -XGET 'http://localhost:9200/filebeat-\*/_search?pretty'
ELK стегін орнату аяқталды.
Веб-браузердің мекенжай жолағына Elastic-серверіңіздің IP-мекенжайын енгізіңіз. Кіру үшін әкімші тіркелгісінің деректерін пайдаланыңыз. Сәтті авторизациядан кейін сіз Kibana-ның негізгі бетіне өтесіз.