openvpn cannot show data in ovpn_status_log

Environment

Ubuntu 21.04
netdata v1.32.1
OpenVPN 2.5.1 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 27 2021
library versions: OpenSSL 1.1.1j 16 Feb 2021, LZO 2.10

Problem/Question

After I enable openvpn in python.d.conf, users and traffic still in 0

python.d.conf
ovpn_status_log: yes

python.d/ovpn_status_log.conf

default:
  update_every: 10
  log_path: '/var/log/openvpn/openvpn-status.log'

Error log show check OK.
grep ovpn /var/log/netdata/error.log

2022-03-01 11:41:52: python.d INFO: plugin[main] : [ovpn_status_log] built 1 job(s) configs
2022-03-01 11:41:52: python.d INFO: plugin[main] : ovpn_status_log[JOBS] : check success
2022-03-01 12:13:49: python.d INFO: plugin[main] : [ovpn_status_log] built 1 job(s) configs
2022-03-01 12:13:49: python.d INFO: plugin[main] : ovpn_status_log[default] : check success

The log is changed group and permission
ls -l /var/log/openvpn/openvpn-status.log
-rw-r----- 1 root netdata 3038 Mar 1 12:16 /var/log/openvpn/openvpn-status.log

cat /var/log/openvpn/openvpn-status.log

TITLE,OpenVPN 2.5.1 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Apr 27 2021
TIME,2022-03-01 12:17:41,1646108261
HEADER,CLIENT_LIST,Common Name,Real Address,Virtual Address,Virtual IPv6 Address,Bytes Received,Bytes Sent,Connected Since,Connected Since (time_t),Username,Client ID,Peer ID,Data Channel Cipher
CLIENT_LIST,a,x.x.x.x:63836,10.8.0.34,,5990632,15911941,2022-03-01 08:24:22,1646094262,UNDEF,6,0,AES-256-GCM
CLIENT_LIST,a,x.x.x.x:51535,10.8.0.38,,7133752,48476324,2022-03-01 09:06:15,1646096775,UNDEF,14,0,AES-256-GCM
HEADER,ROUTING_TABLE,Virtual Address,Common Name,Real Address,Last Ref,Last Ref (time_t)
ROUTING_TABLE,10.8.0.34,a,x.x.x.x:63836,2022-03-01 12:17:35,1646108255
ROUTING_TABLE,10.8.0.38,a,x.x.x.x.55:51535,2022-03-01 12:17:37,1646108257
GLOBAL_STATS,Max bcast/mcast queue length,12
END

I modified the IP and CN manually.

What I expected to happen

Is the netdata didn’t support it anymore? Because I use the config of go.d is OK, but I don’t want to use the management interface, it write the log frequently when netdata access.

I found that the python plugins for opvn_status_log support status-version 1 only.
However, the status-version 2 is default in newly install openvpn.

Does it possible to support status-version 2 and 3 (in openvpn document, 2 and 3 is same except the delimiter, 2 is comma delimiter, 3 is tab delimiter).

Hello @tbchris, I would suggest you to stick to the go.d collector. Nice observation, I think that @ilyam8 could verify this

I found that the python plugins for opvn_status_log support status-version 1 only.
However, the status-version 2 is default in newly install openvpn.

Does it possible to support status-version 2 and 3 (in openvpn document, 2 and 3 is same except the delimiter, 2 is comma delimiter, 3 is tab delimiter).

info

Hi @Tasos_Katsoulas , the go.d collector cannot support the management interface which has password.

Moreover, both of python.d and go.d will not show which user (CN or user name) is connected, seem netdata is target on resource using only, it is great if both connectors can show the user name which connected.

@tbchris I can distinguish two separate features requests from your observations.

the go.d collector cannot monitor management interfaces which with password.
and
openvpn will not show which user (CN or user name) is connected

I would suggest you, create a new “discussion/idea” in our GitHub discussions (Discussions · netdata/netdata · GitHub) and discuss with the community what you see in the current collector and what you would like to see.

Hi, guys. go.d version can show per user traffic/connection time charts, but it is disabled by default.

cannot support the management interface which has password.

I checked the source code and you are right. I suggest to create a feature request.

Management-interface docs:

Example 2:

PASSWORD:Need ‘Auth’ username/password

OpenVPN needs a --auth-user-pass password. The management
client should respond:

username “Auth” foo
password “Auth” bar

I found that the python plugins for opvn_status_log support status-version 1 only.

Likely you are right, the collector was written a long time ago and I think it has been 0 feature requests since then.

Does it possible to support status-version 2 and 3 (in openvpn document, 2 and 3 is same except the delimiter, 2 is comma delimiter, 3 is tab delimiter).

I think yes. My suggestion is the same - consider creating a feature request. We will likely just rewrite the collector in go and remove the python version.