У нас уже есть кластер с Elastisearch, теперь установим Kibana.
Если Elasticsearch был установлен с официального репозитория, то ключ его и сам репозиторий у вас уже добавлены, если ставили с бинарника или исходников, то добавим его:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Добавим сам репозиторий (на момент написания статьи, актуальная версия Elasticsearch/Kibana была 6.4)
cat > /etc/yum.repos.d/elasticsearch.repo << EOF [elasticsearch-6.x] name=Elasticsearch repository for 6.x packages baseurl=https://artifacts.elastic.co/packages/6.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF
Установка Kibana:
yum install -y kibana
Добавляем в автозапуск:
Если у вас CentOS 7:
systemctl enable kibana
Если вы делали это на AWS, на амазоновском образе на основе CentOS'а без systemd (Amazon Linux AMI 2018.03), то по старинке через chkconfig:
chkconfig kibana on
Проверим:
chkconfig | grep kibana kibana 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Запустим Kibana:
systemd:
systemctl start kibana
SysV:
service kibana start
У меня возникла проблема, Kibana падала из-за отсутствия памяти, так как я все настраивал на t2.micro, поэтому мне пришлось еще больше ограничить память для Elasticsearch.
По умолчанию Kibana слушает localhost на порту 5601
netstat -anp | grep :5601
Откроем файл конфигурации:
vim /etc/kibana/kibana.yml
Находим закомментированную строку:
#server.host: "localhost"
Приводим ее к виду:
server.host: 0.0.0.0
В данном случае Kibana будет слушать порт 5601 на всех интерфейсах. Можете указать приватный адрес, можно настроить в фаерволе доступ только с определенных адресов, так же можно поставить NginX в качестве прокси и запоролить его. Для теста я указал все интерфейсы.
Открываем браузер, вводим IP или DNS, и указываем порт 5601.
Чтобы начать работать с Kibana, нужно добавить какие-нибудь данные в Elasticsearch. К примеру:
curl -X POST -H 'Content-Type: application/json' http://localhost:9200/artem-1/message/1 -d '{ "message": "First message." }' curl -X POST -H 'Content-Type: application/json' http://localhost:9200/artem-2/message/1 -d '{ "message": "Second message." }' curl -X POST -H 'Content-Type: application/json' http://localhost:9200/artem-3/message/1 -d '{ "message": "Third message." }'
Рассмотрим первую строку. Она создаст индекс с именем 'artem-1', типом данных 'message' и сообщением "First message.", '1' — порядковый номер записи.
Теперь можно в Kibana создать "index pattern". В качестве фильтра укажем "artem-*"