Skip to main content

Parse OpenVPN status logs in Python

Project description

openvpn-status is a Python library. It parses OpenVPN status log and turns it into Python data structure for you.

It is compatible with CPython 2.7, 3.3, 3.4 and PyPy.

Installation

pip install openvpn-status

Don’t forget to put it in setup.py / requirements.txt.

Getting Started

You could configure your OpenVPN server to log for client status. In usual it could be achieved by adding status /path/to/openvpn-status.log line to /etc/openvpn/openvpn.conf. For example:

proto udp
port 1194
dev tun0
status /var/run/openvpn-status.log

Once OpenVPN server running, the log file will be created and written. It looks like:

OpenVPN CLIENT LIST
Updated,Thu Jun 18 08:12:15 2015
Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
foo@example.com,10.10.10.10:49502,334948,1973012,Thu Jun 18 04:23:03 2015
bar@example.com,10.10.10.10:64169,1817262,28981224,Thu Jun 18 04:08:39 2015
ROUTING TABLE
Virtual Address,Common Name,Real Address,Last Ref
192.168.255.134,foo@example.com,10.10.10.10:49502,Thu Jun 18 08:12:09 2015
192.168.255.126,bar@example.com,10.10.10.10:64169,Thu Jun 18 08:11:55 2015
GLOBAL STATS
Max bcast/mcast queue length,0
END

Now we could parse log file with this library:

from openvpn_status import parse_status

with open('/var/run/openvpn-status.log') as logfile:
    status = parse_status(logfile.read())

print(status.updated_at)  # datetime.datetime(2015, 6, 18, 8, 12, 15)

foo_client = status.client_list['foo@example.com']
print(foo_client.bytes_received)  # 334.9 kB
print(foo_client.bytes_sent)  # 2.0 MB

More details are in the API reference.

Contributing

If you want to report bugs or request features, please feel free to open issues on GitHub.

Of course, pull requests are always welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openvpn-status-0.2.0.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

openvpn_status-0.2.0-py2.py3-none-any.whl (9.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file openvpn-status-0.2.0.tar.gz.

File metadata

File hashes

Hashes for openvpn-status-0.2.0.tar.gz
Algorithm Hash digest
SHA256 41fbf73730b85be3e495c407e22df2c312193be1dad1b3e49070e63b865f7289
MD5 5e498d9aae8ef0b466675553f4ce7efb
BLAKE2b-256 a9a58731b701584fd6dfd704f577359f2dcd0be369a613723133bd7d0e47235c

See more details on using hashes here.

File details

Details for the file openvpn_status-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for openvpn_status-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 96060694779aa04188b9be8e3ac33597f9e803f9b70a9453d71006ddbde9ccc6
MD5 22ccdac50862ef451f946489f012cd26
BLAKE2b-256 d6eaaf9ed6686461f387c535588c3375cdc397eec1a615534b0b407ca0ee7bfe

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page