Kibana - Знакомство с Elk Stack

Kibana - это инструмент визуализации с открытым исходным кодом, который в основном используется для анализа большого объема журналов в виде линейных диаграмм, гистограмм, круговых диаграмм, тепловых карт и т. Д. Kibana работает синхронно с Elasticsearch и Logstash, которые вместе образуют так называемые ELK стек.

ELK означает Elasticsearch, Logstash и Kibana. ELK - одна из популярных платформ управления журналами, используемая во всем мире для анализа журналов.

В стеке ELK -

  • Logstashизвлекает данные регистрации или другие события из разных источников ввода. Он обрабатывает события, а затем сохраняет их в Elasticsearch.

  • Kibana - это инструмент визуализации, который обращается к журналам из Elasticsearch и может отображать их пользователю в виде линейной диаграммы, гистограммы, круговых диаграмм и т. д.

В этом руководстве мы будем тесно сотрудничать с Kibana и Elasticsearch и визуализировать данные в различных формах.

В этой главе давайте разберемся, как вместе работать со стеком ELK. Кроме того, вы также узнаете, как -

  • Загрузите данные CSV из Logstash в Elasticsearch.
  • Используйте индексы из Elasticsearch в Kibana.

Загрузить данные CSV из Logstash в Elasticsearch

Мы собираемся использовать данные CSV для загрузки данных с помощью Logstash в Elasticsearch. Для работы над анализом данных мы можем получить данные с сайта kaggle.com. На сайте Kaggle.com загружаются все типы данных, и пользователи могут использовать их для анализа данных.

Мы взяли данные по странам .csv отсюда: https://www.kaggle.com/fernandol/countries-of-the-world. Вы можете скачать файл csv и использовать его.

Файл csv, который мы собираемся использовать, имеет следующие детали.

Имя файла - countrydata.csv

Столбцы - «Страна», «Регион», «Население», «Площадь».

Вы также можете создать фиктивный CSV-файл и использовать его. Мы будем использовать logstash сбросить эти данные из countriesdata.csv в elasticsearch.

Запустите elasticsearch и Kibana в своем терминале и продолжайте работать. Нам нужно создать файл конфигурации для logstash, который будет содержать сведения о столбцах файла CSV, а также другие сведения, как показано в файле logstash-config, приведенном ниже -

input {
   file {
      path => "C:/kibanaproject/countriesdata.csv"
      start_position => "beginning"
      sincedb_path => "NUL"
   }
}
filter {
   csv {
      separator => ","
      columns => ["Country","Region","Population","Area"]
   }
   mutate {convert => ["Population", "integer"]}
   mutate {convert => ["Area", "integer"]}
}
output {
   elasticsearch {
      hosts => ["localhost:9200"]
      => "countriesdata-%{+dd.MM.YYYY}"
   }
   stdout {codec => json_lines }
}

В файле конфигурации мы создали 3 компонента -

Ввод

Нам нужно указать путь к входному файлу, который в нашем случае является файлом csv. Путь, по которому хранится файл CSV, указывается в поле пути.

Фильтр

Будет использоваться компонент csv с разделителем, который в нашем случае является запятой, а также столбцы, доступные для нашего файла csv. Поскольку logstash рассматривает все данные, поступающие в виде строки, в случае, если мы хотим, чтобы какой-либо столбец использовался как целое число, то же самое должно быть указано с плавающей запятой с помощью mutate, как показано выше.

Вывод

Для вывода нам нужно указать, куда нам нужно поместить данные. Здесь, в нашем случае, мы используем elasticsearch. Данные, которые необходимо передать в elasticsearch, - это хосты, на которых он запущен, мы упомянули его как localhost. Следующее поле - это индекс, которому мы дали название страны -currentdate. Мы должны использовать тот же индекс в Kibana после обновления данных в Elasticsearch.

Сохраните указанный выше файл конфигурации как logstash_countries.config . Обратите внимание, что на следующем шаге нам нужно указать путь к этой конфигурации команде logstash.

Чтобы загрузить данные из файла csv в elasticsearch, нам нужно запустить сервер elasticsearch -

Теперь беги http://localhost:9200 в браузере, чтобы убедиться, что elasticsearch работает успешно.

У нас работает elasticsearch. Теперь перейдите по пути, по которому установлен logstash, и выполните следующую команду, чтобы загрузить данные в elasticsearch.

> logstash -f logstash_countries.conf

На приведенном выше экране показана загрузка данных из файла CSV в Elasticsearch. Чтобы узнать, есть ли у нас индекс, созданный в Elasticsearch, мы можем проверить то же самое следующим образом:

Мы можем видеть индекс countrydata-28.12.2018, созданный, как показано выше.

Подробности индекса - страны-28.12.2018 выглядят следующим образом -

Обратите внимание, что сведения о сопоставлении со свойствами создаются при загрузке данных из logstash в elasticsearch.

Использовать данные Elasticsearch в Kibana

В настоящее время у нас есть Kibana, работающая на локальном хосте, порт 5601 - http://localhost:5601. Пользовательский интерфейс Кибаны показан здесь -

Обратите внимание, что у нас уже есть Kibana, подключенная к Elasticsearch, и мы должны видеть index :countries-28.12.2018 внутри Кибаны.

В пользовательском интерфейсе Kibana нажмите на опцию меню управления слева -

Теперь нажмите Управление индексами -

Индексы, присутствующие в Elasticsearch, отображаются в управлении индексами. Индекс, который мы собираемся использовать в Kibana, - countrydata-28.12.2018.

Таким образом, поскольку у нас уже есть индекс elasticsearch в Kibana, далее мы поймем, как использовать индекс в Kibana для визуализации данных в виде круговой диаграммы, гистограммы, линейной диаграммы и т. Д.