зеркало из
https://github.com/iharh/notes.git
synced 2025-10-29 20:56:06 +02:00
81 строка
6.2 KiB
Plaintext
81 строка
6.2 KiB
Plaintext
https://vector.dev/docs/reference/configuration/sinks/elasticsearch/
|
||
|
||
|
||
Для того, чтобы начать собирать логи в Elasticsearch не обязательно поднимать полный ELK stack. Я сейчас кратко покажу, как быстро запустить сбор логов из Nginx в Elasticsearch помощью Vector (https://vector.dev/). А в качестве веб интерфейса для работы с еластиком буду использовать легковесный Elasticvue (https://elasticvue.com/).
|
||
|
||
Elasticsearch я запущу в Docker, отключив HTTPS и аутентификацию. То есть это будет тестовая установка. В проде отключать не надо. Там не намного сложнее настройка, просто я не смогу уместить её в одну заметку, если не отключу их. Нужно будет сделать больше настроек.
|
||
|
||
Запускаем Elasticsearch:
|
||
|
||
# docker run -d -p 9200:9200 -p 9300:9300 \
|
||
-e "http.cors.enabled=true" \
|
||
-e "http.cors.allow-origin=http://172.30.245.222:8080" \
|
||
-e "discovery.type=single-node" \
|
||
--name elastic \
|
||
elasticsearch:8.13.0
|
||
|
||
Здесь 172.30.245.222 - это IP адрес сервера, на котором будет запущен веб интерфейс Elasticvue. В моём случае это та же машина, где запускается еластик. Дожидаемся запуска контейнера и забираем из него конфиг службы:
|
||
|
||
# docker cp elastic:/usr/share/elasticsearch/config/elasticsearch.yml ~/
|
||
|
||
Всё, что касается настроек xpack.security заменяем true на false. Возвращаем изменённый конфиг:
|
||
|
||
# docker cp ~/elasticsearch.yml elastic:/usr/share/elasticsearch/config/elasticsearch.yml
|
||
|
||
Перезапускаем контейнер:
|
||
|
||
# docker restart elastic
|
||
|
||
Дожидаемся запуска и проверяем работу:
|
||
|
||
curl http://172.30.245.222:9200
|
||
|
||
Должны увидеть информацию о кластере elasticsearch. Его имя будет docker-cluster. Запускаем тут же в докере веб интерфейс:
|
||
|
||
# docker run -d -p 8080:8080 --name elasticvue cars10/elasticvue
|
||
|
||
Этот веб интерфейс может работать как приложение на десктопе или плагин браузера. Интересная штука, кто не знаком, посмотрите описание на сайте.
|
||
|
||
Идём в веб интерфейс по IP адресу сервера и порт 8080. Настраиваем подключение к кластеру. Указываем настройки:
|
||
◽️No authorization
|
||
◽️docker-cluster
|
||
◽️http://172.30.245.222:9200
|
||
|
||
Убеждаемся, что всё работает.
|
||
|
||
Теперь ставим Vector, который будет отправлять логи Nginx в кластер. Он, соответственно, должен быть установлен на веб сервере. Для Debian установка из пакетов такая:
|
||
|
||
# bash -c "$(curl -L https://setup.vector.dev)"
|
||
# apt install vector
|
||
|
||
Открываем конфиг /etc/vector/vector.yaml и приводим к такому виду:
|
||
|
||
sources:
|
||
nginx_access_logs:
|
||
type: file
|
||
include:
|
||
- /var/log/nginx/access.log
|
||
sinks:
|
||
elastic:
|
||
type: elasticsearch
|
||
inputs:
|
||
- nginx_access_logs
|
||
endpoints:
|
||
- http://172.30.245.222:9200
|
||
|
||
Следите за форматированием файла yaml. При копировании в пост она ломается. У вектора очень хорошая документация. Там есть все примеры использования (https://vector.dev/docs/reference/configuration/sinks/elasticsearch/). Можно у меня заметки на канале посмотреть. Было несколько штук с его настройкой. Очень приятная и легковесная программа. Я последнее время почти всегда вектором собираю логи.
|
||
|
||
Перезапускаем вектор:
|
||
|
||
# systemctl restart vector
|
||
|
||
По умолчанию, он пишет логи в системный syslog. Проверьте на всякий случай, что он запустился и начал отправлять логи в elastic. Идём в его веб интерфейс. Там должен появиться индекс вида vector-2024.04.22, в нём строки из лога Nginx.
|
||
|
||
Простейшие действия по управлению кластером Elasticsearch можно делать в Elasticvue. Можно обойтись и без Kibana. Вот такая простая и быстрая настройка. Если вы не отключите HTTPS и аутентификацию, то вам придётся дополнительно сделать следующее:
|
||
|
||
◽️Создать пароль для пользователя elastic через команду внутри контейнера /bin/elasticsearch-reset-password.
|
||
◽️Соответственно во всех запросах использовать basic аутентификацию с этой учёткой.
|
||
◽️Для работы Elasticvue вам нужно будет забрать сертификат Elasticsearch из /usr/share/elasticsearch/config/certs/http_ca.crt и добавить его в доверенные CA в том браузере, где вы его будете запускать. Далее нужно будет посмотреть, какие имена хоста указаны в сертификате сервера и добавить их в hosts, чтобы браузер не ругался на несоответствие имени в сертификате и адресной строке.
|
||
|
||
Я всё это настраиваю, если надо, но занимает чуть больше времени, поэтому упростил руководство.
|