Я надеялся найти возможность продолжить развитие OK Log после его создания. К сожалению, несмотря на усилия, такая возможность не представилась. Пожалуйста, обратитесь к OK Log за вдохновением, и рассмотрите использование (поддерживаемых!) проектов, вышедших из него, ulid и run.
OK Log представляет собой систему управления распределёнными и координируемыми логами для больших кластеров. Это решение для внутренней установки, которое предназначено быть своего рода строительным блоком: простым в понимании, управлении и расширении.
Вы можете рассмотреть использование 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.## Дальнейшее чтение
Иконка OK создана Karthik Srinivas на сайте Noun Project. Разработка поддерживается DigitalOcean.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )