Forum Discussion

danielaart's avatar
5 years ago

Looking for montoring of OpenVPN server

Hi,

Im looking for some prebuilt monitoring capabilities for OpenVPN server via Logicmonitor. What im looking for is connected clients and maybe some other good information. We currently monitoring Our OpenVPN enviroment with Nagions and NRPE deamon but we want to stop using Nagios and have everything monitored via or Logicmonitor tenant.

BR

DA

  • I would start here: https://openvpn.net/community-resources/management-interface/

    There is an example of how to use this (not in an LM-friendly way) at https://kifarunix.com/how-to-monitor-openvpn-connections-using-openvpn-monitor-tool/

    There is also an example (a bit dated) on how to expose data via SNMP here: https://github.com/Phhere/openvpn-snmp

    The problem seems to be a general lack of standard monitoring since OpenVPN runs on so many platforms.  If check_nrpe works, perhaps just punt and use that via an LM script datasource :).

  • Anonymous's avatar
    Anonymous

    The same question I always ask in response to requests like this is: How would you manually obtain this information?

    If it's SNMP, what OIDs? If it's by issuing a command and looking at the output, what's the command? If it's an API call, what's the endpoint? By answering these questions, you solve the most difficult part of building custom monitoring in LM. If it's SNMP and you know the OIDs, you simply build an SNMP DataSource. If it's by issuing a command, you build a Groovy DataSource using Expect to issue the command and parse the output. If it's by an API call, then you build a Groovy script to do the API call and return the output to LM. 

    That said, I assume you already checked the Exchange for existing DataSources. A quick search, yielded nothing for me, but perhaps I'm not searching by the right name. 

    You might be able to fork something like this so that instead of generating HTML it generates the data via JSON, which you could pull via Expect or spin up a little web server to host via HTTP.