
Скрипт парсер базы ClickHouse и формирование отчета в PDF
Есть приложение которое занимается аналитикой посещений, пишет данные в базу ClickHouse
Ключевые поля для работы:
packetDateTime, srcIP, dstIP, sourcePort, destinationPort, protocol.
Для отображаения графиков используется Grafana
Вот пример запроса который делает Grafana в базу ClickHouse для отображения информации которая на скриншоте:
"SELECT packetDateTime, IPv4NumToString(srcIp) as srcIP, IPv4NumToString(dstIp) as dstIP, sourcePort, destinationPort, numberOfPackets as packets, length, srcAsn, dstAsn, transform(protocol, [17, 6, 1], ['udp', 'tcp', 'icmp'], 'unknown') as protocol, IPv4NumToString(agentIpAddress) as agent,inputInterface as input, outputInterface as output, sampleRatio, arrayMap(x -> transform(x, [1, 2, 4, 8, 16, 32, 64, 128, 256, 512], ['fin', 'syn', 'rst', 'psh', 'ack', 'urg', 'ecn', 'cwr', 'nonce', 'reserved'], 'unknown'), bitmaskToArray(flags)) as TcpFlags FROM fastnetmon.traffic WHERE packetDate BETWEEN toDate(1546300799) AND toDate(1548979200) AND packetDateTime BETWEEN toDateTime(1546300799) AND toDateTime(1548979200) AND (srcIp = IPv4StringToNum('8.8.8.8') OR dstIp = IPv4StringToNum('8.8.8.8'))",
Приложение может запускать bash и JSON скрипты в Perl или Python.
Приложение передает в скрипт IP (dstIP) адрес в момент начала всплеска и окончания массовых обращений.
Задача:
Построение графика в момент сработки тригера с учетом времени 5 минут до начала и 5 минут после окончания.
Построение графика в форме кольца ASN с которых сработа тригер.
Постоение графика через минуту после начала сработки в котором будет срез 100 IP адресов с которых идут обращения.
После окончания массовых обращений сделать выборку топ 20 самых активных IP адресов с которых были обращения.
Все данные которые получены должны быть упакованы в PDF в формате отчета.
Полученный отчёт отправить через email, Telegram, Viber
За определенным dstIP необходимо закрепить одного человека или группы получателей отчета.
Заявки фрилансеров
