По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Что это за странные названия - Elasticsearch, Logstash и Kibana? На сегодняшний день разработка программного обеспечения одна из наиболее широких и динамично развивающихся сфер деятельности человечества. Новые идеи, программные решения, оптимизация и адаптация вот что выделяет хорошего разработчика ПО. Соответственно, выбор подходящего инструмента для создания приложений это то, от чего напрямую зависит скорость работ, а значит и развитие компании, и продвижение ее на рынке. Одним из ключевых процессов в разработке ПО является логирование. Этим термином называется фиксация каждого этапа работы программы, как правило, сохраняемого в файл, который называется логом. Этот файл обычно содержит информацию о каждой совершенной программой операции и точном времени ее совершения, что позволяет в случае неполадки просмотреть, в какой момент и на какой операции что-то пошло не так. Программное обеспечения для сбора и анализа логов не всегда универсально. По классической схеме работы, лог-файл создается при первом запуске программы, фиксирует ее поведение, затем автоматически сохраняется при закрытии программы. При следующем запуске приложения лог-файл заменяется на новый и все начинается сначала. Однако, с течением времени программы становятся все более сложными, лог-файлы, соответственно, более объемными, а навигация по ним более затруднительной. С течением времени возникла необходимость в специализированных инструментах, которые позволяют быстро и удобно работать с логами. Одним из таких решений стал комплекс программ ELK Stack, о котором и пойдет речь в этой статье. Название ELK подобрано не просто так. Это не одна программа, а, как уже было сказано выше, комплекс, состоящий из трех основных программных продуктов Elasticsearch, Logstash и Kibana. Иногда данный комплекс дополняется сторонними программами, но эти "три кита" остаются неизменными инструментами. Разберем подробнее: Elasticsearch это поисковая система, предназначенная изначально для поиска фрагментов текста, однако с гибким функционалом и широкими возможностями по настройке. Это продукт улучшения решения Apache Lucene за счет добавления нескольких нововведений, делающих поиск информации в проектах с большими объемами данных достаточно оперативным и несложным. Logstash приложение для сбора информации из различных источников, преобразования их в удобный для работы формат и направления их в хранилище для дальнейшей работы. Простота использования и возможность работать с большими объемами данных обеспечивает Logstach ряд преимуществ перед аналогичными проектами. Kibana это плагин, предназначенный специально для Elasticsearch. Он отвечает за визуализацию данных, аналитику и представление итоговой информации в удобном для восприятия виде. Данное решение позволяет достаточно быстро анализировать итоги поиска, искать закономерности и представлять на экране Вашего устройства, где именно в проекте находятся слабые места. Этот плагин также обладает широкими возможностями по конфигурированию. Таким образом, механизм сбора логов выглядит так: Logstash собирает объемные логи и помещает их в хранилище, Elasticsearch используется для поиска нужных строк в этих логах, Kibana позволяет проанализировать и визуализировать результаты поиска. Комплекс этих программных продуктов отличное решение для оперативного поиска и устранения неисправностей в программном коде, и очень удобный инструмент для разработчиков особенно тех, кто занимается созданием или внедрением отдельных элементов в крупные проекты. Кроме того, функциональность ELK позволяет его использовать в качестве централизованного хранилища журналов, агрегатора событий с удобной навигацией, аналитической системы с алгоритмом машинного обучения, а также по иным назначениям. Стоит упомянуть, что все три проекта разработаны компанией Elastic на основе открытого кода. Это позволяет сторонним разработчикам модифицировать систему, и вполне возможно, что данный продукт получит развитие и в дальнейшем будет пользоваться еще большей популярностью среди пользователей.
img
Давайте представим себе корпоративную сеть, где мобильная и офисная телефонная сеть слиты воедино, со всеми вытекающими плюсами – как компании могут сэкономить косты и запустить новые инициативы и приложения после интеграции их проводной IP – телефонии с сотовой сетью и беспроводной сетью. Что такое конвергетная связь? Практически у каждой компании есть система телефонии в том или ином виде – для внутренних и внешних коммуникаций. Большинство компаний используют систему IP – телефонии и IP – телефоны. Как примеры можно привести такие АТС как Cisco Unified Call Manager, Asterisk, FreeSWITCH и так далее. Все звонки идут через так называемые транки – провайдерские каналы связи, подключенные к АТС. Есть два типа транков – цифровые транки (такие как ISDN, PRI и так далее) и SIP – транки, или, как их ещё иногда называют (довольно редко) – IP – транки. Мобильные сети также используются повседневно – сотрудникам выдаются корпоративные номера, которые они используют для рабочих звонков и сообщений и подключения к интернету вне офиса. А представить себе компанию без Wi – Fi сети сейчас просто невозможно – сотрудники давно привыкли работать из любого места в офисе и без большого количества проводов. Опять же, популярной становится практика BYOD – Bring Your Own Device или «Принеси Свое Устройство», когда работники используют свои мобильные телефоны, планшеты и ноутбуки для выполнения корпоративных задач. Fixed Mobile Convergence (FMC) – или конвергентная связь являет собой все три компоненты, упомянутые выше, интегрированные в одно решение. Это позволяет определять устройствам какую именно сеть или среду использовать для максимально выгодной и эффективной коммуникации. FMC – это концепт, и технически достигается разными вендорами различными способами. FMC позволит вызовы с мобильных номеров сотрудников маршрутизировать через вашу офисную АТС со всеми вытекающими последствиями: запись разговора, статистика, правила маршрутизации внутреннего номера и так далее. Вы просто делаете SIP – транк между мобильным оператором и вашей АТС. К примеру, мобильная гарнитура сотрудника также может быть зарегистрирована на корпоративной АТС как SIP – клиент и подключена к АТС через беспроводную сеть. При таком сценарии сотрудник может совершать вызовы, используя как мобильную сеть, так и беспроводную сеть для совершения звонков через его IP – АТС. Опять же, звонки тоже будут приходить на одно и то же устройство, но с двух совершенно разных направлений. Плюсы использования конвергентной сети Когда организация предоставляет гарнитуры, подобные тем, что мы упомянули выше, это позволит сэкономить много денег на мобильной связи – так как все звонки с мобильных устройств, которые сотрудники будут совершать с мобильного телефона, находясь в офисе, будут идти через корпоративную АТС. Основной вопрос здесь – это как реализовать бесшовную интеграцию, чтобы сотрудникам не приходилось подключать дополнительный софт или нажимать лишние кнопки при звонках. Как я уже упомянул, тарифы на корпоративную мобильную связь и на VoIP связь могут быть сильно выгоднее для последних. Также очень часто тарифы на SIP гораздо выгоднее тарифов на классическую аналоговую связь через ТфОП. Теперь коснёмся такой темы как международные вызовы – при внедрении FMC для компании возможно ввести такие правила, что абсолютно все международные вызовы должны идти через корпоративную телефонию, и, несмотря на то, что это все равно будет идти по повышенным тарифам, стоимость таких вызовов будет на порядки ниже по сравнению с использованием мобильной связи. А что насчет продуктивности? Все сотрудники могут быть всегда доступны по их корпоративному номеру – в случае, если они находятся вне офиса, звонок будет автоматически перенаправлен на их мобильный номер, причем вызов будет совершен соответствующей АТС – если компания имеет офисы в нескольких городах или странах, это даст большой выйгрыш по качеству связи и затратам. Некоторые FMC вендоры также предоставляют возможность использования единого ящика голосовой почты, доступного как с рабочего телефона, так и с мобильного. Более того, если в компании есть сотрудники, которые часто находятся в командировках, у вас есть возможность настроить мобильный телефон как удаленный экстеншен на корпоративной АТС и тогда они будут использовать только его – так уменьшатся затраты на оборудование и на его обслуживание. А еще, если сотрудники часто звонят из филиала в филиал, и привыкли использовать для этого мобильный телефон, это тоже позволит сильно уменьшить затраты. Конечно, бесспорным остается тот факт, что по - настоящему это будет ощущаться только при большом количестве сотрудников и наличии филиалов как таковых. Причем возможна настройка телефонов в таком режиме, когда вызов приходит сразу на два устройства и терминируется только на том, на котором подняли трубку – представляете, как это может помочь уменьшить количество неотвеченных вызовов? А вишенкой на торте является возможность реализации бесшовного роуминга между Wi – Fi сетью и сотовой сетью, тогда, к примеру, сотрудники смогут выйти из здания и вызов не прервется, а соединение автоматически переключится на сотовую сеть. Обратная ситуация также возможна – что опять - таки повлияет на затраты на сотовую связь. Некоторые FMC решения также позволяют делать более гранулярный анализ звонков и активностей сотрудников – при интеграции с CRM системой это может сильно разгрузить продавцов с операционной точки зрения. Заключение На этом все, дорогие читатели! Думаю, многие из вас, читая данную статью задумались о том, что сейчас в 2018 году множество из описанных фич используется ежедневно у вас в компании и вы даже не думали, что это называется FMC ;) В 2018 году этот концепт немного устарел, по причине повсеместного развития облачных АТС и быстрого 4G подключения с безлимитным трафиком. Однако, мы все равно подумали, что это будет нелишним про это почитать :)
img
Давно прошли те времена, когда «база данных» представляла собой единую СУБД на основе реляционной модели данных, которую обычно устанавливали на самом мощном сервере в центре обработки данных. Такая база данных могла обслуживать все виду запросов – OLTP (On-Line Transaction Processing – обработка транзакций в режиме реального времени), OLAP (On-Line Analytical Processing – аналитическая обработка данных в режиме реального времени) – все, что нужно для бизнеса. В настоящее время базы данных работают на самом обычном оборудовании, они также стали более сложными с точки зрения высокой доступности и более специализированными для обработки определенного типа трафика. Специализация позволяет добиться гораздо большей производительности баз данных – все оптимизировано для работы с определенным типом данных: оптимизатор, механизм хранения, даже язык может быть не SQL, как это бывает обычно. Он может быть основан на SQL с некоторыми расширениями, которые позволяют более эффективно манипулировать данными, или может быть чем-то абсолютно новым, созданным с нуля. На сегодня мы имеем аналитические столбчатые базы данных, такие как ClickHouse или MariaDB AX, платформы обработки и анализа больших данных, такие как Hadoop, решения NoSQL, такие как MongoDB или Cassandra, хранилища данных типа «ключ-значение», такие как Redis. Мы также имеем базы данных временных рядов, такие как Prometheus или TimeScaleDB. Это именно то, на чем мы акцентируем внимание в данной статье. Базы данных временных рядов (Time Series Databases) – что это такое и зачем вам нужно еще одно хранилище данных в своей среде. Для чего нужны базы данных временных рядов? Как видно из названия, базы данных временных рядов предназначены для хранения данных, которые изменяются со временем. Это могут быть абсолютно любые данные, собранные с течением времени. Это могут быть метрические показатели, собранные из некоторых систем – все системы трендов являются примерами данных временных рядов. Каждый раз, когда вы смотрите на информационные панели в ClusterControl, на самом деле вы видите визуальное представление временных рядов, хранящихся в Prometheus – базе данных временных рядов. Временные ряды не ограничиваются метрическими показателями базы данных. Метриками может быть что угодно – изменение потока людей, входящих в торговый центр, с течением времени, изменение трафика в городе, использование общественного транспорта в течение дня, течение воды в реке или ручье, количество энергии, вырабатываемое водной установкой – все это и все остальное, что можно измерить во времени, является примером временных рядов. Такие данные можно запросить, построить, проанализировать, чтобы найти корреляционную зависимость между различными метриками. Структура данных в базе данных временных рядов Как вы понимаете, самая важная составляющая данных в базе данных временных рядов – это время. Существует два основных способа хранения данных. Первый способ чем-то похож на хранилище «ключ-значение» и выглядит так: Метка времени Метрика 1 2019-03-28 00:00:01 2356 2019-03-28 00:00:02 6874 2019-03-28 00:00:03 3245 2019-03-28 00:00:04 2340 Проще говоря, для каждой метки времени имеется некоторое значение метрики. Второй способ подразумевает хранения большего числа показателей. Вместо того, чтобы хранить каждую метрику в отдельной таблице или коллекции, их можно хранить вместе. Метка времени Метрика 1 Метрика 2 Метрика 3 Метрика 4 Метрика 5 2019-03-28 00:00:01 765 873 124 98 0 2019-03-28 00:00:02 5876 765 872 7864 634 2019-03-28 00:00:03 234 7679 98 65 34 2019-03-28 00:00:04 345 3 598 0 7345 Такая структура данных, когда все метрики связаны, позволяет более эффективно запрашивать данные. Вместо того, чтобы читать несколько таблиц и объединять их для получения всех метрик, достаточно прочитать лишь одну единственную таблицу, чтобы подготовить данные к обработке и представлению. У вас может возникнуть вопрос – что же здесь нового? Чем эта база данных отличается от обычной таблицы в MySQL или в любой другой реляционной базе данных? Да, действительно, конструкция таблиц очень похожа. Однако есть существенные различия в рабочей нагрузке, которые могут существенно повысить производительность, если хранилище данных предназначено для использования такого рода таблиц, Временные ряды, как правило, только растут. Маловероятно, что вы будете обновлять старые данные. Чаще всего строки в таблице не удаляются, однако вам может понадобиться какая-то агрегация данных с течением времени. Если принять это при проектировании внутреннего устройства базы данных, то этот факт будет иметь существенное расхождение в сравнении со «стандартными» реляционными (и не реляционными) базами данных, предназначенными для обработки транзакций в режиме реального времени. Что здесь является наиболее важным, так это способность последовательно хранить большие объемы данных, поступающих со временем. Можно, конечно, использовать РСУБД для хранения временных рядов, но она не оптимизирована для этого. Данные и индексы, сгенерированные на ее основе, могут стать слишком большими, и запросы будут проходить очень медленно. Механизмы хранения данных, используемые в СУБД, предназначены для хранения различных типов данных. Обычно они оптимизированы для рабочей нагрузки обработки транзакций в режиме реального времени, которая включает в себя частое изменение и удаление данных. В реляционных базах данных также часто отсутствуют специализированные функции и функции, предназначенные для обработки временных рядов. Мы уже упоминали, что вы вероятно столкнетесь с необходимостью агрегировать данные, полученные ранее какой-то временной метки. Вы также можете иметь возможность легко запускать некоторые статистические функции для ваших временных рядов, чтобы сглаживать их, определять и сравнивать тренды, интерполировать данные и многое другое. Здесь, например, вы можете найти некоторые функции, которые Prometheus предоставляет пользователям. Примеры баз данных временных рядов На рынке существует множество баз данных временных рядов, поэтому, естественно, что рассмотреть все мы не сможем. Но мы все же хотели привести несколько примеров баз данных временных рядов, которые, возможно, вам уже знакомы или которые вы уже, возможно, используете (сознательно или нет). InfluxDB InfluxDB была разработана компанией InfluxData. Это база данных временных рядов с открытым исходным кодом, написанная языке программирования Go. Хранилище данных позволяет вводить запросы данных на языке, подобном SQL, что позволяет разработчикам легко интегрировать эту базу данных в свои приложения. InfluxDB также может работать как часть коммерческого решения, которое охватывает весь стек, предназначенный для обеспечения процесса обработки данных временных рядов, полнофункциональной высоко доступной средой. Prometheus Prometheus – это еще один проект с отрытым исходным кодом, который также написан на языке программирования Go. Он обычно используется в качестве серверной части для различных инструментов и проектов с открытым исходным кодом, например, Percona Monitoring and Management. Prometheus также является наилучшим вариантом для ClusterControl. Prometheus можно развернуть из ClusterControl с целью хранения данных временных рядов, собранных на серверах баз данных, контролируемых и управляемых ClusterControl: Prometheus широко используется в мире Open Source, поэтому его довольно легко интегрировать в уже существующую среду с помощью нескольких экспортеров. RRDtool Это один из примеров базы данных временных рядов, которую многие используют, даже не подозревая об этом. RRDtool – это достаточно популярный проект с открытым исходным кодом для хранения и визуализации временных рядов. Если вы хоть раз использовали Cacti, то и RRDtool вы тоже использовали. Если вы разработали свое собственное решение, вполне вероятно, что и здесь вы тоже использовали RRDtool в качестве серверной части для хранения данных. Сейчас RRDtool, возможно, не так популярен, как это было в 2000-2010 годах. В те годы это был самый распространенный способ хранения временных рядов. Забавный факт – ранние версии ClusterControl использовали именно RRDtool. TimeScale TineScale – это база данных временных рядов, разработанная на основе PostgreSQL. Это расширение для PostgreSQL, которое использует основное хранилище данных для предоставления доступа к ним, что означает, что оно поддерживает все разновидности SQL, доступные для использования. Поскольку это расширение, то оно использует все функции и расширения PostgreSQL. Вы можете совмещать временные ряды с другими типами данных, например, объединять временные ряды с метаданными, пополняя информацией выходные данные. Вы также можете выполнить более сложную фильтрацию, используя JOIN и таблицы без временных рядов. Геоинформационное обеспечение в PostgreSQL TimeScale можно использовать для отслеживания географических местоположений с течением времени, а также использовать все возможности масштабирования, предлагаемые PostgreSQL, включая репликацию. Timestream Amazon Web Services также предлагает базы данных временных рядов. О Timestream было объявлено совсем недавно, в ноябре 2018 года. Она добавляет еще одно хранилище данных в портфель AWS, помогая пользователям обрабатывать временные ряды, поступающие из таких источников, как устройства Интернет вещей или отслеживаемые сервисы. Его также можно использовать для хранения метрических данных, полученных из журналов, созданных несколькими службами. Это позволяет пользователям выполнять аналитические запросы к ним, помогая понять закономерности и условия, в которых работают службы. Tiemstream, как и большинство сервисов AWS, обеспечивает простой способ масштабирования в случае, если с течением времени возрастает потребность в хранении и анализе данных. Как видите, вариантов баз данных временных рядов на рынке множество, и это не удивительно. В последнее время, все более популярным становится анализ временных рядов, поскольку он становится все более важных для различных бизнес-операций. К счастью, есть большое количество проектов как с открытым кодом, так и коммерческих. И с большой долей вероятности вы сможете найти инструмент, который полностью удовлетворит ваши потребности.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59