Установка Elasticsearch, Logstash и Kibana, с минимальными настройками, для работы в тестовом окружении. Установка проводилась под виртуальную машину с Debian Linux.
|
1 2 3 4 5 6 |
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.8 (stretch) Release: 9.8 Codename: stretch |
Все действия выполнялись от пользователя root (это ужасно, но на личном тестовом окружении почему бы и не позволить себе маленькие слабости, в т.ч. работу из-под root), поэтому sudo в приведенных примерах не используется.
Установка Java
|
1 2 |
# apt-get update # apt-get install openjdk-8-jdk |
Проверить версию установленной java:
|
1 2 3 4 |
# java -version openjdk version "1.8.0_212" OpenJDK Runtime Environment (build 1.8.0_212-8u212-b01-1~deb9u1-b01) OpenJDK 64-Bit Server VM (build 25.212-b01, mixed mode) |
Установка Elasticsearch на Debian
Elasticsearch — это поисковый сервер с открытым исходным кодом на основе Apache Lucene. Написан на Java, что позволяет Elasticsearch работать на разных платформах. Предоставляет RESTful web-API, хранит документы в JSON-формате без заранее определяемой структуры (schema less). Позволяет пользователям обрабатывать очень большой объем данных с очень высокой скоростью.
Копируем публичный ключ репозитория:
|
1 |
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add - |
В файл /etc/apt/sources.list добавляем новую строку:
|
1 |
deb https://artifacts.elastic.co/packages/6.x/apt stable main |
Приступаем к установке:
|
1 2 |
# apt-get update # apt-get install elasticsearch |
Запустить Elasticsearch:
|
1 |
# service elasticsearch start |
Проверить состояние Elasticsearch:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# service elasticsearch status elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-04-15 11:50:24 MSK; 5min ago Docs: http://www.elastic.co Main PID: 2240 (java) Tasks: 40 (limit: 4915) Memory: 1.2G CPU: 54.703s CGroup: /system.slice/elasticsearch.service +-2240 /usr/bin/java -Xms1g -Xmx1g -XX :+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 L-2297 /usr/share/elasticsearch/modules/x-pack-ml/ platform/linux-x86_64/ bin/controller |
Конфигурационные файлы Elasticsearch хранятся в директории /etc/elasticsearch.
Логи можно найти в директории /var/log/elasticsearch.
Индексы и прочие необходимые данные elasticsearch будет размещать по адресу /var/lib/elasticsearch. Местонахождение логов и индексов можно изменить, внеся правки в конфигурационные файлы.
Проверить, откликается elasticsearch или нет, можно отправив простой http-запрос:
|
1 |
# curl -X GET http://localhost:9200 |
Установка Kibana на Debian
Kibana — это web-интерфейс для визуализации данных Elasticsearch.
|
1 |
# apt-get install kibana |
Запускаем Kibana:
|
1 |
# service kibana start |
Проверить работоспособность Kibana можно, отправив запрос по адресу http://localhost:5601. Kibana запускается достаточно долго, поэтому не стоит нервничать, если сразу после выполнения команды start сервис продолжает оставаться недоступным.
Конфиг Kibana — /etc/kibana/kibana.yml. Вспомогательные данные Kibana помещает в директорию /var/lib/kibana/.
Установка Logstash на Debian
Logstash принимает логи в различных форматах, обрабатывает и отправляет на индексацию Elasticsearch.
|
1 |
# apt-get install logstash |
Запускаем Logstash:
|
1 |
# service logstash start |
Конфигурационные файлы Logstash можно найти по адресу /etc/logstash/. Логи — /var/log/logstash/.
Установка и настройка Nginx на Debian для работы с Kibana
Nginx выполняет роль прокси по отношению к Kibana. Nginx не является обязательным компонентом в тестовой среде, в начале изучения стека ELK. Но лучше сразу привыкать к его наличию. В реальных условиях nginx используют для добавления авторизации, ограничений доступа, ssl-сертификатов, управления доменными именами, и т.д.
Ниже приведен пример минимальной конфигурации nginx для работы с Kibana. Подобный конфиг подойдет на первое время для тестовой среды.
Устанавливаем nginx:
|
1 |
# apt-get install nginx |
Создаем новый файл kibana по адресу /etc/nginx/sites-available/:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
server { listen 9999; server_name kibana; error_log /var/log/nginx/kibana.error.log; access_log /var/log/nginx/kibana.access.log; location / { rewrite ^/(.*) /$1 break; proxy_ignore_client_abort on; proxy_pass http://localhost:5601; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } |
Вместо указанного в примере порта 9999 можно назначить любой другой, главное, чтоб он не конфликтовал со стандартными портами Linux и другими используемыми на вашей машине серверами.
Создаем символическую ссылку:
|
1 |
# ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/kibana |
Запускаем nginx, если он еще не был запущен, либо перезагружаем:
|
1 |
# service nginx start |