Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.
Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.
В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.Читать полностью »
Рубрика «elasticsearch» - 11
Основы Elasticsearch
2016-03-30 в 5:08, admin, рубрики: curl, elasticsearch, java, json, lucene, rest, search engine, Веб-разработка, поисковые технологииПоиск кода в Bitbucket Server
2016-03-25 в 6:35, admin, рубрики: atlassian, bitbucket, EAP, elastic, elasticsearch, Git, search, поиск, поисковые технологииС удовольствием делюсь новостью, которая, надеюсь, порадует некоторых читателей Хабра: в Bitbucket Server вот-вот появится возможность поиска по коду. Буквально на днях вышел релиз по программе раннего доступа (EAP).
Начну с вольного перевода обращения менеджера продукта, опубликованного в блоге Atlassian:
Как часто это случалось с вами: вы видите сообщение об ошибке, но не знаете, в какой части кода она происходит, или вам известно название функции, но не репозиторий, в коде которого она определена. Многие из вас просили добавить в Bitbucket Server поиск по коду, и я рад сообщить, что ваше ожидание подошло к концу. Сегодня мы приглашаем наших пользователей опробовать поиск по коду в Bitbucket Server через программу раннего доступа (EAP). Теперь вы можете искать и находить нужный код с помощью строки поиска:
Читать полностью »
Мартовские релизы официальных расширений Yii 2.0
2016-03-18 в 22:21, admin, рубрики: apidoc, Bootstrap, codeception, debug, elasticsearch, gii, jqueryui, redis, smarty, swiftmailer, yii, yii frameworkКоманда PHP фреймворка Yii выпустила релизы некоторых официальных расширений.
Расширения были отделены от ядра фреймворка довольно давно, но так как времени на каждый релиз уходило достаточно много, выпускались расширения вместе с релизами фреймворка. Теперь, когда процесс релиза автоматизирован и для расширений, выпускать их по мере надобности будет гораздо проще.
В этот раз вышли обновления для:
- Генератора документации API (yii2-apidoc) 2.0.5, CHANGELOG.
- Bootstrap (yii2-bootstrap) 2.0.6, CHANGELOG.
- Интеграции с Codeception (yii2-codeception) 2.0.5, CHANGELOG.
- Отладочной панели (yii2-debug) 2.0.6, CHANGELOG.
- Elasticsearch (yii2-elasticsearch) 2.0.4, CHANGELOG.
- Генератора кода Gii (yii2-gii) 2.0.5, CHANGELOG.
- jQuery UI (yii2-jui) 2.0.5, CHANGELOG.
- Redis (yii2-redis) 2.0.5, CHANGELOG.
- SwiftMailer (yii2-swiftmailer) 2.0.5, CHANGELOG.
- Smarty (yii2-smarty) 2.0.5, CHANGELOG.
Все эти релизы содержат довольно большое количество как исправлений, так и улучшений. Далее рассмотрим самое интересное.
Читать полностью »
Kibana-мать или Зачем вам вообще нужны логи?
2016-03-09 в 12:04, admin, рубрики: bunyan, elasticsearch, kibana, logstash, lua-nginx-module, node.js, ucoz, uKit, Блог компании uTeam, Веб-разработка, визуализация данных, системное администрированиеВы можете сказать, что “иногда бывает нужно...” Но на самом деле, вы хотите всегда видеть, что у вас в логах, через графический интерфейс. Это позволяет:
- Облегчить жизнь разработчикам и сисадминам, время которых просто жалко и дорого тратить на написание grep-конвейеров и парсеров под каждый отдельный случай.
- Предоставить доступ к информации, содержащейся в логах, умеренно-продвинутым пользователям — менеджерам и техподдержке.
- И видеть динамику и тенденции появления залогированых событий (например, ошибок).
Так что сегодня вновь поговорим о стэке ELK (Elasticsearch+Logstash+Kibana).
Но на этот раз — в условиях json-логов!
Такой use case обещает наполнить вашу жизнь совершенно новыми красками и заставит испытать полную гамму чувств.
Как устроен Relap.io — сервис, который выдает 30 миллиардов рекомендаций в месяц
2016-02-19 в 11:56, admin, рубрики: big data, elasticsearch, Hadoop, nginx, perl, postgresql, Блог компании Surfingbird, Веб-разработка, высокая производительность, машинное обучение, Медиа, рекомендательные системы, СМИ, сми в интернетеМы давно ничего не писали в наш блог и возвращаемся с рассказом о нашем новом проекте: Relap.io (relevant pages).
Мы запустили рекомендательный B2B-сервис Relap.io полтора года назад. Он облегчает жизнь редакции и читателям СМИ. В будние дни Relap.io обслуживает 15 млн уников и выдаёт 30 миллиардов рекомендаций в месяц.
Сейчас Relap.io крупнейшая рекомендательная платформа в Европе и Азии.
Собственный поисковик по раздачам The Pirate Bay
2016-01-18 в 8:16, admin, рубрики: AngularJS, elasticsearch, Go, Peer-to-Peer, The Pirate Bay, torrent-search, поиск, торрентыВ последнее время на хабре стало популярно делать собственные поисковики по RuTracker. Мне это показалось прекрасным поводом для того, чтобы отойти от скучной enterprise разработки и попробовать что-нибудь новое.
Итак, задача: реализовать на локалхосте поисковик по базе The Pirate Bay и попутно попробовать, что же такое frontend разработка и с чем её едят. Задача осложняется тем, что TPB не публикует своих дампов, в отличие от RuTracker, и для получения дампов требуется распарсить их сайт. В результате гугления и осмысления задачи я решил в качестве поисковика использовать Elasticsearch, для которого написать client-side only фронтенд на AngularJS. Для получения данных я решил написать собственный парсер сайта TPB и отдельный загружатель дампа в индекс, оба на Go. Пикантность выбору придавал тот факт, что ни к Elasticsearch, ни к AngularJS я до этого ни разу не прикасался и именно их опробывание было моей настоящей целью.
Читать полностью »
Централизованый сбор Windows event логов, без установки агента, с последующей визуазизацией средствами ELK
2015-04-16 в 7:45, admin, рубрики: elasticsearch, kibana, logs, logstash, powershell, системное администрированиеЗадача по централизованой обработке логов достаточно просто формулируется и возникает, когда требуется отслеживать работу большого количества серверов. Думаю, не стоит упоминать о том, что из логов можно получать массу информации о жизнедеятельности и самочувствии систем. О том, что писать и читать логи столь же важно как и уметь писать программы.
Соответственно для реализации такой системы перед администратором ставятся задачи: во-первых, каким образом эти логи собирать, во-вторых, каким образом с ними удобно и централизованно работать. Благодаря достаточно развитой связке ELK (Elasticsearch + Logstash + Kibana), уже не раз описанной на Хабре, у администратора имеются инструменты для удобного поиска и отображения всей присутствующей в логах информации. Поэтому ответ на вторую задачу имеется изначально, и остается лишь решить задачу по сбору логов.
Так как в моем случае требованием к системе было отсутствие клиента на серверах, и то, что логи требовалось вытаскивать с Windows-серверов, то в качестве инструмента сбора был выбран родной для Windows — powershell.
Исходя из этого была составлена следующая модель сбора и отображения информации из логов: логи удаленно собираются с серверов powershell-скриптом, после чего складываются в виде файлов на хранилище, далее средствами ELK (Elasticsearch + Logstash + Kibana) происходит их обработка и отображение.
Пример работы всей связки представлен на изображении:
Пишем поисковый плагин для Elasticsearch
2015-03-04 в 8:53, admin, рубрики: elasticsearch, java, nosql, Поисковые машины и технологии, ПрограммированиеElaticsearch — популярный поисковый сервер и NoSQL база данных. Одной из интересных его особенностей является поддержка плагинов, которые могут расширить встроенный функционал и добавить немного бизнес-логики на уровень поиска. В этой статье я хочу рассказать о том, как написать такой плагин и тесты к нему.Читать полностью »
Обработка логов с учётом предыдущих сообщений в logstash-elasticsearch
2015-02-25 в 10:24, admin, рубрики: elasticsearch, linux kernel, logstash, lucene, Блог компании Webzilla, ит-инфраструктура, Серверное администрирование, системное администрированиеПро отлов ядерных MCE (machine check error) и прочей гадости с помощью netconsole я писал недавно. Крайне полезная вещь. Одна проблема: throttling на CPU из-за локального перегрева (длительной нагрузки) фиксируется как MCE. Случается бэкап — и админам приходит страшное сообщение об MCE, которое на практике означает «чуть-чуть перегрелось» и точно не требует внимания к себе в 3 часа ночи.
Смехотворность проблемы ещё тем, что Linux фиксирует MCE после того, как throttling закончился. То есть режим 'normal', но вместо этого оно превращается MCE. Выглядит это так:
CPU0: Core temperature above threshold, cpu clock throttled (total events = 40997) CPU4: Core temperature above threshold, cpu clock throttled (total events = 40997) CPU4: Core temperature/speed normal CPU0: Core temperature/speed normal mce: [Hardware Error]: Machine check events logged
При этом мы точно хотим реагировать на нормальные MCE. Что делать?
В рамках logstash обработка сообщений предполагается stateless. Видишь сообщение — реагируешь. Внедрять же ради одного типа сообщений более сложную систему — оверкилл.
Казалось бы, есть фильтр (не путать с output) elasticsearch, который позволяет делать запросы. К сожалению, он не умеет делать 'if'ы, то есть remove_tag и add_tag будут отрабатывать вне зависимости от того, удался поиск или нет.
Грустно.
Читать полностью »
Централизованные логи для приложений с помощью связки heka+elasticsearch+kibana
2015-02-17 в 9:00, admin, рубрики: centralized logging, elasticsearch, Go, golang, java, python, ит-инфраструктура, метки: centralized loggingВ статье описана настройка центрального логирования для разных типов приложений (Python, Java (java.util.logging), Go, bash) с помощью довольно нового проекта Heka.
Heka разрабатывается в Mozilla и написана на Go. Именно поэтому я использую его вместо logstash, который имеет сходные возможности.
Читать полностью »