Как отследить, спарсить, визуально мониторить подключившихся пользователей по OpenVPN?
В конфиге openvpn есть директива status - в ней можно задать путь к файлу куда openvpn будет складывать текущую информацию по подключенным соединениям. Чем парсить - фиг знает, разбирайте его сами, лог простой.

В директивах log или log-append - указываете общий файл лога, туда льется вся остальная инфа от openvpn. 
Уровень логирования задается с помощью verb.
Привет хабровчане.
Использую у себя такой скрипт на проде:
#!/bin/sh

export INDEXTXT=/etc/openvpn/easyrsa3/easyrsa3/pki/index.txt
export LOGFILE=/var/log/openvpn.log
echo -e "\nOpenVPN users last connection mac/ip list tool\n"
validusers=$(grep -E "V{символ табуляции}" $INDEXTXT|cut -d'=' -f2)
#echo Users last mac/ip addresses:
echo LastLogin Timestamp        /       User    /       mac     /       ip
for usr in ${validusers}
    do
    if [ $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|wc -l) -gt 0 ]
        then
        echo $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -c 1-24)    /       $usr    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d':' -f6-11|cut -c 2-18)    /       $(grep -E "MULTI: Learn:" $LOGFILE|grep "$usr"|tail -1|cut -d'/' -f3|cut -d':' -f1)
    fi
done
Стоит обратить внимание на символ табуляции в команде выборки валидных пользователей.

Принцип работы:
Парсинг файла БД сертификатов openssl - index.txt, выборка валидных пользователей.
Цикл с проходом по списку валидных пользователей, и парсинга лог-файла openvpn.log
Выхлоп скрипта примерно следующий:
