Мне удалось «починить» это. Если кто-то ещё пользуется LogZilla, вот правило перезаписи, которое изменит имя хоста на что-то более адекватное. Это правило выделит часть Device ID (последние 6 октетов) из входящего MAC-адреса и присвоит имя хосту: unifi-ap-something. Конечно, это не поможет пропинговать устройство из меню IP в LogZilla, но хотя бы не выглядит как мусор.
Вот само правило (кстати, я добавил несколько пользовательских тегов для отслеживания клиентов и так далее):
root@syslog [rules.d]: # cat 100-ubiquiti.json
{
"rewrite_rules": [
{
"comment": [
"Исправление убогих имён хостов unifi",
"К сожалению, это не поможет, если хотите пропинговать хост",
"Потому что уникальность достигается только за счёт Device ID из MAC",
"Кто-нибудь должен убедить Ubiquiti исправить заголовок syslog"
],
"match": {
"field": "host",
"op": "=~",
"value": "\\(.([^,]+),([[:alnum:]]{6}([[:alnum:]]{6})),v(\\d+\\.\\d+\\.\\d+\\.\\d+).+\\)"
},
"tag": {
"ut_ubiquiti_ap_type": "$1",
"ut_ubiquiti_ap_mac_oui": "$2",
"ut_ubiquiti_ap_mac_did": "$3",
"ut_ubiquiti_ap_version": "$4",
"ut_ubiquiti_ap_fullmac": "$2$3"
},
"update": {
"host": "unifi-ap-$3"
}
},
{
"comment": "Выделение событий Leave/Join",
"match": {
"field": "message",
"op": "=~",
"value": ".+UBNT-STA-(\\S+) eth\\d+.\\d+\\(([^\\)]+)\\)"
},
"tag": {
"ut_ubiquiti_client_leave_joins": "$1",
"ut_ubiquiti_client_mac": "$2",
"ut_ubiquiti_client_leave_join_mac": "$1->$2"
}
}
]
}
Извините, что JSON в вставке выглядит не очень — он был отформатирован правильно, прежде чем я скопировал сюда, но, видимо, теги <pre> работают иначе. 🙁
Вот конечный результат: