├── HOW-TO-USE-HTTPPROXY-RU.md
├── HOW-TO-USE-HTTPPROXY.md
├── README.md
├── README.ru.md
├── patch
└── ZBXNEXT-5554.patch
├── zbx_export_mediatypes.xml
└── zbx_export_mediatypes_v5.xml
/HOW-TO-USE-HTTPPROXY-RU.md:
--------------------------------------------------------------------------------
1 | # Отправка уведомлений из Zabbix 4.4 в Telegram через Webhook использую HTTP прокси
2 |
3 | Использование HTTP прокси в Webhook станет возможным только в Zabbix v5.0, но я бэкпортировал патч (ZBXNEXT-5554) для версии 4.4
4 |
5 | Если Вы опытный пользователь, то сможете пересобрать Zabbix из исходников и применить данный патч.
6 |
7 | Сcылка на сам патч [здесь](https://github.com/CHERTS/zabbix_telegram_webhook/tree/master/patch)
8 |
9 | Ниже инструкции по пересборке Zabbix v4.4 из исходного кода под разные ОС.
10 |
11 | [Сборка на Oracle Linux 7 с поддержкой MySQL (MariaDB)](#oracle-linux-7)
12 |
13 | [Сборка на Red Hat Enterprise Linux 8 с поддержкой MySQL (MariaDB)](#red-hat-enterprise-linux-8)
14 |
15 | [Сборка на Ubuntu 18.04 LTS (Bionic Beaver) с поддержкой MySQL (MariaDB)](#ubuntu)
16 |
17 | # Oracle Linux 7
18 | ## Сборка на Oracle Linux 7 с поддержкой MySQL (MariaDB)
19 |
20 | ### 1. Для подготовки к сборки на Oracle Linux 7 нужно установить дополнительные пакеты:
21 |
22 | ~~~~
23 | yum group install "Development Tools"
24 | yum-config-manager --enable ol7_optional_latest
25 | yum-config-manager --enable ol7_developer
26 | yum install -y wget unzip gettext java-1.8.0-openjdk libxml2-devel openssl-devel libcurl-devel net-snmp-devel libevent-devel sqlite-devel pcre-devel libssh2-devel OpenIPMI-devel unixODBC-devel openldap-devel
27 | yum install -y MariaDB-client MariaDB-devel MariaDB-shared
28 | ~~~~
29 |
30 | ### 2. Скачать и распаковать свежую версию исходного кода и применить патч ZBXNEXT-5554:
31 |
32 | ~~~~
33 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
34 | tar -zxf zabbix-4.4.8.tar.gz
35 | cd zabbix-4.4.8
36 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
37 | patch -p0 < ZBXNEXT-5554.patch
38 | ~~~~
39 |
40 | ### 3. Сборка всех компонентов Zabbix с поддержкой (MariaDB) MySQL:
41 |
42 | ~~~~
43 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
44 | make
45 | ~~~~
46 |
47 | ### 4. После успешной сборки на шаге 3 можно использовать бинарный файл zabbix_server, скопируем его в текущий каталог:
48 |
49 | ~~~~
50 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
51 | ~~~~
52 |
53 | Проверим наличие бинарных файлов:
54 |
55 | ~~~~
56 | # ls -l | grep 'zabbix_'
57 | -rwxr-xr-x 1 root root 9768704 Jan 14 08:46 zabbix_server_mysql_v444
58 | ~~~~
59 |
60 | Теперь Вы можете остановить свои zabbix-server и заменить его данной сборкой.
61 |
62 | Так же Вам нужно заменить 1 файл в web-frontend:
63 | ~~~~
64 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
65 | ~~~~
66 |
67 | # Red Hat Enterprise Linux 8
68 | ## Сборка на Red Hat Enterprise Linux 8 с поддержкой MySQL (MariaDB)
69 |
70 | ### 1. Для подготовки к сборки на Red Hat Enterprise Linux 8 нужно установить дополнительные пакеты:
71 |
72 | ~~~~
73 | dnf group install "Development Tools"
74 | dnf install -y wget unzip gettext java-1.8.0-openjdk java-1.8.0-openjdk-devel libxml2-devel openssl-devel libcurl-devel net-snmp-devel libevent-devel sqlite-devel pcre-devel unixODBC-devel openldap-devel
75 | dnf install -y mariadb-devel
76 | subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms
77 | yum module enable -y virt-devel
78 | dnf install -y libssh2-devel OpenIPMI-devel
79 | ~~~~
80 |
81 | ### 2. Скачать и распаковать свежую версию исходного кода:
82 |
83 | ~~~~
84 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
85 | tar -zxf zabbix-4.4.8.tar.gz
86 | cd zabbix-4.4.8
87 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
88 | patch -p0 < ZBXNEXT-5554.patch
89 | ~~~~
90 |
91 | ### 3. Сборка всех компонентов Zabbix с поддержкой (MariaDB) MySQL:
92 |
93 | ~~~~
94 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
95 | make
96 | ~~~~
97 |
98 | ### 4. После успешной сборки на шаге 3 можно использовать бинарные файлы zabbix, скопируем их в текущий каталог:
99 |
100 | ~~~~
101 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
102 | ~~~~
103 |
104 | Проверим наличие бинарных файлов:
105 |
106 | ~~~~
107 | # ls -l | grep 'zabbix_'
108 | -rwxr-xr-x 1 root root 9768704 Jan 14 08:46 zabbix_server_mysql_v444
109 | ~~~~
110 |
111 | Теперь Вы можете остановить свои zabbix-server и заменить его данной сборкой.
112 |
113 | Так же Вам нужно заменить 1 файл в web-frontend:
114 | ~~~~
115 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
116 | ~~~~
117 |
118 | # Ubuntu
119 | ## Сборка на Ubuntu 18.04 LTS (Bionic Beaver) с поддержкой MariaDB
120 |
121 | ### 1. Для подготовки к сборки на Ubuntu 18.04 нужно установить дополнительные пакеты:
122 |
123 | ~~~~
124 | sudo apt-get update
125 | sudo apt-get install -y autoconf automake gcc make wget unzip gettext default-jdk libxml2-dev libssl-dev libcurl4-openssl-dev libsnmp-dev libevent-dev libsqlite3-dev libpcre2-dev libssh2-1-dev libmariadbclient-dev-compat libopenipmi-dev unixodbc-dev libldap2-dev
126 | ~~~~
127 |
128 | ### 2. Скачать и распаковать свежую версию исходного кода:
129 |
130 | ~~~~
131 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
132 | tar -zxf zabbix-4.4.8.tar.gz
133 | cd zabbix-4.4.8
134 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
135 | patch -p0 < ZBXNEXT-5554.patch
136 | ~~~~
137 |
138 | ### 3. Сборка всех компонентов Zabbix с поддержкой (MariaDB) MySQL:
139 |
140 | ~~~~
141 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-jabber --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
142 | make
143 | make gettext
144 | ~~~~
145 |
146 | ### 4. После успешной сборки на шаге 3 можно использовать бинарные файлы zabbix, скопируем их в текущий каталог:
147 |
148 | ~~~~
149 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
150 | ~~~~
151 |
152 | Проверим наличие бинарных файлов:
153 |
154 | ~~~~
155 | # ls -l | grep 'zabbix_'
156 | -rwxr-xr-x 1 root root 9768704 Jan 14 08:46 zabbix_server_mysql_v444
157 | ~~~~
158 |
159 | Теперь Вы можете остановить свои zabbix-server и заменить его данной сборкой.
160 |
161 | Так же Вам нужно заменить 1 файл в web-frontend:
162 | ~~~~
163 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
164 | ~~~~
165 |
--------------------------------------------------------------------------------
/HOW-TO-USE-HTTPPROXY.md:
--------------------------------------------------------------------------------
1 | # Sending notifications from Zabbix 4.4 to Telegram via Webhook using HTTP proxies
2 |
3 | Using HTTP proxies in Webhook will be possible only in Zabbix v5.0, but I backported the patch (ZBXNEXT-5554) for version 4.4
4 |
5 | If you are an experienced user, you can rebuild Zabbix from the source and apply this patch.
6 |
7 | Link to the patch [itself](https://github.com/CHERTS/zabbix_telegram_webhook/tree/master/patch)
8 |
9 | Below are instructions for rebuilding Zabbix v4.4 from source code for different OS.
10 |
11 | [Build on Oracle Linux 7 with MySQL (MariaDB) support](#oracle-linux-7)
12 |
13 | [Build on Red Hat Enterprise Linux 8 with MySQL (MariaDB) support](#red-hat-enterprise-linux-8)
14 |
15 | [Build on Ubuntu 18.04 LTS (Bionic Beaver) with MySQL (MariaDB) support](#ubuntu)
16 |
17 | # Oracle Linux 7
18 | ## Build on Oracle Linux 7 with MySQL (MariaDB) support
19 |
20 | ### 1. To prepare for build on Oracle Linux 7, you need to install additional packages:
21 |
22 | ~~~~
23 | yum group install "Development Tools"
24 | yum-config-manager --enable ol7_optional_latest
25 | yum-config-manager --enable ol7_developer
26 | yum install -y wget unzip gettext java-1.8.0-openjdk libxml2-devel openssl-devel libcurl-devel net-snmp-devel libevent-devel sqlite-devel pcre-devel libssh2-devel OpenIPMI-devel unixODBC-devel openldap-devel
27 | yum install -y MariaDB-client MariaDB-devel MariaDB-shared
28 | ~~~~
29 |
30 | ### 2. Download and unzip the latest version of the source code:
31 |
32 | ~~~~
33 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
34 | tar -zxf zabbix-4.4.8.tar.gz
35 | cd zabbix-4.4.8
36 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
37 | patch -p0 < ZBXNEXT-5554.patch
38 | ~~~~
39 |
40 | ### 3. Build all Zabbix components with MySQL (MariaDB) support:
41 |
42 | ~~~~
43 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-jabber --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
44 | make
45 | ~~~~
46 |
47 | ### 4. After successful build, in step 3 you can use zabbix binaries, copy them to the current directory:
48 |
49 | ~~~~
50 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
51 | ~~~~
52 |
53 | Check for the presence of binary files:
54 |
55 | ~~~~
56 | # ls -l | grep 'zabbix_'
57 | -rwxr-xr-x 1 root root 6405704 Oct 9 21:28 zabbix_server_mysql_v444
58 | ~~~~
59 |
60 | Congratulations! Now you can stop your zabbix-server and replace it with this assembly.
61 |
62 | You also need to replace 1 file in the web-frontend:
63 | ~~~~
64 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
65 | ~~~~
66 |
67 | # Red Hat Enterprise Linux 8
68 | ## Build on Red Hat Enterprise Linux 8 with MySQL (MariaDB) support
69 |
70 | ### 1. To prepare for build on Red Hat Enterprise Linux 8, you need to install additional packages:
71 |
72 | ~~~~
73 | dnf group install "Development Tools"
74 | dnf install -y wget unzip gettext java-1.8.0-openjdk java-1.8.0-openjdk-devel libxml2-devel openssl-devel libcurl-devel net-snmp-devel libevent-devel sqlite-devel pcre-devel unixODBC-devel openldap-devel
75 | dnf install -y mariadb-devel
76 | subscription-manager repos --enable=codeready-builder-for-rhel-8-x86_64-rpms
77 | yum module enable -y virt-devel
78 | dnf install -y libssh2-devel OpenIPMI-devel
79 | ~~~~
80 |
81 | ### 2. Download and unzip the latest version of the source code:
82 |
83 | ~~~~
84 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
85 | tar -zxf zabbix-4.4.8.tar.gz
86 | cd zabbix-4.4.8
87 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
88 | patch -p0 < ZBXNEXT-5554.patch
89 | ~~~~
90 |
91 | ### 3. Build all Zabbix components with MySQL (MariaDB) support:
92 |
93 | ~~~~
94 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
95 | make
96 | ~~~~
97 |
98 | ### 4. After successful build, in step 3 you can use zabbix binaries, copy them to the current directory:
99 |
100 | ~~~~
101 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
102 | ~~~~
103 |
104 | Check for the presence of binary files:
105 |
106 | ~~~~
107 | # ls -l | grep 'zabbix_'
108 | -rwxr-xr-x. 1 root root 7140712 Oct 14 23:37 zabbix_server_mysql_v444
109 | ~~~~
110 |
111 | Congratulations! Now you can stop your zabbix-server and replace it with this assembly.
112 |
113 | You also need to replace 1 file in the web-frontend:
114 | ~~~~
115 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
116 | ~~~~
117 |
118 | # Ubuntu
119 | ## Build on Ubuntu 18.04 LTS (Bionic Beaver) with MySQL (MariaDB) support
120 |
121 | ### 1. To prepare for build on Ubuntu 18.04, you need to install additional packages:
122 |
123 | ~~~~
124 | sudo apt-get update
125 | sudo apt-get install -y autoconf automake gcc make wget unzip gettext default-jdk libxml2-dev libssl-dev libcurl4-openssl-dev libsnmp-dev libevent-dev libsqlite3-dev libpcre2-dev libssh2-1-dev libmariadbclient-dev-compat libopenipmi-dev unixodbc-dev libldap2-dev
126 | ~~~~
127 |
128 | ### 2. Download and unzip the latest version of the source code:
129 |
130 | ~~~~
131 | wget https://cdn.zabbix.com/stable/4.4.8/zabbix-4.4.8.tar.gz
132 | tar -zxf zabbix-4.4.8.tar.gz
133 | cd zabbix-4.4.8
134 | wget https://raw.githubusercontent.com/CHERTS/zabbix_telegram_webhook/master/patch/ZBXNEXT-5554.patch
135 | patch -p0 < ZBXNEXT-5554.patch
136 | ~~~~
137 |
138 | ### 3. Build all Zabbix components with MySQL (MariaDB) support:
139 |
140 | ~~~~
141 | ./configure --with-libpthread --with-libpcre --with-libcurl --with-libxml2 --with-net-snmp --with-openssl --enable-ipv6 --with-ssh2 --with-jabber --with-openipmi --with-unixodbc --with-ldap --enable-server --sysconfdir=/etc/zabbix --with-mysql
142 | make
143 | ~~~~
144 |
145 | ### 4. After successful build, in step 3 you can use zabbix binaries, copy them to the current directory:
146 |
147 | ~~~~
148 | cp src/zabbix_server/zabbix_server zabbix_server_mysql_v444
149 | ~~~~
150 |
151 | Check for the presence of binary files:
152 |
153 | ~~~~
154 | # ls -l | grep 'zabbix_'
155 | -rwxr-xr-x 1 root root 6405704 Oct 9 21:28 zabbix_server_mysql_v444
156 | ~~~~
157 |
158 | Congratulations! Now you can stop your zabbix-server and replace it with this assembly.
159 |
160 | You also need to replace 1 file in the web-frontend:
161 | ~~~~
162 | # cp frontends/php/app/controllers/CControllerMediatypeEdit.php /your-web-frontend-root-directory/app/controllers
163 | ~~~~
164 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Sending notifications from Zabbix 4.4/5.0 to Telegram via Webhook
2 |
3 | [По-русски / In Russian](README.ru.md)
4 |
5 | [My blog article with a detailed description of the settings](https://translate.google.com/translate?sl=ru&tl=en&u=https%3A%2F%2Fblog.programs74.ru%2Fhow-to-send-message-from-zabbix-to-telegram-via-webhook%2F)
6 |
7 | [Using HTTP proxies for Webhook](HOW-TO-USE-HTTPPROXY.md)
--------------------------------------------------------------------------------
/README.ru.md:
--------------------------------------------------------------------------------
1 | # Отправка уведомлений из Zabbix 4.4/5.0 в Telegram через Webhook
2 |
3 | [In English / По-английски](README.md)
4 |
5 | [Статья в моем блоге с детальным описанием настройки](https://blog.programs74.ru/how-to-send-message-from-zabbix-to-telegram-via-webhook/)
6 |
7 | [Использование HTTP прокси для Webhook](HOW-TO-USE-HTTPPROXY-RU.md)
8 |
--------------------------------------------------------------------------------
/patch/ZBXNEXT-5554.patch:
--------------------------------------------------------------------------------
1 | [ZBXNEXT-5554] added webhook through proxy
2 | --- src/libs/zbxembed/httprequest.c.orig 2020-01-13 20:39:28.047863616 +0300
3 | +++ src/libs/zbxembed/httprequest.c 2020-01-13 20:40:28.373326654 +0300
4 | @@ -299,6 +299,26 @@
5 |
6 | /******************************************************************************
7 | * *
8 | + * Function: es_httprequest_set_proxy *
9 | + * *
10 | + * Purpose: CurlHttpRequest.SetProxy method *
11 | + * *
12 | + ******************************************************************************/
13 | +static duk_ret_t es_httprequest_set_proxy(duk_context *ctx)
14 | +{
15 | + zbx_es_httprequest_t *request;
16 | + CURLcode err;
17 | +
18 | + if (NULL == (request = es_httprequest(ctx)))
19 | + return duk_error(ctx, DUK_RET_TYPE_ERROR, "internal scripting error: null object");
20 | +
21 | + ZBX_CURL_SETOPT(ctx, request->handle, CURLOPT_PROXY, duk_to_string(ctx, 0), err);
22 | +
23 | + return 1;
24 | +}
25 | +
26 | +/******************************************************************************
27 | + * *
28 | * Function: es_httprequest_status *
29 | * *
30 | * Purpose: CurlHttpRequest.Status method *
31 | @@ -329,6 +349,7 @@
32 | {"Post", es_httprequest_post, 2},
33 | {"Delete", es_httprequest_delete, 2},
34 | {"Status", es_httprequest_status, 0},
35 | + {"SetProxy", es_httprequest_set_proxy, 1},
36 | {NULL, NULL, 0}
37 | };
38 |
39 | --- frontends/php/app/controllers/CControllerMediatypeEdit.php.orig 2020-01-13 20:38:39.133299030 +0300
40 | +++ frontends/php/app/controllers/CControllerMediatypeEdit.php 2020-01-13 20:39:18.036952727 +0300
41 | @@ -141,6 +141,7 @@
42 | 'event_menu_name' => $db_defaults['event_menu_name'],
43 | 'parameters' => [
44 | ['name' => 'URL', 'value'=> ''],
45 | + ['name' => 'HTTPProxy', 'value'=> ''],
46 | ['name' => 'To', 'value' => '{ALERT.SENDTO}'],
47 | ['name' => 'Subject', 'value' => '{ALERT.SUBJECT}'],
48 | ['name' => 'Message', 'value' => '{ALERT.MESSAGE}']
49 |
--------------------------------------------------------------------------------
/zbx_export_mediatypes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.4
4 | 2020-03-26T06:25:17Z
5 |
6 |
7 | Telegram via Webhook
8 | WEBHOOK
9 |
10 |
11 | chat_id
12 | {ALERT.SENDTO}
13 |
14 |
15 | disable_notification
16 | false
17 |
18 |
19 | disable_web_page_preview
20 | true
21 |
22 |
23 | HTTPProxy
24 |
25 |
26 |
27 | message
28 | {ALERT.MESSAGE}
29 |
30 |
31 | parse_mode
32 | HTML
33 |
34 |
35 | subj
36 | {ALERT.SUBJECT}
37 |
38 |
39 | token
40 | XXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41 |
42 |
43 |
116 | 5s
117 | YES
118 | YES
119 | {EVENT.TAGS.tg_message_url}
120 | View alert in Telegram
121 | Blog: https://blog.programs74.ru/
122 | Email: sleuthhound[at]programs74.ru
123 | Telegram: @CHERTS
124 | Version: 1.5
125 |
126 |
127 |
128 |
--------------------------------------------------------------------------------
/zbx_export_mediatypes_v5.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 5.0
4 | 2020-10-15T04:51:07Z
5 |
6 |
7 | Telegram via Webhook
8 | WEBHOOK
9 |
10 |
11 | chat_id
12 | {ALERT.SENDTO}
13 |
14 |
15 | disable_notification
16 | false
17 |
18 |
19 | disable_web_page_preview
20 | true
21 |
22 |
23 | HTTPProxy
24 |
25 |
26 |
27 | message
28 | {ALERT.MESSAGE}
29 |
30 |
31 | parse_mode
32 | HTML
33 |
34 |
35 | subj
36 | {ALERT.SUBJECT}
37 |
38 |
39 | token
40 | XXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
41 |
42 |
43 |
116 | 5s
117 | YES
118 | YES
119 | {EVENT.TAGS.tg_message_url}
120 | View alert in Telegram
121 | Blog: https://blog.programs74.ru/
122 | Email: sleuthhound[at]programs74.ru
123 | Telegram: @CHERTS
124 | Version: 1.5
125 |
126 |
127 |
128 |
--------------------------------------------------------------------------------