1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-OKLog

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Архив логов OK Log

Я надеялся найти возможность продолжить развитие OK Log после его создания. К сожалению, несмотря на усилия, такая возможность не представилась. Пожалуйста, обратитесь к OK Log за вдохновением, и рассмотрите использование (поддерживаемых!) проектов, вышедших из него, ulid и run.


OK Log

OK Log представляет собой систему управления распределёнными и координируемыми логами для больших кластеров. Это решение для внутренней установки, которое предназначено быть своего рода строительным блоком: простым в понимании, управлении и расширении.

Подходит ли OK Log мне?

Вы можете рассмотреть использование OK Log если...- Вы просматриваете свои логи вручную, находите это неприятным и хотите агрегировать их без лишних хлопот.

  • Вы используете облачное решение, такое как Loggly, и хотите переместить логи на внутреннюю установку.
  • Вы используете Elasticsearch, но считаете его ненадёжным, трудным в использовании или не используете многие его возможности.
  • Вы используете кастомный пайплайн логов с использованием, например, Fluentd или Logstash, и сталкиваетесь с проблемами производительности.
  • Вы просто хотите, чтобы можно было выполнять поиск по логам — почему всё это так сложно?## Установка OK Log

OK Log распространяется в виде единого статически-связанного бинарника для различных целевых архитектур. Скачайте последнюю версию с страницы релизов.

Быстрый старт

$ oklog ingeststore -store.segment-replication-factor 1
$ ./myservice | oklog forward localhost
$ oklog query -from 5m -q Hello
2017-01-01 12:34:56 Hello world!

Развертывание

Малые установки

Если у вас небольшое количество логов, вы можете развернуть кластер из одинаковых узлов ingeststore. По умолчанию коэффициент репликации равен 2, поэтому вам потребуется как минимум два узла. Используйте флаг -cluster для указания маршрутизуемого IP-адреса или имени хоста для каждого узла, чтобы он мог объявить себя. Укажите каждый узел с помощью флага -peer о другом узле.

foo$ oklog ingeststore -cluster foo -peer foo -peer bar -peer baz
bar$ oklog ingeststore -cluster bar -peer foo -peer bar -peer baz
baz$ oklog ingeststore -cluster baz -peer foo -peer bar -peer baz

Чтобы расширить кластер, просто добавьте новый узел и сообщите ему о хотя бы одном другом узле через флаг -peer. Опционально вы можете запустить инструмент перераспределения данных (TODO), чтобы перераспределить данные в новую топологию. Чтобы уменьшить размер кластера, просто удалите узлы меньше чем коэффициент репликации, и запустите инструмент восстановления (TODO), чтобы повторно реплицировать потерянные записи.Все конфигурации выполняются через командные строки. Вы можете изменять такие параметры, как период хранения логов (по умолчанию 7 дней), целевой размер файла сегмента (по умолчанию 128 МБ), и максимальное время (возраст) различных этапов системы логирования. Большинство значений по умолчанию должны быть адекватными, но всегда проверяйте их для вашего окружения.### Большие установки

Если у вас большое количество логов, вы можете разделить обязанности по приему и хранению (запросу) данных. Узлы приема выполняют множество последовательных записей и получают выгоду от быстрых жестких дисков и умеренного процессора. Узлы хранения выполняют множество случайных чтений и записей и получают выгоду от больших жестких дисков и большого объема памяти. Оба типа узлов — приема и хранения — присоединяются к одному и тому же кластеру, так что предоставьте им одинаковый набор узлов-соседей.

ingest1$ oklog ingest -cluster 10.1.0.1 -peer ...
ingest2$ oklog ingest -cluster 10.1.0.2 -peer ...

store1$ oklog store -cluster 10.1.9.1 -peer ...
store2$ oklog store -cluster 10.1.9.2 -peer ...
store3$ oklog store -cluster 10.1.9.3 -peer ...

Чтобы увеличить производительность приема данных, добавьте больше узлов приема к кластеру. Чтобы увеличить производительность хранения или запросов, добавьте больше узлов хранения. Также убедитесь, что у вас достаточно узлов хранения, чтобы принимать данные от узлов приема без задержек.

Прямая передача

Прямая передача является основной сетью с некоторыми алгоритмами повторного подключения. Передайте stdout/stderr вашей службы в прямую передачу, настроенную для работы с вашими узлами приема.```sh $ ./myservice | oklog forward ingest1 ingest2


OK Log интегрируется простым образом с runtime такими как Docker и Kubernetes.
Дополнительные детали можно найти на странице [Интеграций](https://github.com/oklog/oklog/wiki/Integrations).## Поиск данных

Поиск выполняется через HTTP GET запрос к `/query` на любом из узлов хранилища.
Система OK Log включает инструмент для поиска данных, чтобы сделать его более удобным для использования.
Одним из хороших способов является использование флага `-stats`, чтобы уточнить ваш запрос.
Когда вы удовлетворены тем, что запрос достаточно ограничен, вы можете отключить флаг `-stats` для получения результатов.

```sh
$ oklog query -from 2h -to 1h -q "myservice.*(WARN|ERROR)" -regex
2016-01-01 10:34:58 [myservice] request_id 187634 -- [WARN] Get /check: HTTP 419 (0B received)
2016-01-01 10:35:02 [myservice] request_id 288211 -- [ERROR] Post /ok: HTTP 500 (0B received)
2016-01-01 10:35:09 [myservice] request_id 291014 -- [WARN] Get /next: HTTP 401 (0B received)
 ...

Чтобы выполнить поиск структурированных логов, объедините базовое выражение фильтрации grep с инструментом типа jq.

$ oklog query -from 1h -q /api/v1/login
{"remote_addr":"10.34.115.3:50032","path":"/api/v1/login","method":"POST","status_code":200}
{"remote_addr":"10.9.101.113:51442","path":"/api/v1/login","method":"POST","status_code":500}
{"remote_addr":"10.9.55.2:55210","path":"/api/v1/login","method":"POST","status_code":200}
{"remote_addr":"10.34.115.1:51610","path":"/api/v1/login","method":"POST","status_code":200}
...

$ oklog query -from 1h -q /api/v1/login | jq '. | select(.status_code == 500)'
{
	"remote_addr": "10.9.55.2:55210",
	"path": "/api/v1/login",
	"method": "POST",
	"status_code": 500
}
...

Интерфейс пользователя

Система OK Log включает базовый интерфейс пользователя для выполнения запросов. Вы можете получить доступ к нему на любом узле хранилища или узле сбора данных, используя публичный порт API (по умолчанию 7650), путь /ui. Например, http://localhost:7650/ui.## Дальнейшее чтение

Интеграции

Несоответствующие образы Docker

Перевод


Иконка OK создана Karthik Srinivas на сайте Noun Project. Разработка поддерживается DigitalOcean.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

OK Log — это распределённая система управления журналами без координации, предназначенная для крупномасштабных кластеров. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-OKLog.git
git@api.gitlife.ru:oschina-mirror/mirrors-OKLog.git
oschina-mirror
mirrors-OKLog
mirrors-OKLog
master