1. 前言

告警將重要信息發送給運維「或者其他相關人」,及時發現並且處理問題。在所有開源監控軟件裏面,Zabbix 的告警方式無疑是最棒的。告警的方式各式各樣,從 Email 告警到飛信、139/189郵箱、最後到微信甚至電話告警,接入存在各種問題以及困難,有沒有什麼軟件能夠將他們All In one呢?OneAlert
2. Zabbix傳統告警方法

Email:調用 sendmail 、sendEmail 等腳本通過 SMTP 發送郵件

飛信:飛信已經退出歷史舞台,不再有人使用

189/139:發送郵箱郵件至郵箱,郵箱將短信轉到用户手機短信,存在一定的延遲

微信:需要申請一個微信公眾號,並接入API,整個流程比較複雜,而且存在會話時間限制

短信:眾多短信網關收費不同、穩定性也不確定,需要通過API接入
3.傳統告警 VS OneAlert

在整個使用過程中,得出了傳統告警方式的不足以及給個了 OneAlert 告警的功能,具體如下:
3.1 傳統告警方式的不足

Zabbix 郵件告警經常發不出去
如需短信告警,要麼購買短信貓要麼購買短信 API,整個流程太麻煩
微信告警需要申請公眾號以及 API 接入,而且會話有時間限制
夜間的告警基本成為一個擺設,試問誰能被微弱的短信聲叫醒
阿里雲、騰訊雲、Zabbix 各種系統告警都需要單獨配置,工作繁瑣
普遍缺少告警分析
139/189 發送告警存在明顯的延遲

3.2 onealert告警功能

告警 All In One,支持微信、郵箱、短信、APP、電話告警
支持接入 Zabbix、Nagios、阿里雲、騰訊雲、監控寶等等告警信息
靈活的分配策略,可靈活的分配告警信息發送給相關人員
微信、郵箱、app 等告警方式全部免費

實驗環境

localhost:(server端) 172.25.24.1 linx7.3
server2 (agent端) 172.25.24.2 linux6.5
配置網絡使虛擬機可以上網

物理機:

[root@foundation24 zabbix]# iptables -t nat -I POSTROUTING -s 172.25.24.0/24 -j MASQUERADE

localhost:

root@localhost zabbix]# route add default gw  172.25.24.250
[root@localhost zabbix]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.25.24.250   0.0.0.0         UG    0      0        0 eth0
172.25.24.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
[root@localhost zabbix]# vim /etc/resolv.conf 
nameserver 114.114.114.114

[root@localhost zabbix]# ping www.baidu.com
PING www.baidu.com (183.232.231.173) 56(84) bytes of data.
64 bytes from 183.232.231.173 (183.232.231.173): icmp_seq=1 ttl=53 time=101 ms
64 bytes from 183.232.231.173 (183.232.231.173): icmp_seq=2 ttl=53 time=123
配置zabbix-server
[root@localhost zabbix]# vim /etc/zabbix/zabbix_server.conf   ##默認地址

zabbix支持telemetry嗎_zabbix支持telemetry嗎

安裝oneitsm_zabbix_release並創建連接

必須在系列路徑中進行安裝,這是zabbix-server配置文件中指定的位置

[root@localhost zabbix]# cd /usr/lib/zabbix/alertscripts/   
[root@localhost alertscripts]# ls
oneitsm_zabbix_release-1.2.0.tar.g
[root@localhost alertscripts]# tar zxf oneitsm_zabbix_release-1.2.0.tar.gz 
[root@localhost alertscripts]# cd oneitsm
[root@localhost oneitsm]# ls
bin  logs  release  update
[root@localhost oneitsm]# cd bin/     ##oneitsm連接腳本位置
在瀏覽器添加zabbix

zabbix支持telemetry嗎_Time_02


創建zabbix會有一個key ,這個key是用來連接zabbix和onealert的鑰匙

zabbix支持telemetry嗎_zabbix支持telemetry嗎_03

使用生成的key來建立連接
[root@localhost bin]# ./install.sh ce7f5ae4-b136-6dbf-6fb9-b18d8cf5d838     
./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
start to create config file...
Zabbix管理地址: http://172.25.24.1/zabbix
Zabbix管理員賬號: Admin
Zabbix管理員密碼:         ##密碼是用來登陸zabbix的密碼
start to auth by zabbix admin user and password...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   195  100    70  100   125    473    845 --:--:-- --:--:-- --:--:--   844
auth success!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   109  100    41  100    68    958   1589 --:--:-- --:--:-- --:--:--  1619
start to create mediatype...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   356  100    56  100   300    760   4073 --:--:-- --:--:-- --:--:--  4109
create media type success!
start to create user group...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   214  100    54  100   160    772   2289 --:--:-- --:--:-- --:--:--  2318
create user group success!
start to create user in zabbix...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   623  100    51  100   572    348   3909 --:--:-- --:--:-- --:--:--  3917
create user success!
start to create action...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2013  100    51  100  1962    249   9611 --:--:-- --:--:-- --:--:--  9617
create action success!
安裝成功.
在瀏覽器zabbix

查看動作

zabbix支持telemetry嗎_zabbix支持telemetry嗎_04

關閉agent報警媒介 ,留下onelism的

zabbix支持telemetry嗎_zabbix支持telemetry嗎_05

查看用户如下,oneltsm有超級管理員權限

zabbix支持telemetry嗎_微信_06

測試開始:

Server2停止zabbix-agent服務
[root@server2 bin]# /etc/init.d/zabbix-agent stop
Shutting down Zabbix agent:
過一段時間

zabbix支持telemetry嗎_mysql_07

同時伴隨着你的設置來進行微信或者電話等,不間斷通知,由於無法截圖就不再此敍述了。

onealert上

zabbix支持telemetry嗎_微信_08

重新開啓zabbix-agent
[root@server2 bin]# /etc/init.d/zabbix-agent start
Starting Zabbix agent:
查看zabbix(問題已解決)

zabbix支持telemetry嗎_zabbix支持telemetry嗎_09

查看onealert(問題已解決)

zabbix支持telemetry嗎_mysql_10


zabbix支持telemetry嗎_zabbix支持telemetry嗎_11

Server3 利用zabbix-haproxy 分擔server端壓力(主動模式)

root@server3 ~]# yum install zabbix-proxy-mysql-3.4.6-1.el6.x86_64.rpm  fping-2.4b2-16.el6.x86_64.rpm -y
[root@server3 zabbix]# yum install -y mysql-server
[root@server3 ~]# cd /etc/zabbix/
[root@server3 zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d  zabbix_proxy.conf
[root@server3 zabbix]# vim zabbix_proxy.conf

zabbix支持telemetry嗎_zabbix支持telemetry嗎_12


zabbix支持telemetry嗎_微信_13


zabbix支持telemetry嗎_zabbix支持telemetry嗎_14


zabbix支持telemetry嗎_Time_15

添加用户和表
[root@server3 zabbix]# /etc/init.d/mysqld start


mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on zabbix_proxy.* to zabbix@localhost identified by 'westos';
Query OK, 0 rows affected (0.00 sec)
添加zabbix庫
[root@server3 zabbix-proxy-mysql-3.4.6]# pwd
/usr/share/doc/zabbix-proxy-mysql-3.4.6

[root@server3 zabbix-proxy-mysql-3.4.6]# zcat schema.sql.gz | mysql -u zabbix -p zabbix_proxy
Enter password:
配置zabbix-proxy
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf

zabbix支持telemetry嗎_Time_16


zabbix支持telemetry嗎_zabbix支持telemetry嗎_17

開啓zabbix-proxy
root@server2 ~]# /etc/init.d/zabbix-agent restart
Shutting down Zabbix agent:                                [  OK  ]
Starting Zabbix agent:                                     [  OK  ]

zabbix支持telemetry嗎_zabbix支持telemetry嗎_18


zabbix支持telemetry嗎_zabbix支持telemetry嗎_19

zabbix支持telemetry嗎_微信_20