Сначала настраиваем файл на каждой ноде /etc/elasticsearch/elasticsearch.yml
:
Указываем имя кластера (оно должно совпадать на всех нодах)
cluster.name: tt-log
Роль нод:
node.roles: [ master, data, ingest ]
Lock the memory on startup:
bootstrap.memory_lock: true
Адрес ноды которую вы настраиваете
network.host: 172.17.11.34
Настройка порта и хоста
transport.host: 0.0.0.0
http.port: 9200
Начальный список хостов для выполнения обнаружения при запуске этого узла (перечисляем все ноды которые мы будем использовать в кластере
)
discovery.seed_hosts:
- SRV-TT-LOG11.wiset.local
- SRV-TT-LOG12.wiset.local
- SRV-TT-LOG13.wiset.local
Ноды которые могут выступать мастером
cluster.initial_master_nodes:
- srv-tt-log11.wiset.local
- srv-tt-log12.wiset.local
- srv-tt-log13.wiset.local
Чтобы elasticsearch коректно завелся создаем по пути vim /etc/systemd/system/elasticsearch.service.d/elasticsearch.conf
следующего содержания:
[Service]
LimitMEMLOCK=infinity
LimitNPROC=4096
LimitNOFILE=65536
После этого выполняем команду:
systemctl daemon-reload
Для получения статистики от elasticsearch используем metricbeat настроенный согласно этой статье
Устанавливаем metircbeat
yum install metricbeat
Включаем модуль elasticsearch-xpack
metricbeat modules enable elasticsearch-xpack
Включить сбор данных мониторинга в kibana
GET _cluster/settings
PUT _cluster/settings
{
"persistent": {
"xpack.monitoring.collection.enabled": true
}
}
Disable module system
metricbeat modules disable system
Для просмотра всех включенных модулей metricbeat
также отобразит которые из них включены
metricbeat modules list
В конфигурационном файле /etc/metricbeat/metricbeat.yml
перечисляем все ноды
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["http://srv-tt-log13.wiset.local:9200", "http://srv-tt-log11.wiset.local:9200", "http://srv-tt-log12.wiset.local:9200"]
Для установки:
yum install filebeat
Для установи dashboard:
filebeat setup
Для правильного формирования индексов нужно добавить в файл /etc/filebeat/filebeat.yml
setup.template.settings:
setup.template.enabled: true
setup.template.overwrite: true
Для проверки синтаксиса в конфиге
filebeat test config
Для работы kibana на порту 443 останавливаем сервис kibana systemctl stop kibana
правим конфигурационный файл /etc/kibana/kibana.yml
в котором меняем порт:
server.port: 443
После чего запускаем следующии команды взяты по этой или этой статье:
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana-plugin
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/bin/kibana-keystore
sudo setcap cap_net_bind_service=+epi /usr/share/kibana/node/bin/node
Стартуем kibana systemctl start kibana
и проверяем работу сервиса на нашем порту.
netstat -tenpula | grep LIST | grep 443
После этого приступаем к настройки шифрования трафика между kibana и браузером.
Была сделана по этой статье
Основные моменты по настройки для подключения сертификата в конфигурационном файле /etc/kibana/kibana.yml
:
server.ssl.enabled: true
server.ssl.certificate: /etc/kibana/youdomain.ua.crt
server.ssl.key: /etc/kibana/youdomain.ua.key
А также прописываем публичный URL по которому в дальнейем будем подключатя.
server.publicBaseUrl: "https://youdomain.ua"
Альтернативный вариант перенаправить порт 5601 на 80 с помощью IPTABLES. Поскольку эта виртуальная машина запускает только kibana и elasticsearch, у меня не будет конфликтов портов.
Открытие 80-ого порта в UFW
sudo ufw allow 80/tcp
После этого мы можем добавить перенаправление
Выполняем sudo vim /etc/ufw/before.rules
и непосредственно перед *filter
добавляем:
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-poty 5601
COMMIT
В firewalld
проброс трафика с 514
порта на 10514
sudo firewall-cmd --add-forward-port=port=514:proto=tcp:toport=10514 --permanent