Browse Source

feat(openvpn-server): add Prometheus monitoring, closes #300

Peter Thomassen 5 years ago
parent
commit
cd78ee9161
4 changed files with 35 additions and 1 deletions
  1. 4 0
      docker-compose.dev.yml
  2. 26 0
      docker-compose.yml
  3. 2 1
      openvpn-server/conf/server.conf
  4. 3 0
      prometheus/conf/prometheus.yml

+ 4 - 0
docker-compose.dev.yml

@@ -81,6 +81,10 @@ services:
     logging:
       driver: "json-file"
 
+  openvpn-server_monitor:
+    logging:
+      driver: "json-file"
+
   prometheus:
     logging:
       driver: "json-file"

+ 26 - 0
docker-compose.yml

@@ -292,6 +292,7 @@ services:
     - "1194:1194/udp"
     volumes:
     - ./openvpn-server/secrets:/etc/openvpn/secrets:ro
+    - openvpn-server_logs:/var/log/openvpn
     networks:
       rearreplication:
         ipv4_address: ${DESECSTACK_IPV4_REAR_PREFIX16}.7.2
@@ -301,6 +302,22 @@ services:
         tag: "desec/openvpn-server"
     restart: unless-stopped
 
+  openvpn-server_monitor:
+    image: kumina/openvpn-exporter:v0.2.2
+    init: true
+    depends_on:
+    - openvpn-server
+    volumes:
+    - openvpn-server_logs:/var/log/openvpn:ro
+    networks:
+    - rearmonitoring_openvpn-server
+    command: -openvpn.status_paths /var/log/openvpn/openvpn-status.log
+    logging:
+      driver: "syslog"
+      options:
+        tag: "desec/openvpn-server_monitor"
+    restart: unless-stopped
+
   prometheus:
     image: prom/prometheus:latest
     init: true
@@ -311,6 +328,7 @@ services:
       rearmonitoring_www:
         ipv4_address: ${DESECSTACK_IPV4_REAR_PREFIX16}.8.2
       rearmonitoring_api:
+      rearmonitoring_openvpn-server:
     extra_hosts:
     - prometheus.localhost:${DESECSTACK_IPV4_REAR_PREFIX16}.8.2
     command: [
@@ -334,6 +352,7 @@ volumes:
   dbapi_mysql:
   dblord_mysql:
   dbmaster_mysql:
+  openvpn-server_logs:
   prometheus:
   rabbitmq_data:
   webapp_dist:
@@ -416,3 +435,10 @@ networks:
       config:
       - subnet: ${DESECSTACK_IPV4_REAR_PREFIX16}.8.8/29
         gateway: ${DESECSTACK_IPV4_REAR_PREFIX16}.8.9
+  rearmonitoring_openvpn-server:
+    driver: bridge
+    ipam:
+      driver: default
+      config:
+      - subnet: ${DESECSTACK_IPV4_REAR_PREFIX16}.8.16/29
+        gateway: ${DESECSTACK_IPV4_REAR_PREFIX16}.8.17

+ 2 - 1
openvpn-server/conf/server.conf

@@ -154,7 +154,8 @@ persist-tun
 # Output a short status file showing
 # current connections, truncated
 # and rewritten every minute.
-status /var/log/openvpn/openvpn-status.log
+status /var/log/openvpn/openvpn-status.log 15
+status-version 3
 
 verb 3
 

+ 3 - 0
prometheus/conf/prometheus.yml

@@ -18,3 +18,6 @@ scrape_configs:
   - job_name: 'www'
     static_configs:
       - targets: ['www_monitor:9113']
+  - job_name: 'openvpn-server'
+    static_configs:
+      - targets: ['openvpn-server_monitor:9176']