- A+
Zabbix简介
Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐。Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CPU 负荷,内存使用,网络状况,端口监视,日志监视等等等等指标!)。监控指标的广度是一方面,它强大的功能特点也省去了很多的配置操作。
Zabbix 功能特点:
- 自动发现服务器和网络设备
- 分布式监控网络,集中式管理(agent 、server 分开)
- 监控指标模版丰富
- 可灵活地分配用户权限
- 系统各个指标的可视化展示和分析等等
如何让 Zabbix 更加完美?
虽然 Zabbix 在功能上非常强大,但是它在通知层面也并非十全十美:
- 它现在的告警方式比较单一,默认支持邮件。
- 相信很多运维工作者对短信的告警已经再熟悉不过了,甚至已经存在抵触的心理,但还是期望 Zabbix 可以支持短信。 Zabbix 支持的短信方式需要进行短信网关对接,复杂度较高。
- 而且短信的告警并非是一个好的方式,虽然发送了告警信息,同样会存在疏漏的情况,而且这种情况发生的概率并不是很低。
那么有效的告警方式、告警信息的到达率对运维同学具有很大的意义,相信也是小朋友们非常关注的。就算 Zabbix 监控的在全面和准确,但是如果没有及时的通知并解决,那么就是然并卵。酒再香总要卖出去,如果没有好的告警平台,总觉得 Zabbix 少了点什么。如果配上一个好的告警平台了,那么就 Perfect 了!分享个工具 OneAlert ,该平台可以通过简单的方式集成 Zabbix 告警。
- 如果你是 Zabbix 的忠实粉丝,而且一直在使用它来监控服务器,是否想通过一个告警平台更好的将告警信息及时传达到您的手中?而且这个平台还可以进行事件的升级和排班等功能。
- 如果你没使用过 Zabbix,但是也听说过它功能的强大之处,为何不一起加入 Zabbix 的大家庭中,来共同感受这个免费开源软件的魅力,以及带给我们的价值呢?
那么本文将给您如何快速搭建 Zabbix 监控服务器,如何将 Zabbix 集成到OneAlert 告警平台上,实现微信和短信通知。
安装说明
从0开始安装Zabbix
如果你从来没有接触过 Zabbix ,请按照以下步骤安装 Zabbix ,下面以 Zabbix 2.4.1+OneAlert 实现监控和微信提醒
- Zabbix 服务器: 10.128.17.136 CentOS 6.4 64bit
- 被监控机器: 10.128.17.137 CentOS 6.4 64bit
也可以参考官网安装
Zabbix 集成在 OneAlert
如果你对 Zabbix 非常熟悉或者机器中已经安装,请跳过安装步骤,直接进入OneAlert的Zabbix报警设置。
安装 Zabbix Server
在服务器10.128.17.136上安装
1.安装mysql
1 2 |
\# yum -y install mysql mysql-server mysql-devel |
MySQL 配置文件/etc/my.cnf
中加入default-character-set=utf8
\# vi /etc/my.cnf
加入default-character-set=utf8
1 2 |
\# service mysqld start |
登陆,创建 Root 管理员
1 2 |
\# mysqladmin -u root password 123456 |
登陆 MySQL
1 2 |
\# mysql -uroot -p123456 |
创建 zabbix 数据库,并设置登陆权限
1 2 |
mysql> create database zabbix character set utf8 collate utf8_bin; |
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
(我设置的密码为123456)
1 2 |
mysql> \q |
2.安装 php、Apache
1 2 |
\ # yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml httpd |
启动 Apache
1 2 |
\# service httpd start |
3. 安装 Zabbix Server 软件包
1 2 3 4 5 6 |
\# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm \# yum install zabbix-server-mysql zabbix-web-mysql \# yum install zabbix-agent |
将数据库文件导入到 zabbix 数据库中
1 2 3 4 5 6 7 8 |
\# cd /usr/share/doc/zabbix-server-mysql-2.4.0/create \# mysql -uroot -p123456 zabbix < schema.sql(登陆的用户名和密码) \# mysql -uroot -p123456 zabbix < images.sql \# mysql -uroot -p123456 zabbix < data.sql |
编辑 zabbix-server 配置文件
1 2 3 4 5 6 |
\# vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix |
DBUser=zabbix
(上面赋予的登陆权限的用户名)
DBPassword=123456
(上面赋予登陆权限的密码)
1 2 |
\# vi /etc/httpd/conf.d/zabbix.conf |
将配置文件中替换成以下内容
1 2 3 4 5 6 7 8 9 10 11 12 |
php_value max_execution_time 300 php_value memory_limit 128M php_value post_max_size 16M php_value upload_max_filesize 2M php_value max_input_time 300 php_value date.timezone Asia/Shanghai |
配置完成,重新启动zabbix_server
1 2 |
\#servcice zabbix-server restart |
登陆安装zabbix http://ip
地址/zabbix(http://10.128.17.136/zabbix)
如果此步骤出现问题,请确认/etc/httpd/conf.d/zabbix.conf
中的配置正确
配置操作图如下所示:
User 和 Password 为上面设置的用户名和密码
DBUse r=zabbix(上面赋予的登陆权限的用户名)
DBPassword =123456(上面赋予登陆权限的密码)
输入 Hostname 与否都可以。
Zabbix 安装完成
安装 Zabbix Agent
在被监控服务器10.128.17.137
上安装Zabbix Agent
1 2 3 4 |
\#rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm \#yum install zabbix-agent |
修改配置/etc/zabbix/zabbix_agentd.conf
,将server
设置Server=10.128.17.136
1 2 |
\#service zabbix-agent restart` |
Zabbix Agent 安装完毕后,需要登录 Zabbix Server加入该机器
好了,Zabbix Agent 安装完毕。
Zabbix 集成 OneAlert
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
\#wget http://cdn.110monitor.com/open/download/alert-agent-4.0.1-RC4.tar.gz \#tar xvf alert-agent-4.0.1-RC2.tar.gz \#cp -R alert-agent /usr/lib/zabbix/alertscripts \#cd /usr/lib/zabbix/alertscripts \#chown -R zabbix:zabbix alert-agent \#cp alert-agent/plugin/zabbix-plugin/110monitor/ usr/lib/zabbix/alertscripts/ \#chmod +x /usr/lib/zabbix/alertscripts/110monitor |
注意!源码安装的盆友需要注意看配置文件/etc/zabbix/zabbix_server.conf
1 2 3 4 |
\# AlertScriptsPath=/zabbix/alertscripts AlertScriptsPath=/usr/lib/zabbix/alertscripts |
请将 Agent 更新至 AlertScriptsPath 目录中
alert-agent
目录和110monitor
需要放在同一级目录里面
1.创建 110monitor 通知方式
创建媒体类型 Media types,,“Administrator”->“Media types”->“Create media type”
采用脚本模式script
,脚本名为110monitor
. 系统会在/usr/lib/zabbix/alertscripts/
下查找上面的110monitor
指令
2.创建110monitor用户
创建用户110monitor
并设置通知媒介,登录 zabbix,“Administrator”->“Users”->“create user”
- 将
110monitor
用户加入到"Zabbix Administrator
组"或者是新建组 - 媒体类型,添加
110monitor
,并且设置appkey
为发送目标 - 设置所有权限
"Zabbix Super Admin"
新建 110monitor 用户
设置媒介类型
设置权限
3.创建触发动作发送通知
创建告警通知策略,"Configurationg"->"Actions"->"Create action"
- 名称
110monitor
- 主题为
trigger
和resolve
,意味着告警触发和恢复都会同步到110monitor
- 设置告警内容,注意冒号「:」前的内容不可变更,冒号「:」后的内容可以自行编辑
12345678alarmName:{TRIGGER.NAME}entityName:{HOSTNAME}entityId:{IPADDRESS}value:{TRIGGER.VALUE}eventId:{EVENT.ID}priority:{TRIGGER.SEVERITY}alarmContent:{IPADDRESS} {ITEM.NAME}:{ITEM.VALUE}
注意!自行配制的通知模板是不行的,需要严格按照以上配置。
4.测试验证
将被监控机器 10.128.17.137 的 Ping 禁用下,验证一把。请确认该机器加了"Template ICMP Ping"
监控模版,禁用 ping 测试是否正常通知
\#echo 1 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all
禁 ping (看是否配置成功,成功就恢复 ping )
\#echo 0 > /proc/sys/net/ipv4/icmp\_echo\_ignore_all
恢复 ping
查看 Agent 日志,出现 sucess 字样代表成功,如果发送告警通知,则会同步发送微信、移动 app 、短信、邮件
1 2 |
\#tail -f /usr/lib/zabbix/alertscripts/alert-agent/log/agent.log |
正常返回success
即表示成功
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
15-05-2015 18:16:17,698 CST INFO [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ... 15-05-2015 18:16:18,048 CST INFO [main] [com.upyoo.agent.ZabbixClient@68] start to call alert ... 15-05-2015 18:16:18,057 CST INFO [main] [com.upyoo.agent.CommandClient@82] app:04b9832b- 14b4-4c61-343d-5926ff8af672 15-05-2015 18:16:18,057 CST INFO [main] [com.upyoo.agent.CommandClient@82] eventType:trigger 15-05-2015 18:16:18,059 CST INFO [main] [com.upyoo.agent.CommandClient@82] alarmName:10.128.17.137 is unavailable by ICMP 15-05-2015 18:16:18,059 CST INFO [main] [com.upyoo.agent.CommandClient@82] entityName:10.128.17.137 15-05-2015 18:16:18,060 CST INFO [main] [com.upyoo.agent.CommandClient@82] entityId:10.128.17.137 15-05-2015 18:16:18,061 CST INFO [main] [com.upyoo.agent.CommandClient@82] eventId:280 15-05-2015 18:16:18,061 CST INFO [main] [com.upyoo.agent.CommandClient@82] priority:Average 15-05-2015 18:16:18,062 CST INFO [main] [com.upyoo.agent.CommandClient@82] alarmContent:10.128.17.137 ICMP ping:Down (0) 15-05-2015 18:16:18,067 CST INFO [main] [com.upyoo.agent.CommandClient@58] start to post url:http://api.110monitor.com/alert/api/event 15-05-2015 18:16:18,144 CST INFO [main] [com.upyoo.agent.CommandClient@65] body: {"app":"04b9832b-14b4-4c61-343d-5926ff8af672","alarmContent":"10.128.17.137 ICMP ping:Down(0)","eventId":"280","priority":"3","entityId":"10.128.17.137","alarmName":"10.128.17.137 is unavailable by ICMP","eventType":"trigger","entityName":"10.128.17.137"} 15-05-2015 18:16:18,728 CST INFO [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3690","totalCount":0,"code":"200"} |
5.微信告警
添加成功之后,进入 OneAlert 控制台,用微信进行扫码即可用微信实现报警。
6.电话短信报警
通过设置提醒,可以选择告警的方式是电话、短信还是微信 APP 告警, OneAlert 提供多种方式和多策略的提醒方式
完成
恭喜你 完成 Zabbix 集成配置,微信即可接收告警提醒,并通过”我的告警“查询所有未处理告警哦。
注意!注册完毕后默认仅发送邮件提醒,请关注微信号alert110
,或者到用户 -> 具体用户
下配置短信提醒规则。或参考提醒设置
亲,到现在可以抛弃老的 139 邮箱、飞信、短信猫、qq 邮箱等间接短信配置提醒方式。
OneAlert 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有IT事件,提升IT可靠性。想了解更多信息,请访问 OneAlert 官网 。

04/03/2017 下午 12:10 沙发
一点惊喜都没有,还以为有什么新的支持微信告警呢,原来还是onealert,这个现在都开始要收费了,没意思
08/09/2016 下午 2:57 板凳
文章里面好几个图片显示不出来
14/04/2016 下午 5:35 地板
哎,没做成功,我想问一下appkey这个值是唯一的吗?写这个文章上面的appkey可以吗?
14/04/2016 下午 6:08 1层
@匿名 去后台申请
25/02/2016 下午 2:03 4楼
onealert啥时候能够一键集成zabbix就完美了!现在都可以一键集成nagios了。
07/03/2016 下午 2:26 1层
@欣酱 已经可以一键集成zabbix了。不用谢。
11/12/2015 下午 6:50 5楼
为什么httpd启动后发现没有页面呢?
10/12/2015 下午 5:31 6楼
同楼上 想问一下创建110之后添加的send to 的appkey是什么?是不是微信的appkey值?
10/12/2015 下午 7:21 1层
@周翔 登录onealert后台创建
24/02/2016 上午 9:57 1层
@周翔 app key登陆OneAlert平台创建应用后就能够获取了
24/02/2016 上午 9:57 1层
@周翔 app key登陆OneAlert平台创建应用后就能够获取了
10/12/2015 下午 5:08 7楼
请问应用appkey怎么获取呢?
10/12/2015 下午 7:21 1层
@shangjieyi 登录onealert后台创建
11/12/2015 上午 10:27 2层
@运维生存时间 弱弱的问一句,onealert的后台网址是多少。。
11/12/2015 上午 10:32 3层
@shangjieyi oh…知道了。。
24/02/2016 上午 9:57 1层
@shangjieyi app key登陆OneAlert平台创建应用后就能够获取了