Udplogbeat — это специальное приложение для битов, позволяющее разработчикам регистрировать события для индексации в Elasticsearch. Записи журнала отправляются в локальный сокет UDP, а затем отправляются через выбранный выход. Предполагаемая цель этого инструмента — позволить любому приложению легко регистрировать сообщения локально, без записи на диск и использовать преимущества различных встроенных выходов и функций платформы Beats.
Убедитесь, что эта папка находится по следующему адресу: ${GOPATH}/github.com/hartfordfive
Этот бит теперь заменяется протологбитом. Хотя этот бит должен работать нормально, вместо него рекомендуется использовать его преемник, поскольку он имеет некоторые улучшения, а также возможность выбора между TCP или UDP. Изменения в этот проект больше вноситься не будут.
udplogbeat.port
: UDP-порт, который будет прослушивать процесс (по умолчанию = 5000).udplogbeat.max_message_size
: Максимально допустимый размер сообщения (по умолчанию = 1024).udplogbeat.enable_syslog_format_only
: логическое значение, указывающее, следует ли принимать только сообщения системного журнала. (по умолчанию = ложь)udplogbeat.enable_json_validation
: логическое значение, указывающее, следует ли применять проверку схемы JSON для сообщений формата json
(по умолчанию = false).udplogbeat.publish_failed_json_invalid
: логическое значение, указывающее, следует ли отправлять объекты JSON сериализованными в случае неудачной проверки. Это добавит тег _udplogbeat_jspf
. (по умолчанию = ложь)udplogbeat.json_document_type_schema
: хэш, состоящий из типа Elasticsearch в качестве ключа и абсолютного пути к файлу локальной схемы в качестве значения.Пример конфигурации для замены системного журнала
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
Пример конфигурации, которая применяет схемы для событий формата JSON
udplogbeat:
port: 5001
max_message_size: 2048
enable_json_validation: true
json_document_type_schema:
email_contact: "/etc/udplogbeat/app1_schema.json"
stock_item: "/etc/udplogbeat/app2_schema.json"
Схемы JSON можно автоматически генерировать из объекта здесь: http://jsonschema.net/. Вы также можете просмотреть включенные примеры схем app1_schema.json
и app2_schema.json
в качестве примеров.
Если вы собираетесь использовать это в качестве замены ведения журнала с помощью Rsyslog, этот метод не сохранит ваши данные в файл на диске.
Если udplogbeat по какой-либо причине не работает, сообщения, отправленные на настроенный порт UDP, никогда не будут обработаны или отправлены в ваш кластер ELK. Если вам нужна 100% гарантия, что каждое сообщение будет доставлено хотя бы один раз, возможно, это не лучшее решение для вас.
Если для вас приемлема некоторая потенциальная потеря событий журнала, это может быть для вас разумным решением.
Чтобы приложение udplogbeat могло принимать события, когда они не находятся в режиме только формата системного журнала ( enable_syslog_format_only: false ), они должны быть структурированы в следующем формате:
[ФОРМАТ]:[ES_TYPE]:[EVENT_DATA]
json
, либо plain
. Записи в кодировке JSON будут автоматически анализироваться.Пример:
Просто закодированное событие:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
Событие в кодировке JSON:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
Обратите внимание, что текущая дата/время автоматически добавляется в каждую запись журнала.
В каталоге sample_clients/
приведены примеры клиентов на разных языках.
Чтобы начать работу с Udplogbeat, а также установить зависимости, выполните следующую команду:
make setup
Он создаст чистую историю git для каждого основного шага. Обратите внимание, что вы всегда можете переписать историю, если хотите, прежде чем вносить изменения.
Чтобы добавить Udplogbeat в репозиторий git, выполните следующие команды:
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
Для дальнейшего развития ознакомьтесь с руководством разработчика Beat.
Чтобы собрать двоичный файл для Udplogbeat, выполните команду ниже. Это создаст в том же каталоге двоичный файл с именем udplogbeat.
make
Или собрать заархивированные двоичные файлы для OSX, Windows и Linux:
./build_os_binaries.sh "[НОМЕР_ВЕРСИИ]"
Они будут помещены в каталог bin/
.
Чтобы запустить Udplogbeat с включенным выводом отладки, выполните:
./udplogbeat -c udplogbeat.yml -e -d "*"
Чтобы протестировать Udplogbeat, выполните следующую команду:
make testsuite
альтернативно:
make unit-tests
make system-tests
make integration-tests
make coverage-report
О покрытии тестами сообщается в папке ./build/coverage/
Каждый бит имеет шаблон для сопоставления в elasticsearch и документацию для полей, которая автоматически генерируется на основе etc/fields.yml
. Для создания файлов etc/udplogbeat.template.json и etc/udplogbeat.asciidoc.
make update
Чтобы очистить исходный код Udplogbeat, выполните следующие команды:
make fmt
make simplify
Чтобы очистить каталог сборки и сгенерированные артефакты, запустите:
make clean
Чтобы клонировать Udplogbeat из репозитория git, выполните следующие команды:
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
Для дальнейшего развития ознакомьтесь с руководством разработчика Beat.
Фреймворки битов предоставляют инструменты для кросс-компиляции и упаковки битов для разных платформ. Для этого требуется докер и поставщики, как описано выше. Чтобы собрать пакеты вашего бита, выполните следующую команду:
make package
Это позволит получить и создать все изображения, необходимые для процесса сборки. Процесс завершения отверстия может занять несколько минут.
Ален Лефевр <hartfordfive 'at' gmail.com>
Охраняется лицензией Apache, версия 2.0. Авторские права (c), 2016 г., Ален Лефевр.