{"id":350202,"date":"2023-07-13T09:01:47","date_gmt":"2023-07-13T09:01:47","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=350202"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=350202","title":{"rendered":"<span>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 OpenVPN \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Zabbix \u0438 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 Grafana<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/4da\/4b1\/46f\/4da4b146f928243201871dab4e4e4202.jpg\" alt=\"\u0422\u044b \u043f\u043e\u0434 \u043a\u043e\u043b\u043f\u0430\u043a\u043e\u043c.\" title=\"\u0422\u044b \u043f\u043e\u0434 \u043a\u043e\u043b\u043f\u0430\u043a\u043e\u043c.\" width=\"800\" height=\"800\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/4da\/4b1\/46f\/4da4b146f928243201871dab4e4e4202.jpg\" data-blurred=\"true\"\/><\/p>\n<div><figcaption>\u0422\u044b \u043f\u043e\u0434 \u043a\u043e\u043b\u043f\u0430\u043a\u043e\u043c.<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0418\u0433\u043e\u0440\u044c, \u044f Tech Lead \u043a\u043e\u043c\u0430\u043d\u0434\u044b DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/domclick\/articles\/741286\/\">\u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438<\/a> \u043f\u043e \u0446\u0435\u0445\u0443 <a class=\"mention\" href=\"\/users\/evgennet\">@EvgenNet<\/a> \u0445\u043e\u0447\u0443 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0434\u043b\u044f Zabbix \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u043c \u0432 Grafana \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 OpenVPN. \u0412\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0432\u043a\u0443\u0441\u043d\u044f\u0448\u0435\u043a, \u0447\u0430\u0439\u043a\u0443 \u0438 \u043f\u0440\u0438\u0441\u0430\u0436\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h2>\n<p>\u0414\u0430\u043b\u0435\u043a\u043e \u0432 2019 \u0433\u043e\u0434\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u0438 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 <a href=\"https:\/\/github.com\/furlongm\/openvpn-monitor\">https:\/\/github.com\/furlongm\/openvpn-monitor<\/a>, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u0438 \u043a\u0430\u043a\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442. \u041a\u0430\u043a \u0440\u0430\u0437 \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Influx \u0438 \u0432\u0441\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0431\u044b\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c. \u041d\u0435\u0434\u043e\u043b\u0433\u043e \u0434\u0443\u043c\u0430\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 \u0432\u044b\u0432\u043e\u0434 \u043c\u0435\u0442\u0440\u0438\u043a \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Influx \u0434\u043b\u044f Telegraf-\u0430\u0433\u0435\u043d\u0442\u0430 \u0438 \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0434\u043b\u044f Grafana. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0441\u043a\u0440\u0438\u043f\u0442 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u00a0\u2014 \u0432\u0435\u043b\u043a\u043e\u043c \u0432 \u043b\u0438\u0447\u043a\u0443.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u0432\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">.\/openvpn-monitor.py exec,username=user1 local_ip=\"10.20.30.176\",remote_ip=\"192.168.1.223\",bytes_recv=297964i,bytes_sent=2788764i,connected_since=\"2019-02-22 11:44:38\",last_seen=\"ERROR\",total_time=\"0:29:04\" exec,username=user2 local_ip=\"10.20.40.185\",remote_ip=\"192.168.2.142\",bytes_recv=311415i,bytes_sent=2181895i,connected_since=\"2019-02-22 11:48:09\",last_seen=\"ERROR\",total_time=\"0:25:33\" exec,username=user3 local_ip=\"10.20.50.170\",remote_ip=\"192.168.3.248\",bytes_recv=651527i,bytes_sent=11307713i,connected_since=\"2019-02-22 11:16:13\",last_seen=\"ERROR\",total_time=\"0:57:29\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u044f Telegraf-\u0430\u0433\u0435\u043d\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"yaml\">[[inputs.exec]]   interval = \"1m\"   commands = [\"python \/usr\/local\/bin\/openvpn-monitor.py\"]   timeout = \"20m\"   name_suffix = \"_openvpn\"   data_format = \"influx\"   [[outputs.influxdb]]     urls = [\"http:\/\/influx.example.com:8086\"] # required   database = \"openvpn\" # required   username = \"user\"   password = \"pass\"   namepass = [\"exec_openvpn*\"]     retention_policy = \"\"   write_consistency = \"any\"   timeout = \"5s\"     ## Compress each HTTP request payload using GZIP.   content_encoding = \"gzip\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0441\u0451 \u044d\u0442\u043e \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438 \u0440\u0430\u0434\u043e\u0432\u0430\u043b\u043e \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u0442\u044c \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 OpenVPN \u0438 \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 Influx. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0442\u0430\u0449\u0438\u0442\u044c \u0432\u0441\u0451 \u043f\u043e\u0434 Zabbix, \u0430 <a class=\"mention\" href=\"\/users\/evgennet\">@EvgenNet<\/a>\u0434\u043e\u0431\u043b\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h2>\n<p>\u0412\u0441\u0451, \u043e\u0442 \u0447\u0435\u0433\u043e \u043c\u044b \u043f\u043b\u044f\u0448\u0435\u043c\u00a0\u2014 \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043c\u0430\u0441\u0441\u0438\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432).<\/p>\n<blockquote>\n<p>Text data limits depend on the database backend. Before storing text values in the database they get truncated to match the database value type limit.<\/p>\n<\/blockquote>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong>Database<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"center\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"center\">\n<\/td>\n<td>\n<p align=\"center\"><strong>Character<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Log<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Text<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MySQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 bytes<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 bytes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PostgreSQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Oracle<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c PostgreSQL \u0438 \u0443\u043f\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 65 536 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0442\u043e \u0440\u0435\u0448\u0438\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u043f\u043e \u0438\u0445 \u0440\u043e\u043b\u044f\u043c\/\u043f\u0440\u043e\u0444\u0438\u043b\u044f\u043c:<\/p>\n<ul>\n<li>\n<p>\u0410\u0434\u043c\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0438\u0437\u043d\u0435\u0441;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0431\u0438\u043b\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u0442\u044c <code>UserParameter<\/code> \u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/domclick\/articles\/741286\/\">\u0441\u043a\u0440\u0438\u043f\u0442 <\/a>\u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0441 OpenVPN:<\/p>\n<p><strong>userparameter_openvpn.conf<\/strong><\/p>\n<p><code>UserParameter=discovery.openvpn[*], \/usr\/bin\/openvpn-mon.py $1<\/code><\/p>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u0434\u0438\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><code>admin<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>bs<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>dev<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>mobile<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>sec<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432 Zabbix<\/h2>\n<p>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (<code>Items<\/code>) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0440\u043e\u043b\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"center\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"center\"><strong>Key<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\"><strong>Interval<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"center\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn admin users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[admin]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn business users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[bs]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn develop users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[dev]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn mobile users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[mobile]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn security users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[sec]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8c3\/7ee\/5f6\/8c37ee5f69723fd3a96e09440e67d257.png\" alt=\"Items.\" title=\"Items.\" width=\"952\" height=\"167\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8c3\/7ee\/5f6\/8c37ee5f69723fd3a96e09440e67d257.png\"\/><\/p>\n<div><figcaption>Items.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f (<code>Discovery rules<\/code>) \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"center\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"center\"><strong>Key<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn admin users: Discovery admin stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.admin.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn business users: Discovery business stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.business.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn develop users: Discovery develop stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.develop.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn mobile users: Discovery mobile stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.mobile.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn security users: Discovery security stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.security.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ceb\/e15\/066\/cebe150664f50f3bfe409520c8d8729f.png\" alt=\"Discovery rules.\" title=\"Discovery rules.\" width=\"1086\" height=\"168\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ceb\/e15\/066\/cebe150664f50f3bfe409520c8d8729f.png\"\/><\/p>\n<div><figcaption>Discovery rules.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0443\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <code>Discovery admin stats<\/code>:<\/p>\n<ul>\n<li>\n<p>Discovery rule<\/p>\n<ul>\n<li>\n<p>Name: Discovery admin stats.<\/p>\n<\/li>\n<li>\n<p>Type: Dependent item.<\/p>\n<\/li>\n<li>\n<p>Key: get.openvpn.admin.stats.<\/p>\n<\/li>\n<li>\n<p>Master item: Get openvpn admin users\u00a0\u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>Keep lost resources period: 90d.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Preprocessing\u00a0\u2014 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>LLD Macros (LLD macro : JSONPath)\u00a0\u2014 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c \u0432 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043d\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<ul>\n<li>\n<p><code>{#OVPN_CODE} : $..code.first()<\/code><\/p>\n<\/li>\n<li>\n<p><code>{#OVPN_ENV} : $..env.first()<\/code><\/p>\n<\/li>\n<li>\n<p><code>{#OVPN_USER} : $..user.first()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Filters\u00a0\u2014 \u043d\u0435\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>Overrides\u00a0\u2014 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (<code>Item prototypes<\/code>), \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (<code>Items<\/code>) \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 9 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0443 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<ul>\n<li>\n<p>Item prototype<\/p>\n<ul>\n<li>\n<p>Name: OpenVPN bytes received by <code>{#OVPN_USER}<\/code>.<\/p>\n<\/li>\n<li>\n<p>Type: Dependent item.<\/p>\n<\/li>\n<li>\n<p>Key: <code>bytes_r.openvpn[{#OVPN_USER},admin]<\/code>.<\/p>\n<\/li>\n<li>\n<p>Type of information: Numeric (unsigned).<\/p>\n<\/li>\n<li>\n<p>Master item: Get openvpn admin users\u00a0\u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>Units: B.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Tags<\/p>\n<ul>\n<li>\n<p>Application: OpenVPN.<\/p>\n<\/li>\n<li>\n<p>Country: <code>{#OVPN_CODE}<\/code>.<\/p>\n<\/li>\n<li>\n<p>Department: <code>{#OVPN_ENV}<\/code>.<\/p>\n<\/li>\n<li>\n<p>User: <code>{#OVPN_USER}<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Preprocessing<\/p>\n<ul>\n<li>\n<p>1: JSONPath: <code>$.data.[?(@.user=='{#OVPN_USER}')].bytes_r.first()<\/code>.<\/p>\n<\/li>\n<li>\n<p>2: Simple change.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0bd\/535\/b38\/0bd535b38e072e427ee00d969a15d340.png\" alt=\"Item prototype.\" title=\"Item prototype.\" width=\"750\" height=\"490\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0bd\/535\/b38\/0bd535b38e072e427ee00d969a15d340.png\"\/><\/p>\n<div><figcaption>Item prototype.<\/figcaption><\/div>\n<\/figure>\n<h2>\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044f \u0432\u0437\u044f\u043b \u0440\u043e\u043b\u044c\/\u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\"><strong>Key<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\"><strong>Units<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Preprocessing<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN bytes received by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">bytes_r.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].bytes_r.first()<\/p>\n<p align=\"left\">2: Simple change<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN bytes sent by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">bytes_s.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].bytes_s.first()<\/p>\n<p align=\"left\">2: Simple change<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN connected since by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">unix_time.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">unixtime<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].unix_time.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN connected since by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">con_time.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].con_time.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN country of connection by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">code.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].code.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN department of connection by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">env.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].env.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN real ip gotten by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">real_ip.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].real_ip.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN total online by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">duration.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].duration.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN vpn ip gotten by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">vpn_ip.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].vpn_ip.first()<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/028\/8e4\/05f\/0288e405fb1671f804aef34fa57eee08.png\" alt=\"Item prototypes\" title=\"Item prototypes\" width=\"1102\" height=\"490\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/028\/8e4\/05f\/0288e405fb1671f804aef34fa57eee08.png\"\/><\/p>\n<div><figcaption>Item prototypes<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0442\u0430\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0440\u043e\u043b\u0438\/\u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 5 \u043f\u0440\u0430\u0432\u0438\u043b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0435 \u043f\u043e 9 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 \u0434\u0432\u0435 <code>OpenVPN connected since by {#OVPN_USER}<\/code>?<\/p>\n<ol>\n<li>\n<p><code>unixtime<\/code> \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0430\u043c Zabbix \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0434\u0430\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0434\u0430\u0442\u043e\u0439 \u0434\u043b\u044f Grafana, \u0438\u0431\u043e \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432 <code>unixtime<\/code>, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f\u00a0\u2014 \u043c\u044b \u0435\u0451 \u0443\u0434\u0430\u043b\u0438\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u0441\u0430\u043c \u0448\u0430\u0431\u043b\u043e\u043d, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>template_app_openvpn.yaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"yaml\">zabbix_export:   version: '6.0'   date: '2023-07-06T19:05:17Z'   groups:     -       uuid: 7df96b18c230490a9a0a9e2307226338       name: Templates   templates:     -       uuid: 5923ee2fbec145b18d823dfa94df7bc8       template: 'Template App OpenVPN'       name: 'Template App OpenVPN'       groups:         -           name: Templates       items:         -           uuid: e656bbb1bf5042978a021b8540716f40           name: 'Get openvpn admin users'           key: 'discovery.openvpn[admin]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: d22796d8741744e386b0cfd6872bd86e           name: 'Get openvpn business users'           key: 'discovery.openvpn[bs]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: f56db6ba3c0d41c9a025701e1f3cfc10           name: 'Get openvpn develop users'           key: 'discovery.openvpn[dev]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: fd71ad243f5c41e2bc7afd8f2575cbd5           name: 'Get openvpn mobile users'           key: 'discovery.openvpn[mobile]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: 525ca7181d234482b7310061d0fcaefa           name: 'Get openvpn security users'           key: 'discovery.openvpn[sec]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'       discovery_rules:         -           uuid: baeaac7dc625495e88cd31b0c1eb8d5e           name: 'Discovery admin stats'           type: DEPENDENT           key: get.openvpn.admin.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: 0b5ab8b304624c7fa674c1a0d7c3c7fe               name: 'OpenVPN bytes received by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_r.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_r.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 81c4e81957d3445bac60b4d01f66d77b               name: 'OpenVPN bytes sent by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_s.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_s.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 9fe06c0a371142b5b0e5c02fe687d373               name: 'OpenVPN country of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'code.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].code.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 07499de2e96c40d4ba91ac4d4e6c2819               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'con_time.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].con_time.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: d1a9d74555b6405e97490cec6efe5f8d               name: 'OpenVPN total online by {#OVPN_USER}'               type: DEPENDENT               key: 'duration.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               units: s               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].duration.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 9194cada5a924a5da76680d80b99c05c               name: 'OpenVPN department of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'env.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].env.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 05c5aa9e98aa4b16a69e1ca60b7c4c04               name: 'OpenVPN real ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'real_ip.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].real_ip.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 3ef110acde6842168cbaa7c70afd5afe               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'unix_time.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               units: unixtime               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].unix_time.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 5aa04efb0bd74e2c865d3f4a9b9cdb4a               name: 'OpenVPN vpn ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'vpn_ip.openvpn[{#OVPN_USER},admin]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].vpn_ip.first()'               master_item:                 key: 'discovery.openvpn[admin]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'           master_item:             key: 'discovery.openvpn[admin]'           lld_macro_paths:             -               lld_macro: '{#OVPN_CODE}'               path: $..code.first()             -               lld_macro: '{#OVPN_ENV}'               path: $..env.first()             -               lld_macro: '{#OVPN_USER}'               path: $..user.first()         -           uuid: 4ef4d0675fff4bbb829ee0c7848ff6d8           name: 'Discovery business stats'           type: DEPENDENT           key: get.openvpn.bussines.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: 0fce2e7ac92e472bbe12fb131ff53b08               name: 'OpenVPN bytes received by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_r.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_r.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: ea4a01e3fd864e5a9f6b1b9d4f19f57e               name: 'OpenVPN bytes sent by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_s.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_s.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 1c03acadf4bf47feb2e7563eb89bf0b0               name: 'OpenVPN country of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'code.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].code.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 3bf56ef8c86f46c2acdb737f68d0bfc0               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'con_time.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].con_time.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 88fff908f7fc4a18be4547915b0ec73d               name: 'OpenVPN total online by {#OVPN_USER}'               type: DEPENDENT               key: 'duration.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               units: s               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].duration.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 91754aacf7844872a734d2632b5349dc               name: 'OpenVPN department of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'env.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].env.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 63446bb24db04889b148dfe918d2aa53               name: 'OpenVPN real ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'real_ip.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].real_ip.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 84262ed2324442278cbee1bbef57c021               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'unix_time.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               units: unixtime               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].unix_time.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 4c98fffd90c64211af6ce7c005b2a02b               name: 'OpenVPN vpn ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'vpn_ip.openvpn[{#OVPN_USER},busines]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].vpn_ip.first()'               master_item:                 key: 'discovery.openvpn[bs]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'           master_item:             key: 'discovery.openvpn[bs]'           lld_macro_paths:             -               lld_macro: '{#OVPN_CODE}'               path: $..code.first()             -               lld_macro: '{#OVPN_ENV}'               path: $..env.first()             -               lld_macro: '{#OVPN_USER}'               path: $..user.first()         -           uuid: 9264e60d816e4af998da034ee24d1a82           name: 'Discovery develop stats'           type: DEPENDENT           key: get.openvpn.develop.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: f3fca8e2b72f43069ad734746712abf6               name: 'OpenVPN bytes received by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_r.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_r.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 84fd401d059040c4b2ec0956f20b5f1f               name: 'OpenVPN bytes sent by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_s.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_s.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 064f37842d3143dbbd7989a9d0751992               name: 'OpenVPN country of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'code.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].code.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 92561f23f0504c38aa3c006e2e261ceb               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'con_time.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].con_time.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 8fc80b04d1d14ddbb05fd1d1767639e0               name: 'OpenVPN total online by {#OVPN_USER}'               type: DEPENDENT               key: 'duration.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               units: s               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].duration.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 67917b15f36141fab2e4fec270eb6348               name: 'OpenVPN department of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'env.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].env.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: dc83cdd12b694de1a77298972f05941d               name: 'OpenVPN real ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'real_ip.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].real_ip.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: bcead3fc33ef46eabdf58fefcf725eaf               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'unix_time.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               units: unixtime               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].unix_time.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 8851c704aa1f4ce39b31ea01f378d412               name: 'OpenVPN vpn ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'vpn_ip.openvpn[{#OVPN_USER},develop]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].vpn_ip.first()'               master_item:                 key: 'discovery.openvpn[dev]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'           master_item:             key: 'discovery.openvpn[dev]'           lld_macro_paths:             -               lld_macro: '{#OVPN_CODE}'               path: $..code.first()             -               lld_macro: '{#OVPN_ENV}'               path: $..env.first()             -               lld_macro: '{#OVPN_USER}'               path: $..user.first()         -           uuid: 8a989dbd659f45789520f30278d39d91           name: 'Discovery mobile stats'           type: DEPENDENT           key: get.openvpn.mobile.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: 4bad29b577e2459c973466eacdd6dfcb               name: 'OpenVPN bytes received by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_r.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_r.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: be818605d9154f009313a6e9af03010b               name: 'OpenVPN bytes sent by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_s.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_s.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 5aee4d04aa984a03a408d59a2a3f60ae               name: 'OpenVPN country of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'code.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].code.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: d2b566cae7f14cb78c1d06d2108532d2               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'con_time.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].con_time.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 57a9f5127f00472dbbf26913113824a5               name: 'OpenVPN total online by {#OVPN_USER}'               type: DEPENDENT               key: 'duration.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               units: s               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].duration.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 5edef6cb3f3e4d45862b313b405d1ac0               name: 'OpenVPN department of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'env.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].env.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 9f126688d6ad42918f6fa7adecbe438a               name: 'OpenVPN real ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'real_ip.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].real_ip.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 94bea80e0ebb4c37ac7924a54c94a156               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'unix_time.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               units: unixtime               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].unix_time.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: d4f3967738b34a979f87916fb451f882               name: 'OpenVPN vpn ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'vpn_ip.openvpn[{#OVPN_USER},mobile]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].vpn_ip.first()'               master_item:                 key: 'discovery.openvpn[mobile]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'           master_item:             key: 'discovery.openvpn[mobile]'           lld_macro_paths:             -               lld_macro: '{#OVPN_CODE}'               path: $..code.first()             -               lld_macro: '{#OVPN_ENV}'               path: $..env.first()             -               lld_macro: '{#OVPN_USER}'               path: $..user.first()         -           uuid: a33e27cfdc1144f3b5b5baef683de5bb           name: 'Discovery security stats'           type: DEPENDENT           key: get.openvpn.security.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: f040b7a6ab1449d783eb3c22aff560ea               name: 'OpenVPN bytes received by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_r.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_r.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 0e608df3acf84c3bada3bcca3a37a313               name: 'OpenVPN bytes sent by {#OVPN_USER}'               type: DEPENDENT               key: 'bytes_s.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               units: B               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].bytes_s.first()'                 -                   type: SIMPLE_CHANGE                   parameters:                     - ''               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: b860e8b0f9574fefb79813f38b394601               name: 'OpenVPN country of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'code.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].code.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 0f5ee76db7ed4c25b0a252af516b2b8b               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'con_time.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].con_time.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: ecfc8ad8eb6845b6b21441fd4bf161a8               name: 'OpenVPN total online by {#OVPN_USER}'               type: DEPENDENT               key: 'duration.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               units: s               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].duration.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 7ed85921a3384bfc85e02ed264a04769               name: 'OpenVPN department of connection by {#OVPN_USER}'               type: DEPENDENT               key: 'env.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].env.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 0affb5c0718145d9a8c16b586c3a47cc               name: 'OpenVPN real ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'real_ip.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].real_ip.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: 74e8d8808af74ef5bc78f7ee79cbc821               name: 'OpenVPN connected since by {#OVPN_USER}'               type: DEPENDENT               key: 'unix_time.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               units: unixtime               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].unix_time.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'             -               uuid: c7662b3f044c4305a1ddc9e580ce89dd               name: 'OpenVPN vpn ip gotten by {#OVPN_USER}'               type: DEPENDENT               key: 'vpn_ip.openvpn[{#OVPN_USER},security]'               delay: '0'               history: 7d               trends: '0'               value_type: CHAR               preprocessing:                 -                   type: JSONPATH                   parameters:                     - '$.data.[?(@.user==''{#OVPN_USER}'')].vpn_ip.first()'               master_item:                 key: 'discovery.openvpn[sec]'               tags:                 -                   tag: Application                   value: OpenVPN                 -                   tag: Country                   value: '{#OVPN_CODE}'                 -                   tag: Department                   value: '{#OVPN_ENV}'                 -                   tag: User                   value: '{#OVPN_USER}'           master_item:             key: 'discovery.openvpn[sec]'           lld_macro_paths:             -               lld_macro: '{#OVPN_CODE}'               path: $..code.first()             -               lld_macro: '{#OVPN_ENV}'               path: $..env.first()             -               lld_macro: '{#OVPN_USER}'               path: $..user.first() <\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<h2>\u0414\u0430\u0448\u0431\u043e\u0440\u0434 \u0432 Grafana<\/h2>\n<p>\u0427\u0442\u043e \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432 \u043d\u0451\u043c \u0443\u0432\u0438\u0434\u0435\u0442\u044c:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439:<\/p>\n<ul>\n<li>\n<p>\u0412\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 Zabbix&#8217;\u043e\u043c.<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0433\u0438\u043e\u043d \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0435\u0448\u043d\u0438\u0439 IP.<\/p>\n<\/li>\n<li>\n<p>\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 IP.<\/p>\n<\/li>\n<li>\n<p>\u0420\u043e\u043b\u044c\/\u043f\u0440\u043e\u0444\u0438\u043b\u044c.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:<\/p>\n<ul>\n<li>\n<p>\u041f\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 IP.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443 IP.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e \u0440\u043e\u043b\u0438\/\u043f\u0440\u043e\u0444\u0438\u043b\u044e VPN.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a9\/c0e\/99f\/1a9c0e99ffb7e1025a8c1b6ced5dbcfc.png\" alt=\"OpenVPN User Stats.  \" title=\"OpenVPN User Stats.  \" width=\"1809\" height=\"773\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a9\/c0e\/99f\/1a9c0e99ffb7e1025a8c1b6ced5dbcfc.png\"\/><\/p>\n<div><figcaption>OpenVPN User Stats.  <\/figcaption><\/div>\n<\/figure>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c JSON \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0430 \u0432 Grafana.<\/p>\n<details class=\"spoiler\">\n<summary> openvpn_user_stats.json<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"json\">{   \"__inputs\": [     {       \"name\": \"DS_ZABBIX\",       \"label\": \"Zabbix\",       \"description\": \"\",       \"type\": \"datasource\",       \"pluginId\": \"alexanderzobnin-zabbix-datasource\",       \"pluginName\": \"Zabbix\"     }   ],   \"__elements\": [],   \"__requires\": [     {       \"type\": \"datasource\",       \"id\": \"alexanderzobnin-zabbix-datasource\",       \"name\": \"Zabbix\",       \"version\": \"1.0.0\"     },     {       \"type\": \"grafana\",       \"id\": \"grafana\",       \"name\": \"Grafana\",       \"version\": \"8.3.6\"     },     {       \"type\": \"panel\",       \"id\": \"table\",       \"name\": \"Table\",       \"version\": \"\"     },     {       \"type\": \"panel\",       \"id\": \"timeseries\",       \"name\": \"Time series\",       \"version\": \"\"     }   ],   \"annotations\": {     \"list\": [       {         \"builtIn\": 1,         \"datasource\": \"-- Grafana --\",         \"enable\": true,         \"hide\": true,         \"iconColor\": \"rgba(0, 211, 255, 1)\",         \"name\": \"Annotations &amp; Alerts\",         \"target\": {           \"limit\": 100,           \"matchAny\": false,           \"tags\": [],           \"type\": \"dashboard\"         },         \"type\": \"dashboard\"       }     ]   },   \"editable\": true,   \"fiscalYearStartMonth\": 0,   \"graphTooltip\": 0,   \"id\": null,   \"iteration\": 1688671488450,   \"links\": [],   \"liveNow\": false,   \"panels\": [     {       \"collapsed\": false,       \"gridPos\": {         \"h\": 1,         \"w\": 24,         \"x\": 0,         \"y\": 0       },       \"id\": 15,       \"panels\": [],       \"title\": \"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f $username\",       \"type\": \"row\"     },     {       \"datasource\": {         \"type\": \"alexanderzobnin-zabbix-datasource\",         \"uid\": \"${DS_ZABBIX}\"       },       \"description\": \"\",       \"fieldConfig\": {         \"defaults\": {           \"color\": {             \"mode\": \"palette-classic\"           },           \"custom\": {             \"axisLabel\": \"\",             \"axisPlacement\": \"auto\",             \"barAlignment\": 0,             \"drawStyle\": \"line\",             \"fillOpacity\": 15,             \"gradientMode\": \"opacity\",             \"hideFrom\": {               \"legend\": false,               \"tooltip\": false,               \"viz\": false             },             \"lineInterpolation\": \"linear\",             \"lineStyle\": {               \"fill\": \"solid\"             },             \"lineWidth\": 2,             \"pointSize\": 5,             \"scaleDistribution\": {               \"type\": \"linear\"             },             \"showPoints\": \"auto\",             \"spanNulls\": false,             \"stacking\": {               \"group\": \"A\",               \"mode\": \"none\"             },             \"thresholdsStyle\": {               \"mode\": \"off\"             }           },           \"mappings\": [],           \"thresholds\": {             \"mode\": \"absolute\",             \"steps\": [               {                 \"color\": \"green\",                 \"value\": null               }             ]           },           \"unit\": \"decbytes\"         },         \"overrides\": []       },       \"gridPos\": {         \"h\": 8,         \"w\": 12,         \"x\": 0,         \"y\": 1       },       \"id\": 34,       \"options\": {         \"legend\": {           \"calcs\": [             \"last\",             \"min\",             \"max\",             \"sum\"           ],           \"displayMode\": \"table\",           \"placement\": \"bottom\"         },         \"tooltip\": {           \"mode\": \"single\"         }       },       \"targets\": [         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [             {               \"$$hashKey\": \"object:1405\",               \"def\": {                 \"category\": \"Alias\",                 \"defaultParams\": [],                 \"name\": \"setAlias\",                 \"params\": [                   {                     \"name\": \"alias\",                     \"type\": \"string\"                   }                 ]               },               \"params\": [                 \"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e:\"               ],               \"text\": \"setAlias(\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e:)\"             }           ],           \"group\": {             \"filter\": \"openvpn\"           },           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN bytes received by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"0\",           \"refId\": \"A\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         }       ],       \"title\": \"\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\",       \"transparent\": true,       \"type\": \"timeseries\"     },     {       \"datasource\": {         \"type\": \"alexanderzobnin-zabbix-datasource\",         \"uid\": \"${DS_ZABBIX}\"       },       \"description\": \"\",       \"fieldConfig\": {         \"defaults\": {           \"color\": {             \"mode\": \"palette-classic\"           },           \"custom\": {             \"axisLabel\": \"\",             \"axisPlacement\": \"auto\",             \"barAlignment\": 0,             \"drawStyle\": \"line\",             \"fillOpacity\": 15,             \"gradientMode\": \"opacity\",             \"hideFrom\": {               \"legend\": false,               \"tooltip\": false,               \"viz\": false             },             \"lineInterpolation\": \"linear\",             \"lineStyle\": {               \"fill\": \"solid\"             },             \"lineWidth\": 2,             \"pointSize\": 5,             \"scaleDistribution\": {               \"type\": \"linear\"             },             \"showPoints\": \"auto\",             \"spanNulls\": false,             \"stacking\": {               \"group\": \"A\",               \"mode\": \"none\"             },             \"thresholdsStyle\": {               \"mode\": \"off\"             }           },           \"mappings\": [],           \"thresholds\": {             \"mode\": \"absolute\",             \"steps\": [               {                 \"color\": \"green\",                 \"value\": null               }             ]           },           \"unit\": \"decbytes\"         },         \"overrides\": []       },       \"gridPos\": {         \"h\": 8,         \"w\": 12,         \"x\": 12,         \"y\": 1       },       \"id\": 35,       \"options\": {         \"legend\": {           \"calcs\": [             \"last\",             \"min\",             \"max\",             \"sum\"           ],           \"displayMode\": \"table\",           \"placement\": \"bottom\"         },         \"tooltip\": {           \"mode\": \"single\"         }       },       \"targets\": [         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [             {               \"$$hashKey\": \"object:1432\",               \"def\": {                 \"category\": \"Alias\",                 \"defaultParams\": [],                 \"name\": \"setAlias\",                 \"params\": [                   {                     \"name\": \"alias\",                     \"type\": \"string\"                   }                 ]               },               \"params\": [                 \"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e:\"               ],               \"text\": \"setAlias(\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e:)\"             }           ],           \"group\": {             \"filter\": \"openvpn\"           },           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN bytes sent by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"0\",           \"refId\": \"A\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         }       ],       \"title\": \"\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e\",       \"transparent\": true,       \"type\": \"timeseries\"     },     {       \"datasource\": {         \"type\": \"alexanderzobnin-zabbix-datasource\",         \"uid\": \"${DS_ZABBIX}\"       },       \"fieldConfig\": {         \"defaults\": {           \"color\": {             \"mode\": \"thresholds\"           },           \"custom\": {             \"align\": \"center\",             \"displayMode\": \"auto\",             \"filterable\": true           },           \"mappings\": [],           \"thresholds\": {             \"mode\": \"absolute\",             \"steps\": [               {                 \"color\": \"green\",                 \"value\": null               }             ]           }         },         \"overrides\": [           {             \"matcher\": {               \"id\": \"byName\",               \"options\": \"Time\"             },             \"properties\": [               {                 \"id\": \"custom.width\",                 \"value\": 180               },               {                 \"id\": \"displayName\",                 \"value\": \"\u0412\u0440\u0435\u043c\u044f\"               }             ]           },           {             \"matcher\": {               \"id\": \"byRegexp\",               \"options\": \"^OpenVPN country of connection by.*\"             },             \"properties\": [               {                 \"id\": \"displayName\",                 \"value\": \"\u0420\u0435\u0433\u0438\u043e\u043d\"               },               {                 \"id\": \"custom.width\",                 \"value\": 120               }             ]           },           {             \"matcher\": {               \"id\": \"byRegexp\",               \"options\": \"OpenVPN real ip gotten by.*\"             },             \"properties\": [               {                 \"id\": \"displayName\",                 \"value\": \"\u0412\u043d\u0435\u0448\u043d\u0438\u0439 IP\"               },               {                 \"id\": \"custom.width\",                 \"value\": 180               }             ]           },           {             \"matcher\": {               \"id\": \"byRegexp\",               \"options\": \"OpenVPN vpn ip gotten by.*\"             },             \"properties\": [               {                 \"id\": \"displayName\",                 \"value\": \"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 IP\"               },               {                 \"id\": \"custom.width\",                 \"value\": 180               }             ]           },           {             \"matcher\": {               \"id\": \"byRegexp\",               \"options\": \"OpenVPN department of connection by.*\"             },             \"properties\": [               {                 \"id\": \"displayName\",                 \"value\": \"\u041f\u0440\u043e\u0444\u0438\u043b\u044c\"               },               {                 \"id\": \"custom.align\",                 \"value\": \"center\"               },               {                 \"id\": \"custom.width\",                 \"value\": 120               }             ]           }         ]       },       \"gridPos\": {         \"h\": 9,         \"w\": 12,         \"x\": 0,         \"y\": 9       },       \"hideTimeOverride\": false,       \"id\": 32,       \"options\": {         \"footer\": {           \"fields\": \"\",           \"reducer\": [             \"lastNotNull\"           ],           \"show\": false         },         \"showHeader\": true,         \"sortBy\": []       },       \"pluginVersion\": \"8.3.6\",       \"targets\": [         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [],           \"group\": {             \"filter\": \"openvpn\"           },           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN country of connection by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"2\",           \"refId\": \"A\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           },           \"useCaptureGroups\": false         },         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [],           \"group\": {             \"filter\": \"openvpn\"           },           \"hide\": false,           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN real ip gotten by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"2\",           \"refId\": \"B\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         },         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [],           \"group\": {             \"filter\": \"openvpn\"           },           \"hide\": false,           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN vpn ip gotten by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"2\",           \"refId\": \"C\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         },         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [],           \"group\": {             \"filter\": \"openvpn\"           },           \"hide\": false,           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN department of connection by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"2\",           \"refId\": \"D\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         }       ],       \"title\": \"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439\",       \"transparent\": true,       \"type\": \"table\"     },     {       \"datasource\": {         \"type\": \"alexanderzobnin-zabbix-datasource\",         \"uid\": \"${DS_ZABBIX}\"       },       \"fieldConfig\": {         \"defaults\": {           \"color\": {             \"mode\": \"continuous-GrYlRd\"           },           \"custom\": {             \"axisLabel\": \"\",             \"axisPlacement\": \"auto\",             \"barAlignment\": 0,             \"drawStyle\": \"bars\",             \"fillOpacity\": 90,             \"gradientMode\": \"scheme\",             \"hideFrom\": {               \"legend\": false,               \"tooltip\": false,               \"viz\": false             },             \"lineInterpolation\": \"linear\",             \"lineWidth\": 1,             \"pointSize\": 5,             \"scaleDistribution\": {               \"type\": \"linear\"             },             \"showPoints\": \"auto\",             \"spanNulls\": false,             \"stacking\": {               \"group\": \"A\",               \"mode\": \"none\"             },             \"thresholdsStyle\": {               \"mode\": \"off\"             }           },           \"mappings\": [],           \"thresholds\": {             \"mode\": \"absolute\",             \"steps\": [               {                 \"color\": \"green\",                 \"value\": null               }             ]           },           \"unit\": \"dtdhms\"         },         \"overrides\": [           {             \"matcher\": {               \"id\": \"byName\",               \"options\": \"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439:\"             },             \"properties\": [               {                 \"id\": \"color\",                 \"value\": {                   \"fixedColor\": \"orange\",                   \"mode\": \"fixed\"                 }               }             ]           }         ]       },       \"gridPos\": {         \"h\": 9,         \"w\": 12,         \"x\": 12,         \"y\": 9       },       \"id\": 37,       \"links\": [],       \"options\": {         \"legend\": {           \"calcs\": [             \"last\"           ],           \"displayMode\": \"table\",           \"placement\": \"bottom\",           \"sortBy\": \"Distinct Count\",           \"sortDesc\": true         },         \"tooltip\": {           \"mode\": \"single\"         }       },       \"pluginVersion\": \"8.3.6\",       \"targets\": [         {           \"application\": {             \"filter\": \"\"           },           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"functions\": [],           \"group\": {             \"filter\": \"openvpn\"           },           \"host\": {             \"filter\": \"$host\"           },           \"item\": {             \"filter\": \"\/OpenVPN total online by$username\/\"           },           \"itemTag\": {             \"filter\": \"Application: OpenVPN\"           },           \"options\": {             \"disableDataAlignment\": false,             \"showDisabledItems\": false,             \"skipEmptyValues\": false,             \"useZabbixValueMapping\": false           },           \"proxy\": {             \"filter\": \"\"           },           \"queryType\": \"0\",           \"refId\": \"A\",           \"resultFormat\": \"time_series\",           \"table\": {             \"skipEmptyValues\": false           },           \"tags\": {             \"filter\": \"\"           },           \"trigger\": {             \"filter\": \"\"           },           \"triggers\": {             \"acknowledged\": 2,             \"count\": true,             \"minSeverity\": 3           }         }       ],       \"title\": \"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439\",       \"transformations\": [         {           \"id\": \"calculateField\",           \"options\": {             \"alias\": \"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f:\",             \"mode\": \"reduceRow\",             \"reduce\": {               \"reducer\": \"sum\"             },             \"replaceFields\": true           }         }       ],       \"transparent\": true,       \"type\": \"timeseries\"     },     {       \"collapsed\": true,       \"gridPos\": {         \"h\": 1,         \"w\": 24,         \"x\": 0,         \"y\": 18       },       \"id\": 39,       \"panels\": [         {           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"description\": \"\",           \"fieldConfig\": {             \"defaults\": {               \"custom\": {                 \"align\": \"auto\",                 \"displayMode\": \"auto\",                 \"filterable\": true               },               \"mappings\": [],               \"thresholds\": {                 \"mode\": \"absolute\",                 \"steps\": [                   {                     \"color\": \"green\",                     \"value\": null                   },                   {                     \"color\": \"red\",                     \"value\": 80                   }                 ]               }             },             \"overrides\": [               {                 \"matcher\": {                   \"id\": \"byName\",                   \"options\": \"Last value\"                 },                 \"properties\": [                   {                     \"id\": \"custom.width\",                     \"value\": 200                   }                 ]               }             ]           },           \"gridPos\": {             \"h\": 19,             \"w\": 8,             \"x\": 0,             \"y\": 19           },           \"id\": 41,           \"options\": {             \"footer\": {               \"fields\": \"\",               \"reducer\": [                 \"sum\"               ],               \"show\": false             },             \"showHeader\": true,             \"sortBy\": []           },           \"pluginVersion\": \"8.3.6\",           \"targets\": [             {               \"application\": {                 \"filter\": \"\"               },               \"datasource\": {                 \"type\": \"alexanderzobnin-zabbix-datasource\",                 \"uid\": \"${DS_ZABBIX}\"               },               \"functions\": [],               \"group\": {                 \"filter\": \"openvpn\"               },               \"host\": {                 \"filter\": \"$host\"               },               \"item\": {                 \"filter\": \"\/OpenVPN real ip gotten by.*\/\"               },               \"itemTag\": {                 \"filter\": \"Application: OpenVPN\"               },               \"options\": {                 \"disableDataAlignment\": false,                 \"showDisabledItems\": false,                 \"skipEmptyValues\": true,                 \"useZabbixValueMapping\": false               },               \"proxy\": {                 \"filter\": \"\"               },               \"queryType\": \"2\",               \"refId\": \"A\",               \"resultFormat\": \"table\",               \"slaInterval\": \"none\",               \"slaProperty\": {                 \"name\": \"SLA\",                 \"property\": \"sla\"               },               \"table\": {                 \"skipEmptyValues\": false               },               \"tags\": {                 \"filter\": \"\"               },               \"textFilter\": \"\",               \"trigger\": {                 \"filter\": \"\"               },               \"triggers\": {                 \"acknowledged\": 2,                 \"count\": true,                 \"minSeverity\": 3               }             }           ],           \"title\": \"\u041f\u043e \u0432\u043d\u0435\u0448\u043d\u0435\u043c\u0443 IP\",           \"transformations\": [             {               \"id\": \"organize\",               \"options\": {                 \"excludeByName\": {                   \"Host\": true,                   \"Key\": true                 },                 \"indexByName\": {                   \"All values\": 0,                   \"Host\": 1,                   \"Item\": 2,                   \"Key\": 3,                   \"Last value\": 4                 },                 \"renameByName\": {                   \"Host\": \"\",                   \"Item\": \"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\",                   \"Last value\": \"\u0412\u043d\u0435\u0448\u043d\u0438\u0439 IP\"                 }               }             }           ],           \"transparent\": true,           \"type\": \"table\"         },         {           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"description\": \"\",           \"fieldConfig\": {             \"defaults\": {               \"custom\": {                 \"align\": \"auto\",                 \"displayMode\": \"auto\",                 \"filterable\": true               },               \"mappings\": [],               \"thresholds\": {                 \"mode\": \"absolute\",                 \"steps\": [                   {                     \"color\": \"green\",                     \"value\": null                   },                   {                     \"color\": \"red\",                     \"value\": 80                   }                 ]               }             },             \"overrides\": [               {                 \"matcher\": {                   \"id\": \"byName\",                   \"options\": \"Last value\"                 },                 \"properties\": [                   {                     \"id\": \"custom.width\",                     \"value\": 200                   }                 ]               }             ]           },           \"gridPos\": {             \"h\": 19,             \"w\": 8,             \"x\": 8,             \"y\": 19           },           \"id\": 42,           \"options\": {             \"footer\": {               \"fields\": \"\",               \"reducer\": [                 \"sum\"               ],               \"show\": false             },             \"showHeader\": true,             \"sortBy\": []           },           \"pluginVersion\": \"8.3.6\",           \"targets\": [             {               \"application\": {                 \"filter\": \"\"               },               \"datasource\": {                 \"type\": \"alexanderzobnin-zabbix-datasource\",                 \"uid\": \"${DS_ZABBIX}\"               },               \"functions\": [],               \"group\": {                 \"filter\": \"openvpn\"               },               \"host\": {                 \"filter\": \"$host\"               },               \"item\": {                 \"filter\": \"\/OpenVPN vpn ip gotten by.*\/\"               },               \"itemTag\": {                 \"filter\": \"Application: OpenVPN\"               },               \"options\": {                 \"disableDataAlignment\": false,                 \"showDisabledItems\": false,                 \"skipEmptyValues\": true,                 \"useZabbixValueMapping\": false               },               \"proxy\": {                 \"filter\": \"\"               },               \"queryType\": \"2\",               \"refId\": \"A\",               \"resultFormat\": \"table\",               \"slaInterval\": \"none\",               \"slaProperty\": {                 \"name\": \"SLA\",                 \"property\": \"sla\"               },               \"table\": {                 \"skipEmptyValues\": false               },               \"tags\": {                 \"filter\": \"\"               },               \"textFilter\": \"\",               \"trigger\": {                 \"filter\": \"\"               },               \"triggers\": {                 \"acknowledged\": 2,                 \"count\": true,                 \"minSeverity\": 3               }             }           ],           \"title\": \"\u041f\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0435\u043c\u0443 IP\",           \"transformations\": [             {               \"id\": \"organize\",               \"options\": {                 \"excludeByName\": {                   \"Host\": true,                   \"Key\": true                 },                 \"indexByName\": {                   \"All values\": 0,                   \"Host\": 1,                   \"Item\": 2,                   \"Key\": 3,                   \"Last value\": 4                 },                 \"renameByName\": {                   \"Host\": \"\",                   \"Item\": \"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\",                   \"Last value\": \"\u0412\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u0439 IP\"                 }               }             }           ],           \"transparent\": true,           \"type\": \"table\"         },         {           \"datasource\": {             \"type\": \"alexanderzobnin-zabbix-datasource\",             \"uid\": \"${DS_ZABBIX}\"           },           \"description\": \"\",           \"fieldConfig\": {             \"defaults\": {               \"custom\": {                 \"align\": \"auto\",                 \"displayMode\": \"auto\",                 \"filterable\": true               },               \"mappings\": [],               \"thresholds\": {                 \"mode\": \"absolute\",                 \"steps\": [                   {                     \"color\": \"green\",                     \"value\": null                   },                   {                     \"color\": \"red\",                     \"value\": 80                   }                 ]               }             },             \"overrides\": [               {                 \"matcher\": {                   \"id\": \"byName\",                   \"options\": \"Last value\"                 },                 \"properties\": [                   {                     \"id\": \"custom.width\",                     \"value\": 200                   }                 ]               }             ]           },           \"gridPos\": {             \"h\": 19,             \"w\": 8,             \"x\": 16,             \"y\": 19           },           \"id\": 43,           \"options\": {             \"footer\": {               \"fields\": \"\",               \"reducer\": [                 \"sum\"               ],               \"show\": false             },             \"showHeader\": true,             \"sortBy\": []           },           \"pluginVersion\": \"8.3.6\",           \"targets\": [             {               \"application\": {                 \"filter\": \"\"               },               \"datasource\": {                 \"type\": \"alexanderzobnin-zabbix-datasource\",                 \"uid\": \"${DS_ZABBIX}\"               },               \"functions\": [],               \"group\": {                 \"filter\": \"openvpn\"               },               \"host\": {                 \"filter\": \"$host\"               },               \"item\": {                 \"filter\": \"\/OpenVPN department of connection by .*\/\"               },               \"itemTag\": {                 \"filter\": \"Application: OpenVPN\"               },               \"options\": {                 \"disableDataAlignment\": false,                 \"showDisabledItems\": false,                 \"skipEmptyValues\": true,                 \"useZabbixValueMapping\": false               },               \"proxy\": {                 \"filter\": \"\"               },               \"queryType\": \"2\",               \"refId\": \"A\",               \"resultFormat\": \"table\",               \"slaInterval\": \"none\",               \"slaProperty\": {                 \"name\": \"SLA\",                 \"property\": \"sla\"               },               \"table\": {                 \"skipEmptyValues\": false               },               \"tags\": {                 \"filter\": \"\"               },               \"textFilter\": \"\",               \"trigger\": {                 \"filter\": \"\"               },               \"triggers\": {                 \"acknowledged\": 2,                 \"count\": true,                 \"minSeverity\": 3               }             }           ],           \"title\": \"\u041f\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044e VPN\",           \"transformations\": [             {               \"id\": \"organize\",               \"options\": {                 \"excludeByName\": {                   \"Host\": true,                   \"Key\": true                 },                 \"indexByName\": {                   \"All values\": 0,                   \"Host\": 1,                   \"Item\": 2,                   \"Key\": 3,                   \"Last value\": 4                 },                 \"renameByName\": {                   \"Host\": \"\",                   \"Item\": \"\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\",                   \"Last value\": \"\u041f\u0440\u043e\u0444\u0438\u043b\u044c VPN\"                 }               }             }           ],           \"transparent\": true,           \"type\": \"table\"         }       ],       \"title\": \"\u041f\u043e\u0438\u0441\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\",       \"type\": \"row\"     }   ],   \"refresh\": \"\",   \"schemaVersion\": 34,   \"style\": \"dark\",   \"tags\": [],   \"templating\": {     \"list\": [       {         \"current\": {},         \"datasource\": {           \"type\": \"alexanderzobnin-zabbix-datasource\",           \"uid\": \"${DS_ZABBIX}\"         },         \"definition\": \"Zabbix - host\",         \"hide\": 0,         \"includeAll\": false,         \"multi\": false,         \"name\": \"host\",         \"options\": [],         \"query\": {           \"application\": \"\",           \"group\": \"openvpn\",           \"host\": \"\/.*\/\",           \"item\": \"\",           \"itemTag\": \"\",           \"queryType\": \"host\"         },         \"refresh\": 1,         \"regex\": \"\",         \"skipUrlSync\": false,         \"sort\": 0,         \"tagValuesQuery\": \"\",         \"tagsQuery\": \"\",         \"type\": \"query\",         \"useTags\": false       },       {         \"current\": {},         \"datasource\": {           \"type\": \"alexanderzobnin-zabbix-datasource\",           \"uid\": \"${DS_ZABBIX}\"         },         \"definition\": \"Zabbix - itemTag\",         \"hide\": 2,         \"includeAll\": true,         \"multi\": false,         \"name\": \"departament\",         \"options\": [],         \"query\": {           \"application\": \"\",           \"group\": \"openvpn\",           \"host\": \"$host\",           \"item\": \"\",           \"itemTag\": \"\/Departament\/\",           \"queryType\": \"itemTag\"         },         \"refresh\": 1,         \"regex\": \"\/^Departament:(.*)\/\",         \"skipUrlSync\": false,         \"sort\": 0,         \"tagValuesQuery\": \"\",         \"tagsQuery\": \"\",         \"type\": \"query\",         \"useTags\": false       },       {         \"current\": {},         \"datasource\": {           \"type\": \"alexanderzobnin-zabbix-datasource\",           \"uid\": \"${DS_ZABBIX}\"         },         \"definition\": \"Zabbix - itemTag\",         \"hide\": 0,         \"includeAll\": false,         \"multi\": false,         \"name\": \"username\",         \"options\": [],         \"query\": {           \"application\": \"\",           \"group\": \"openvpn\",           \"host\": \"$host\",           \"item\": \"\",           \"itemTag\": \"\/User\/\",           \"queryType\": \"itemTag\"         },         \"refresh\": 1,         \"regex\": \"\/^User:(.*)\/\",         \"skipUrlSync\": false,         \"sort\": 0,         \"tagValuesQuery\": \"\",         \"tagsQuery\": \"\",         \"type\": \"query\",         \"useTags\": false       }     ]   },   \"time\": {     \"from\": \"now-24h\",     \"to\": \"now\"   },   \"timepicker\": {     \"refresh_intervals\": [       \"5s\",       \"10s\",       \"30s\",       \"1m\",       \"5m\",       \"15m\",       \"30m\",       \"1h\",       \"2h\",       \"1d\"     ],     \"time_options\": [       \"5m\",       \"15m\",       \"1h\",       \"6h\",       \"12h\",       \"24h\",       \"2d\",       \"7d\",       \"30d\"     ]   },   \"timezone\": \"\",   \"title\": \"OpenVPN User Stats\",   \"uid\": \"ERpfiw9Vz\",   \"version\": 2,   \"weekStart\": \"\" }<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0443 \u043c\u0435\u043d\u044f \u0432\u0441\u0451, \u0432\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0438 \u0432\u0441\u0442\u0443\u043f\u0430\u0439\u0442\u0435 \u0432 <a href=\"https:\/\/t.me\/ZabbixPro\">Zabbix Community<\/a>!<\/p>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p> <!----> <!----><\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/domclick\/articles\/744764\/\"> https:\/\/habr.com\/ru\/companies\/domclick\/articles\/744764\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\">\n<div><figcaption>\u0422\u044b \u043f\u043e\u0434 \u043a\u043e\u043b\u043f\u0430\u043a\u043e\u043c.<\/figcaption><\/div>\n<\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442. \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0418\u0433\u043e\u0440\u044c, \u044f Tech Lead \u043a\u043e\u043c\u0430\u043d\u0434\u044b DevOps-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u044e \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u0412 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/habr.com\/ru\/companies\/domclick\/articles\/741286\/\">\u0441\u0442\u0430\u0442\u044c\u0438 \u0441\u0432\u043e\u0435\u0433\u043e \u043a\u043e\u043b\u043b\u0435\u0433\u0438<\/a> \u043f\u043e \u0446\u0435\u0445\u0443 <a class=\"mention\" href=\"\/users\/evgennet\">@EvgenNet<\/a> \u0445\u043e\u0447\u0443 \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c \u0432\u0430\u0441 \u0441 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u043c \u0434\u043b\u044f Zabbix \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u043e\u043c \u0432 Grafana \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 OpenVPN. \u0412\u043e\u0437\u044c\u043c\u0438\u0442\u0435 \u0432\u043a\u0443\u0441\u043d\u044f\u0448\u0435\u043a, \u0447\u0430\u0439\u043a\u0443 \u0438 \u043f\u0440\u0438\u0441\u0430\u0436\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043f\u043e\u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f<\/h2>\n<p>\u0414\u0430\u043b\u0435\u043a\u043e \u0432 2019 \u0433\u043e\u0434\u0443 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u0438 \u0437\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a. \u0415\u0441\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 <a href=\"https:\/\/github.com\/furlongm\/openvpn-monitor\">https:\/\/github.com\/furlongm\/openvpn-monitor<\/a>, \u043e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0437 \u043a\u0430\u043a\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0451\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c, \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 IP-\u0430\u0434\u0440\u0435\u0441\u0430\u043c\u0438 \u0438 \u043a\u0430\u043a\u043e\u0439 \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u0433\u043e \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442. \u041a\u0430\u043a \u0440\u0430\u0437 \u0432 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 Influx \u0438 \u0432\u0441\u0435 \u0431\u0438\u0437\u043d\u0435\u0441-\u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0431\u044b\u043b\u0438 \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043c. \u041d\u0435\u0434\u043e\u043b\u0433\u043e \u0434\u0443\u043c\u0430\u044f, \u044f \u0440\u0435\u0448\u0438\u043b \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442 \u043f\u043e\u0434 \u0432\u044b\u0432\u043e\u0434 \u043c\u0435\u0442\u0440\u0438\u043a \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 Influx \u0434\u043b\u044f Telegraf-\u0430\u0433\u0435\u043d\u0442\u0430 \u0438 \u043d\u0430\u043a\u0438\u0434\u0430\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0434\u0430\u0448\u0431\u043e\u0440\u0434 \u0434\u043b\u044f Grafana. \u041a\u043e\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d \u0441\u043a\u0440\u0438\u043f\u0442 \u0438 \u0434\u0430\u0448\u0431\u043e\u0440\u0434\u00a0\u2014 \u0432\u0435\u043b\u043a\u043e\u043c \u0432 \u043b\u0438\u0447\u043a\u0443.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u044b\u0432\u043e\u0434 \u0441\u043a\u0440\u0438\u043f\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">.\/openvpn-monitor.py exec,username=user1 local_ip=\"10.20.30.176\",remote_ip=\"192.168.1.223\",bytes_recv=297964i,bytes_sent=2788764i,connected_since=\"2019-02-22 11:44:38\",last_seen=\"ERROR\",total_time=\"0:29:04\" exec,username=user2 local_ip=\"10.20.40.185\",remote_ip=\"192.168.2.142\",bytes_recv=311415i,bytes_sent=2181895i,connected_since=\"2019-02-22 11:48:09\",last_seen=\"ERROR\",total_time=\"0:25:33\" exec,username=user3 local_ip=\"10.20.50.170\",remote_ip=\"192.168.3.248\",bytes_recv=651527i,bytes_sent=11307713i,connected_since=\"2019-02-22 11:16:13\",last_seen=\"ERROR\",total_time=\"0:57:29\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<details class=\"spoiler\">\n<summary>\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043b\u044f Telegraf-\u0430\u0433\u0435\u043d\u0442\u0430<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"yaml\">[[inputs.exec]]   interval = \"1m\"   commands = [\"python \/usr\/local\/bin\/openvpn-monitor.py\"]   timeout = \"20m\"   name_suffix = \"_openvpn\"   data_format = \"influx\"   [[outputs.influxdb]]     urls = [\"http:\/\/influx.example.com:8086\"] # required   database = \"openvpn\" # required   username = \"user\"   password = \"pass\"   namepass = [\"exec_openvpn*\"]     retention_policy = \"\"   write_consistency = \"any\"   timeout = \"5s\"     ## Compress each HTTP request payload using GZIP.   content_encoding = \"gzip\"<\/code><\/pre>\n<\/p>\n<\/div>\n<\/details>\n<p>\u0412\u0441\u0451 \u044d\u0442\u043e \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0438 \u0440\u0430\u0434\u043e\u0432\u0430\u043b\u043e \u0441\u0432\u043e\u0438\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u0438\u0442\u0435\u043b\u0435\u0439 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043c\u044b \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0435\u0440\u0435\u0435\u0437\u0436\u0430\u0442\u044c \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 OpenVPN \u0438 \u043d\u0435 \u0441\u0442\u0430\u043b\u0438 \u043e\u0442\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u0442 Influx. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0442\u0430\u0449\u0438\u0442\u044c \u0432\u0441\u0451 \u043f\u043e\u0434 Zabbix, \u0430 <a class=\"mention\" href=\"\/users\/evgennet\">@EvgenNet<\/a>\u0434\u043e\u0431\u043b\u0435\u0441\u0442\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u043b\u0441\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043a\u0440\u0438\u043f\u0442.<\/p>\n<h2>\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430<\/h2>\n<p>\u0412\u0441\u0451, \u043e\u0442 \u0447\u0435\u0433\u043e \u043c\u044b \u043f\u043b\u044f\u0448\u0435\u043c\u00a0\u2014 \u044d\u0442\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043c\u0430\u0441\u0441\u0438\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432).<\/p>\n<blockquote>\n<p>Text data limits depend on the database backend. Before storing text values in the database they get truncated to match the database value type limit.<\/p>\n<\/blockquote>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"center\"><strong>Database<\/strong><\/p>\n<\/td>\n<td colspan=\"3\">\n<p align=\"center\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"center\">\n<\/td>\n<td>\n<p align=\"center\"><strong>Character<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Log<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Text<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MySQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 bytes<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 bytes<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">PostgreSQL<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">Oracle<\/p>\n<\/td>\n<td>\n<p align=\"left\">255 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<td>\n<p align=\"left\">65536 characters<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c PostgreSQL \u0438 \u0443\u043f\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0432 65 536 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432, \u0442\u043e \u0440\u0435\u0448\u0438\u043b\u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u043e\u0432 \u043f\u043e \u0438\u0445 \u0440\u043e\u043b\u044f\u043c\/\u043f\u0440\u043e\u0444\u0438\u043b\u044f\u043c:<\/p>\n<ul>\n<li>\n<p>\u0410\u0434\u043c\u0438\u043d\u044b;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0438\u0437\u043d\u0435\u0441;<\/p>\n<\/li>\n<li>\n<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430;<\/p>\n<\/li>\n<li>\n<p>\u041c\u043e\u0431\u0438\u043b\u043a\u0438;<\/p>\n<\/li>\n<li>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0414\u043b\u044f \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0440\u0430\u0441\u043a\u0438\u0434\u0430\u0442\u044c <code>UserParameter<\/code> \u0438 <a href=\"https:\/\/habr.com\/ru\/companies\/domclick\/articles\/741286\/\">\u0441\u043a\u0440\u0438\u043f\u0442 <\/a>\u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0441 OpenVPN:<\/p>\n<p><strong>userparameter_openvpn.conf<\/strong><\/p>\n<p><code>UserParameter=discovery.openvpn[*], \/usr\/bin\/openvpn-mon.py $1<\/code><\/p>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u043e\u0434\u0438\u043d \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430:<\/p>\n<ul>\n<li>\n<p><code>admin<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>bs<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>dev<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>mobile<\/code>;<\/p>\n<\/li>\n<li>\n<p><code>sec<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h2>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430 \u0432 Zabbix<\/h2>\n<p>\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0430\u0435\u043c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0441\u0430\u043c\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043d\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0430\u0441\u0442\u0435\u0440-\u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (<code>Items<\/code>) \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0440\u043e\u043b\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"center\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"center\"><strong>Key<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"center\"><strong>Interval<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"center\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn admin users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[admin]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn business users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[bs]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn develop users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[dev]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn mobile users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[mobile]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"161\" width=\"161\">\n<p align=\"left\">Get openvpn security users<\/p>\n<\/td>\n<td data-colwidth=\"209\" width=\"209\">\n<p align=\"left\">discovery.openvpn[sec]<\/p>\n<\/td>\n<td data-colwidth=\"100\" width=\"100\">\n<p align=\"left\">5m<\/p>\n<\/td>\n<td data-colwidth=\"114\" width=\"114\">\n<p align=\"left\">Text<\/p>\n<\/td>\n<td>\n<p align=\"left\">Zabbix agent<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\">\n<div><figcaption>Items.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f (<code>Discovery rules<\/code>) \u0441 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u043c\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c\u0438:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"center\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"center\"><strong>Key<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"center\"><strong>Type<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn admin users: Discovery admin stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.admin.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn business users: Discovery business stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.business.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn develop users: Discovery develop stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.develop.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn mobile users: Discovery mobile stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.mobile.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"349\" width=\"349\">\n<p align=\"left\">Get openvpn security users: Discovery security stats<\/p>\n<\/td>\n<td data-colwidth=\"214\" width=\"214\">\n<p align=\"left\">get.openvpn.security.stats<\/p>\n<\/td>\n<td>\n<p align=\"left\">Dependent item<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\">\n<div><figcaption>Discovery rules.<\/figcaption><\/div>\n<\/figure>\n<p>\u0422\u0443\u0442 \u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u0438 \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 <code>Discovery admin stats<\/code>:<\/p>\n<ul>\n<li>\n<p>Discovery rule<\/p>\n<ul>\n<li>\n<p>Name: Discovery admin stats.<\/p>\n<\/li>\n<li>\n<p>Type: Dependent item.<\/p>\n<\/li>\n<li>\n<p>Key: get.openvpn.admin.stats.<\/p>\n<\/li>\n<li>\n<p>Master item: Get openvpn admin users\u00a0\u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>Keep lost resources period: 90d.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Preprocessing\u00a0\u2014 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>LLD Macros (LLD macro : JSONPath)\u00a0\u2014 \u0432\u044b\u0442\u0430\u0441\u043a\u0438\u0432\u0430\u0435\u043c \u0432 \u043c\u0430\u043a\u0440\u043e\u0441\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u0443\u044e \u043d\u0430 \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e.<\/p>\n<ul>\n<li>\n<p><code>{#OVPN_CODE} : $..code.first()<\/code><\/p>\n<\/li>\n<li>\n<p><code>{#OVPN_ENV} : $..env.first()<\/code><\/p>\n<\/li>\n<li>\n<p><code>{#OVPN_USER} : $..user.first()<\/code><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Filters\u00a0\u2014 \u043d\u0435\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<li>\n<p>Overrides\u00a0\u2014 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c.<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u044b \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 (<code>Item prototypes<\/code>), \u043d\u0430 \u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0443\u0434\u0443\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b (<code>Items<\/code>) \u043f\u043e\u0434 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0420\u0430\u0437\u0431\u0435\u0440\u0443 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 9 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u0441\u0432\u0435\u0434\u0443 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0443:<\/p>\n<ul>\n<li>\n<p>Item prototype<\/p>\n<ul>\n<li>\n<p>Name: OpenVPN bytes received by <code>{#OVPN_USER}<\/code>.<\/p>\n<\/li>\n<li>\n<p>Type: Dependent item.<\/p>\n<\/li>\n<li>\n<p>Key: <code>bytes_r.openvpn[{#OVPN_USER},admin]<\/code>.<\/p>\n<\/li>\n<li>\n<p>Type of information: Numeric (unsigned).<\/p>\n<\/li>\n<li>\n<p>Master item: Get openvpn admin users\u00a0\u2014 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0438\u0437 \u0432\u044b\u043f\u0430\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043f\u0438\u0441\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<\/li>\n<li>\n<p>Units: B.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Tags<\/p>\n<ul>\n<li>\n<p>Application: OpenVPN.<\/p>\n<\/li>\n<li>\n<p>Country: <code>{#OVPN_CODE}<\/code>.<\/p>\n<\/li>\n<li>\n<p>Department: <code>{#OVPN_ENV}<\/code>.<\/p>\n<\/li>\n<li>\n<p>User: <code>{#OVPN_USER}<\/code>.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Preprocessing<\/p>\n<ul>\n<li>\n<p>1: JSONPath: <code>$.data.[?(@.user=='{#OVPN_USER}')].bytes_r.first()<\/code>.<\/p>\n<\/li>\n<li>\n<p>2: Simple change.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"full-width\">\n<div><figcaption>Item prototype.<\/figcaption><\/div>\n<\/figure>\n<h2>\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432<\/h2>\n<p>\u0414\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u044f \u0432\u0437\u044f\u043b \u0440\u043e\u043b\u044c\/\u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u043e\u0432:<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\"><strong>Name<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\"><strong>Key<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\"><strong>Type of information<\/strong><\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\"><strong>Units<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>Preprocessing<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN bytes received by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">bytes_r.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].bytes_r.first()<\/p>\n<p align=\"left\">2: Simple change<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN bytes sent by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">bytes_s.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">B<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].bytes_s.first()<\/p>\n<p align=\"left\">2: Simple change<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN connected since by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">unix_time.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">unixtime<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].unix_time.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN connected since by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">con_time.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].con_time.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN country of connection by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">code.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].code.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN department of connection by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">env.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].env.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN real ip gotten by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">real_ip.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].real_ip.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN total online by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">duration.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Numeric (unsigned)<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">s<\/p>\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].duration.first()<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"182\" width=\"182\">\n<p align=\"left\">OpenVPN vpn ip gotten by {#OVPN_USER}<\/p>\n<\/td>\n<td data-colwidth=\"128\" width=\"128\">\n<p align=\"left\">vpn_ip.openvpn[{#OVPN_USER},admin]<\/p>\n<\/td>\n<td data-colwidth=\"99\" width=\"99\">\n<p align=\"left\">Character<\/p>\n<\/td>\n<td data-colwidth=\"55\" width=\"55\">\n<p align=\"left\">\n<\/td>\n<td>\n<p align=\"left\">1: JSONPath: $.data.[?(@.user=='{#OVPN_USER}&#8217;)].vpn_ip.first()<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<figure class=\"full-width\">\n<div><figcaption>Item prototypes<\/figcaption><\/div>\n<\/figure>\n<p>\u0418 \u0442\u0430\u043a \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0439 \u0440\u043e\u043b\u0438\/\u043f\u0440\u043e\u0444\u0438\u043b\u044f. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f 5 \u043f\u0440\u0430\u0432\u0438\u043b \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f, \u0438 \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0435 \u043f\u043e 9 \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f\u043e\u0432 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432. \u041f\u043e\u0447\u0435\u043c\u0443 \u0436\u0435 \u0434\u0432\u0435 <code>OpenVPN connected since by {#OVPN_USER}<\/code>?<\/p>\n<ol>\n<li>\n<p><code>unixtime<\/code> \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u0442 \u0441\u0430\u043c Zabbix \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u0443\u044e \u0434\u0430\u0442\u0443 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.<\/p>\n<\/li>\n<li>\n<p>\u0421\u0442\u0440\u043e\u043a\u0430 \u0441 \u0434\u0430\u0442\u043e\u0439 \u0434\u043b\u044f Grafana, \u0438\u0431\u043e \u043e\u043d\u0430 \u043d\u0435 \u0443\u043c\u0435\u0435\u0442 \u0432 <code>unixtime<\/code>, \u0430 \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u0443\u0447\u0438\u0442\u0441\u044f\u00a0\u2014 \u043c\u044b \u0435\u0451 \u0443\u0434\u0430\u043b\u0438\u043c.<\/p>\n<\/li>\n<\/ol>\n<p>\u041f\u043e\u0434 \u0441\u043f\u043e\u0439\u043b\u0435\u0440\u043e\u043c \u0441\u0430\u043c \u0448\u0430\u0431\u043b\u043e\u043d, \u043d\u0430\u0434\u0435\u044e\u0441\u044c, \u043e\u043d \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f.<\/p>\n<details class=\"spoiler\">\n<summary>template_app_openvpn.yaml<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"yaml\">zabbix_export:   version: '6.0'   date: '2023-07-06T19:05:17Z'   groups:     -       uuid: 7df96b18c230490a9a0a9e2307226338       name: Templates   templates:     -       uuid: 5923ee2fbec145b18d823dfa94df7bc8       template: 'Template App OpenVPN'       name: 'Template App OpenVPN'       groups:         -           name: Templates       items:         -           uuid: e656bbb1bf5042978a021b8540716f40           name: 'Get openvpn admin users'           key: 'discovery.openvpn[admin]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: d22796d8741744e386b0cfd6872bd86e           name: 'Get openvpn business users'           key: 'discovery.openvpn[bs]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: f56db6ba3c0d41c9a025701e1f3cfc10           name: 'Get openvpn develop users'           key: 'discovery.openvpn[dev]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: fd71ad243f5c41e2bc7afd8f2575cbd5           name: 'Get openvpn mobile users'           key: 'discovery.openvpn[mobile]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'         -           uuid: 525ca7181d234482b7310061d0fcaefa           name: 'Get openvpn security users'           key: 'discovery.openvpn[sec]'           delay: 5m           history: 14d           trends: '0'           value_type: TEXT           tags:             -               tag: Application               value: 'Zabbix raws'       discovery_rules:         -           uuid: baeaac7dc625495e88cd31b0c1eb8d5e           name: 'Discovery admin stats'           type: DEPENDENT           key: get.openvpn.admin.stats           delay: '0'           lifetime: 90d           item_prototypes:             -               uuid: 0b5ab8b304624c7fa674c1a0d7c3c7fe               name: 'OpenVPN bytes received by {#OVPN_USER}'               type:<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-350202","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/350202","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=350202"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/350202\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=350202"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=350202"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=350202"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}