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 Server

在服务器10.128.17.136上安装

1.安装mysql

    \# yum -y install mysql mysql-server mysql-devel

MySQL 配置文件/etc/my.cnf中加入default-character-set=utf8

`\# vi /etc/my.cnf ` 加入`default-character-set=utf8 `

    \# service mysqld start

登陆,创建 Root 管理员

    \# mysqladmin -u root password 123456

登陆 MySQL

    \# mysql -uroot -p123456

创建 zabbix 数据库,并设置登陆权限

    mysql> create database zabbix character set utf8 collate utf8_bin;

`mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>'; `(我设置的密码为123456)

    mysql> \q

2.安装 php、Apache

    \ # yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml httpd

启动 Apache

    \# service httpd start

3. 安装 Zabbix Server 软件包

    \# 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 数据库中

    \# 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 配置文件

    \# vi /etc/zabbix/zabbix_server.conf

    DBHost=localhost

    DBName=zabbix

DBUser=zabbix(上面赋予的登陆权限的用户名)

DBPassword=123456(上面赋予登陆权限的密码)

    \# vi /etc/httpd/conf.d/zabbix.conf

将配置文件中替换成以下内容

    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

    \#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

    \#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

    \#service zabbix-agent restart`

Zabbix Agent 安装完毕后,需要登录 Zabbix Server加入该机器

好了,Zabbix Agent 安装完毕。

Zabbix 集成 OneAlert

下载 OneAlert Agent

    \#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

    \# 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

  • 主题为triggerresolve,意味着告警触发和恢复都会同步到110monitor

  • 设置告警内容,注意冒号「:」前的内容不可变更,冒号「:」后的内容可以自行编辑

        alarmName:{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 、短信、邮件

     \#tail -f /usr/lib/zabbix/alertscripts/alert-agent/log/agent.log

正常返回success即表示成功

    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 邮箱等间接短信配置提醒方式。

本文系 OneAPM 工程师编译整理。想阅读更多技术文章,请访问 OneAPM 官方博客

Zabbix 安装及微信短信提醒的更多相关文章

  1. Nagios 安装及微信短信提醒

    引言 Nagios 作为业界非常强大的一款开源监视系统. 监控网络服务(SMTP.POP3.HTTP.NNTP.PING 等): 监控主机资源(处理器负荷.磁盘利用率等): 简单地插件设计使得用户可以 ...

  2. 功能:使用QQ号登陆,并加上微信和短信提醒,是否增量备份可选,阿里大鱼短信发送开发与测试,聚合数据(用JSON发短信,比较清楚)

    微博就可以,所以其它软件也可以http://desktop.weibo.com/ http://blog.csdn.net/jueblog/article/details/14497181http:/ ...

  3. android-----test------模拟来电提醒和短信提醒

    为了测试应用是否能处理来电提醒和短信提醒时正常处理,我们需要做个测试,怎么模拟来电提醒和短信提醒呢?? 采用Telnet 命令来模拟. 1.首先看看Telnet 命令是否可以使用,如果不可以使用,则需 ...

  4. zabbix通过脚本发送短信

    zabbix通过脚本发送短信 原则 和zabbix电子邮件是一样的,他们是action内部配置,司的api来完毕.当然网上有不少利用139邮箱来发的,这个事实上算调用email的一种,这里复述的是调用 ...

  5. zabbix告警邮件、短信发送错误快速排查方法

    zabbix告警邮件.短信发送错误快速排查方法 背景 zabbix告警邮件.短信经常有同事反馈发送错误的情况,这个问题排查的角度很多,那么最快捷的角度是什么呢? 在我看来,最快的角度就是判断这个告警邮 ...

  6. zabbix实现电话、短信、邮件报警

    该报警方式提前说明:(1)该方式可以实现zabbix免费电话报警以及微信.短信.邮件报警,但有数量限制.详见如下:如数量不能满足需要以及人员需要,可以考虑购买收费版.(2)毕竟是免费版,电话通知要省着 ...

  7. centos7之zabbix邮件报警(短信报警)

    前言 前面我们介绍了zabbix的基本linux和window及SNMP流量的简单监控,我们知道作为运维人员,需要7x24小时待命,但是我们不可能时时刻刻都坐在电脑旁边查看监控上的各个主机状态,所以我 ...

  8. 043 用户注册功能03--Redis安装及完成短信发送功能

    1.Redis安装 (1)下载地址:https://github.com/MicrosoftArchive/redis/releases/tag/win-3.2.100   ( redis官网: ht ...

  9. Zabbix使用第三方API短信报警

    之前试过邮件告警,微信告警.但是,对于一些企业的重要业务服务器,可能是存放在隔离的内网中的,无法正常连接外网.这个时候,就有必要考虑一下使用短信告警.以下这个其实还是需要服务器能够连接到外网的,但是我 ...

随机推荐

  1. (转)Yale CAS + .net Client 实现 SSO(4)

    第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 第三部分:实现 ASP.NET WebForm Client 第四部分:实现基于数据库的身份验证 1.下载 Microsoft JDBC ...

  2. hdu 2544 最短路 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目分析:比较简单的最短路算法应用.题目告知起点与终点的位置,以及各路口之间路径到达所需的时间, ...

  3. Fragstats软件使用及其景观生态学意义

    [转]Fragstats软件使用及其景观生态学意义     原文地址:http://blog.163.com/shuailai@126/blog/static/13238040820104152513 ...

  4. 《RPM源码包的制作》RHEL6

    一下rpm包的创建不含编译部分: 首先写个脚本,这个脚本是你想干的事..useradd.sh是我写的脚本,批量添加20个用户.我们创建一个目录,将脚本放进去: 将此目录压缩: 我们将校验的key导出: ...

  5. c语言结构体指针初始化

    今天来讨论一下C中的内存管理. 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 我说所有指针使用前都必须初始化,结构体中的成员指针也是一样 有人反驳说,不是吧,以前做二叉树算法时,他的左 ...

  6. php随机验证码

    今天同学问我,用php怎么写验证码,由于是新手所以花了半天的时间才完成.而且功能很是简单呵呵.今天本来打算写session和cookie的看来是要明天了. <?php $image_width= ...

  7. Linq--扩展方法

    如果现在有一个这样的需求,求筛选出来的大于20MB的进程的和,常用的方法是写一个静态方法传进去一个ProcessData列表 比如: public static Int64 TotalMemory( ...

  8. MvvmCross for WPF File Plugin

    本文以MvvmCross为框架基础 最近用了File Plugin插件,一开始也是没用明白,写一下记录下来,也方便需要的人吧 首先这个File Plugin需要先在UI项目里创建一个Bootstrap ...

  9. JavaScript 代码片段

    1.无题 if (i && i.charAt(i.length - 1) == "/") { i = i.substr(0, i.length - 1) } 2.无 ...

  10. python之range(), xrange()

    可以这样理解: range()立即执行,返回结果 xrange()延迟执行,需要时再返回结果.