как рассчитать время жизни IP-адреса? - PullRequest
0 голосов
/ 22 ноября 2018

Теперь я модифицирую оболочку crontab, она запускается каждые 10 минут, изменяется только ip, она записывает в influenxd, база данных выглядит следующим образом:

Могу ли я рассчитать время отсутствия данных NULL?


Я записываю WAN ip через crontab, вот данные в influenxdb, а ip address является переменной.

Как я могу рассчитать время жизни каждого IP-адреса?

> select * from exec_wanip
name: exec_wanip
time                host    value
----                ----    -----
1542856250000000000 monitor 118.114.187.208
1542856850000000000 monitor 118.114.187.208
1542857450000000000 monitor 118.114.187.208
1542858050000000000 monitor 118.114.187.208
1542858650000000000 monitor 118.114.187.208
1542859250000000000 monitor 118.114.187.208
1542859850000000000 monitor 118.114.187.208
1542860450000000000 monitor 118.114.187.208
1542861050000000000 monitor 118.114.187.208
1542861650000000000 monitor 118.114.187.208
1542862250000000000 monitor 118.114.187.208
1542862850000000000 monitor 118.114.187.208
1542863450000000000 monitor 118.114.187.208
1542864050000000000 monitor 118.114.187.208
1542864650000000000 monitor 118.114.187.208
1542865250000000000 monitor 118.114.187.208

1 Ответ

0 голосов
/ 23 ноября 2018

Ваш измененный скрипт все еще не устанавливает ip в качестве тега.
И я предполагаю, что вы на самом деле храните пустые строки в качестве значения, а не NULL.Запрос для этих данных:

SELECT 600 * count (значение) AS Lifetime_seconds FROM exec_wanip Значение WHERE <> ''

Использование фильтрации по значениям в предложении WHERE нехорошо для производительности InfluxDB в целом.Я бы порекомендовал изменить скрипт cron, чтобы поместить данные с такими строками протокола линии в вашу базу данных:

exec_wanip, host = monitor, ip = 118.114.187.208 value = 118.114.187.208 exec_wanip, host =монитор, IP = 118.114.187.199 значение = 118.114.187.199 ...

с использованием curl POST или cli INSERT эквивалент.

curl -XPOST "http://localhost:8086/write?db=mydb" - двоичный файл данных 'exec_wanip, хост = монитор, ip = 118.114.187.208 значение = 118.114.187.208'

curl -XPOST "http://localhost:8086/write?db=mydb" - двоичный файл данных 'exec_wanip, host = monitor, ip = 118.114.187.199 value = 118.114.187.199 '

После того, как это будет сделано, вы сможете рассчитать время жизни ip с помощью запроса:

SELECT 600 * count (значение) AS Lifetime_seconds FROM exec_wanip GROUP BY ip

Добавить предложение WHERE для запроса с выбором диапазона времени по мере необходимости.Примечание: в качестве значения здесь может использоваться что угодно, не обязательно IP-адрес, например, «вверх» / «вниз» и т. Д.

...