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 для визуализации данных в виде круговой диаграммы, гистограммы, линейной диаграммы и т. Д.