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 detail and API reference are in the document.

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.1.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

openvpn_status-0.1.1-py2.py3-none-any.whl (9.1 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for openvpn-status-0.1.1.tar.gz
Algorithm Hash digest
SHA256 83b65778531cd66e22d38af757dbcaeed8d234f80f7d514fba1ff0a122ec6051
MD5 b00ce9448fe1cc049b9af2fd8c084cbf
BLAKE2b-256 9da0622d440442392781fe8c9e7035958b603604e21ef1fc41107568d16ace92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvpn_status-0.1.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c4669abb879e8b46f97a871a54346f1bb6474d109fd4da1bda58c40094036c75
MD5 1dab544f88480b05d76a4853112d4212
BLAKE2b-256 02e36d38065af69a5056d2f06071557958e57453e78de85bdf71b24df47cff56

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