- Импорт ключа GPG Elasticsearch
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch - Добавление репозитория
sudo vim /etc/yum.repos.d/elasticsearch.repo[elasticsearch] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=0 autorefresh=1 type=rpm-md - Устанавливаем elasticsearch
sudo dnf install --enablerepo=elasticsearch elasticsearch -y - Активируем сервис elasticsearch
sudo systemctl enable elasticsearch - Устанавливаем java. Совместимость версий можно проверить тут.
sudo dnf install java-1.8.0-openjdk -y - Устанавливаем logstash
sudo dnf install --enablerepo=elasticsearch logstash -y sudo systemctl enable logstash - Добавляем input для logstash
sudo vim /etc/logstash/conf.d/02-beats-input.confinput { beats { port => 5066 } }
Elasticsearch - Данные на отдельном диске
Я привык класть данные приложений на отдельный диск. Если вам оно не надо, то просто пропускаем полностью эту главу.
- Разбиваем диск:
sudo fdisk /dev/sdj`Command (m for help):` n `Partition number (1-128, default 1):` `First sector (34-209715166, default 2048):` `Last sector, +sectors or +size{K,M,G,T,P} (2048-209715166, default 209715166):` `Command (m for help):` w - Создаём файловую систему
sudo mkfs.ext4 /dev/sdj1 - Делаем mount корневой директории к диску
sudo mkdir /elk sudo blkid sudo vim /etc/fstabUUID=7fe84fac-c810-42c6-b07f-296fab192d75 /elk ext4 defaults 1 2sudo mount -a df -h - Прописываем пути для elasticsearch
sudo vim /etc/elasticsearch/elasticsearch.ymlpath.data: /elk/data path.logs: /elk/logssudo vim /etc/sysconfig/elasticsearchES_TMPDIR=/elk/tmpsudo vim /etc/default/logstashLS_JAVA_OPTS="-Djava.io.tmpdir=/elk/logstash/tmp" - Создаём директории
sudo mkdir -p /elk/data /elk/tmp /elk/logs /elk/logstash/tmp sudo chown elasticsearch /elk/data /elk/tmp /elk/logs sudo chown logstash:logstash /elk/logstash/tmp - Стартуем elasticsearch и logstash
sudo systemctl start elasticsearch sudo systemctl start logstash - Проверяем логи
sudo journalctl -u elasticsearch sudo journalctl -u logstash - Останавливаем elasticsearch и logstash
sudo systemctl stop elasticsearch sudo systemctl stop logstash
Elk кластер
Рекомендуется собирать multi-node кластер для лучшей работы elk и отказоустойчивости. Поэтому все действия выше повторяются на других нодах, которые будут находиться в кластере.
Конфигурация кластера
Имя кластера: my-cluster
Хосты кластера: elk-node1.my.lan, elk-node2..my.lan, elk-node3.my.lan
Настройка кластера
- Правим elasticsearch.yml на каждой ноде
sudo vim /etc/elasticsearch/elasticsearch.ymlhttp.port: 9122 transport.tcp.port: 9322 #тут меняем имя для каждой ноды network.host: elk-node1.my.lan #тут меняем имя для каждой ноды, должно совпадать с именем хоста node.name: elk-node1 cluster.name: my-cluster discovery.zen.ping.unicast.hosts: ["elk-node3.my.lan", "elk-node2.my.lan","elk-node1.my.lan"] discovery.zen.minimum_master_nodes: 2 bootstrap.memory_lock: true - Настраиваем файрволл
sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --add-port=9322/tcp --permanent sudo firewall-cmd --add-port=9122/tcp --permanent sudo firewall-cmd --reload - Перезапускаем elasticsearch на каждой ноде
sudo systemctl restart elasticsearch - Проверяем логи кластера
tail -f /elk/logs/my-cluster.log
Включение memory locking
Если вдруг получаем ошибку memory locking requested for elasticsearch process but memory is not locked, то включаем memory locking.
sudo mkdir /etc/systemd/system/elasticsearch.service.d
sudo vim /etc/systemd/system/elasticsearch.service.d/override.conf
[Service]
LimitMEMLOCK=infinity
sudo systemctl daemon-reload
sudo systemctl restart elasticsearch


Комментарии