Cacti: пропадают графики при рестарте tun/tap

Автор | 02.12.2014

Есть мониторилка Cacti, которая снимает показания с интерфейсов на сервере. У сервера подняты vpn тунели tun0 и tap0.
Когда происходит какой то обрыв OpenVPN перезапускает интерфейс (reconnect) и жизнь продолжается, но в этот момент cacti перестает отрисовывать график

Пропажа графика cacti

Пропажа графика cacti


Если глянуть в Data Query Debug Information

+ Located input field 'ifName' [walk]
+ Executing SNMP walk for data @ '.1.3.6.1.2.1.31.1.1.1.1'
+ Found item [ifName='lo'] index: 1 [from value]
+ Found item [ifName='eth0'] index: 2 [from value]
+ Found item [ifName='tunl0'] index: 4 [from value]
+ Found item [ifName='tap1'] index: 85 [from value]
+ Found item [ifName='tap0'] index: 86 [from value]
+ Found item [ifName='tun0'] index: 136 [from value]

то можно заметить, что очень большие значения индексов.
Как привели пример тут , значение индекса инкрементируется не зависимо от имени интерфейса

From the Linux kernel (net/core/dev.c):

static int dev_new_index(struct net *net)
{
    static int ifindex;
    for (;;) {
        if (++ifindex <= 0)
            ifindex = 1;
        if (!__dev_get_by_index(net, ifindex))
            return ifindex;
    }
}

Так что, побороть увеличение индекса можно патчем ядра 🙂
Я не готов вносить правки в ядро ради пары графиков... значит будем ковырять cacti.
Как оказалось, если задавать для мониторинга интерфейс, то какти смотрит на индекс, а если задавать IP, то индекс игнорируется.
Значит можно малой кровью отделаться.
Заходим в Data Sources

data sources

data sources


Выбираем наш интерфейс
Get SNMP

Get SNMP


в Custom Data есть такое
Custom Data All

Custom Data All


Меняем на:
ifIP

ifIP


Ждем несколько минут и тестируем )
У меня заработало.

Залишити відповідь