Проброс событий в ClickHouse с использованием Vector
От устройства снаружи ИС на фронтальные балансировщики приходят сообщения в локейшн
/<device_location>/status
Файл журнала
/var/log/<device_access_log_file_path>.status.access.log
разбирается с помощью vector, пересылающий события на внутренний балансировщик. Между фронтальными и внутренними балансировщиками есть сетевая связность по порту TCP
<port>
Конфиг vector на фронтальных балансировщиках: Показать
sources: device-status: type: "file" max_line_bytes: 1638400 include: - /var/log/<device_access_log_file_path>.status.access.log transforms: device-status_filter: type: "filter" inputs: - device-status condition: .message != "" device-status_transform: type: "remap" inputs: - device-status_filter source: | .message = parse_jsonI(.message) .message.traffic_source = .host . = .message sinks: sink_clickhouse: type: "clickhouse" inputs: - device-status_transform endpoint: "http://<inner_BGP_IP>:<port>" format: "json_as_string" healthcheck: enabled: false auth: strategy: "basic" user: "<clickhouse_DB_user>" password: "<clickhouse_DB_password>" database: "<clickhouse_DB>" table: "<clickhouse_table>"
Конфиг внутреннего балансировщика, пробрасывающего события в clickhouse: Показать
stream { include /etc/<path_to_balancer_config>/log-format-s.conf; upstream clickhouse8123 { server <clickhouse_BGP_IP>:8123; server <clickhouse_node1_IP>:8123 backup; server <clickhouse_node2_IP>:8123 backup; } server { listen <port>; proxy_pass clickhouse8123; access_log /var/log/<access_log_file_path> main_json_mini_s; error_log /var/log/<error_log_file_path>; } }
Команды clickhouse для создания БД, таблиц и представлений: Показать
# Создание БД CREATE DATABASE vector ON CLUSTER <cluster_name>; DROP TABLE IF EXISTS vector.device_status_logs ON CLUSTER <cluster_name>; # Создание таблицы CREATE TABLE vector.device_status_logs ON CLUSTER <cluster_name> ( 'message' String ) ENGINE = ReplicatedReplacingMergeTree('/сlickhouse/{cluster}/tables/validator_status_logs','{replica}') ORDER BY tuple(); DROP VIEW IF EXISTS vector.device_status_logs_view ON CLUSTER <cluster_name>; # Создание представления CREATE MATERIALIZED VIEW vector.device_status_logs_view ON CLUSTER <cluster_name> ( 'time_stamp' DateTime, 'req' String, 'req_body' String ) ENGINE = ReplicatedReplacingMergeTree('/clickhouse/{cluster}/tables/device_status_logs_view','{replica}') ORDER BY time_stamp SETTINGS index_granularity = 8192 AS SELECT parseDateTimeBestEffortOrNull(JSONExtractString(message, 'timestamp')) AS time_stamp, simpleJSONExtractRaw(message, 'req') AS req, simpleJSONExtractRaw(message, 'req_body') AS req_body FROM ( SELECT message FROM vector.device_status_logs );

Хаки и трюки
Виртуалки
Сисьадминство
BASH-скрипты
Парусные суда
Праздники
Моё чтиво
Игра KSP
В продолжение
Четвёртая часть о «доводке напильником» Эгеи.

блога,
RSS-ридера и
Метод заключается в редактировании опций загрузчика GRUB, чтобы установить пароль на их изменение при загрузке системы. Настройка делается в текстовых конфигурационных файлах GRUB, и при физическом доступе к компьютеру с возможностью загрузки с LIVE-дистрибутива можно обойти и эту защиту. При физическом доступе всегда остаётся вариант вынуть жёсткий диск и просмотреть его содержимое в другой ОСи. То есть настоящую защиту данных обеспечивает только их шифрование или шифрование всего диска, защита в виде пароля на загрузку не является надёжной!


В винде VirtualBox при запуске виртуального хоста и установленном в системе КриптоПРО выпадает в «синий экран смерти». При чём отказаться от использования КриптоПРО я не могу, пришлось запускать VirtualBox’овые виртаулки в фоновом режиме с интерфейсом. Но это не всегда удобно, можно случайно забыться и получить BSOD.
Часто для моих «изысканий» нужно установить графическую подсистему и рабочую среду на BSD-подобную ОСь. Обычно выбираю окружение Xfce как лёгкое, доступное и универсальное. Минутка рекламы:
FreeBSD 11.4:
NetBSD 7.1:
QEMU виртуалки с образа диска (в основном IMG) возникает ошибка Kernel panic — not syncing: Attempted to kill init!: Показать
У меня есть старая железка с
DebWrt 2.0 на борту, вот такая:
Шindoшs), захотел сделать для файлов изображений контекстное меню «Редактировать в GIMP». Для этого создал
reg-файл с таким содержимым (путь к бинарнику редактора нужно исправить на актуальный):
Недавно возникла необходимость в том, чтобы рулить виндовым сервером в домене удалённо прямо из консоли Linux-сервера. Гугляж выдал варианты типа xfreerdp, ssh-сервера для Windows, rdesktop’а, psexec’а и winexe. Мне захотелось попробовать прикрутить winexe.
Debian 10 ’Buster’. Готового пакета нет, поэтому по мануалу скачал с 