近一步了解监控大师Zabbix
本帖最后由 monicazhang 于 2017-9-21 16:49 编辑苏小研:今天小研很荣幸请到了监控界的明星:Zabbix(掌声雷动)Zabbix:大家好,我叫Zabbix,是一款企业级、分布式的监控套件苏小研:既然是分布式设计,那一定具有分布式系统普遍具有的特性吧?Zabbix:是的,可以有效避免由单点故障引起的整个系统异常的情况、将负载由单点转移到多个机器上,从而提升系统效率苏小研:嗯,大家都知道Zabbix不仅功能强大,而且产品完全开源哦,说道开源,大家或许会想到另一款监控套件Nagios,那么您本尊如何看待两者之间的异同点呢?Zabbix:这是一个老生常谈的问题了,几乎每次都会有伙伴们关心这个,他们总是在犹豫如何在我俩之间选型(微笑)。首先说下我的职责,我主要为大家提供网络及应用相关的监控服务,可以对监控数据进行存储,为大家提供强大的图形及报告服务,更直观告诉大家指标变化的趋势,另外我还可以提供邮件告警服务,提醒大家及时处理相关问题,避免损失;Nagios几乎也能提供相同的功能,但是Nagios的监控是插件机制,相对独立,需要自行拼装,我那属于开箱即用型,装上啥都有了,哈哈,但反过来想这也带来一些问题,就是我维护起来相对困难,Nagios就显得较轻量、灵活;说实话我始终觉得我的图表能力是无人能及的,呵呵,所以我俩之间没有更好只有更合适吧,主要是看大家是怎么样的需求啦苏小研:嗯嗯,您的图表呈现能力堪称一绝,大家适合的才是最好的;您这么全面强大的功能背后是那些伙伴在支撑呢?能给大家介绍下吗?Zabbix:没问题,我的家庭里有agentd和server两位大牛,分别负责收集客户端的监控数据和服务端数据汇总;由get、sender两位小兄弟提供获取和发送数据的命令行功能,一般在排错时使用;另外还有代理服务proxy、java网关java_gateway为大型项目提供一些特殊化服务,功能分别类似于server和agentd苏小研:很协调的集体,大家分工明确,为用户提供优质服务,小研还了解到您还提供丰富的API接口,用户可以定制化开发自己的应用产品,说到开发小研想问下用户产品对接Zabbix监控开发成本大吗?Zabbix:可以这么说,我是一次配置终生监控,用户对接我们很方便,监控项采用模板配置,支持添加组并且模板可以继承;我们能够自动发现网络设备、自动注册agent端、自动发现文件系统、网卡设备等;并且所有配置操作不需要敲代码,可通过我们提供的web页面进行操作;而且我是通过C语言开发,具有高能低耗、易移植的优点,server与agent之间通信具有安全认证机制,安全可靠;另外如你所说我们提供几乎所有操作的API服务,可很方便的接入到第三方程序苏小研:小研听了都迫不及待的想试试呢,在这里能为我们提供一个入门级的demo吗?Zabbix:听说你们RDS产品就是使用我们来监控数据库的一些操作及状态,那么今天我就以监控mysql数据库为例,为大家提供一个从部署到监控的简单demo吧苏小研:嗯嗯,大家赶紧把耳朵掏掏干净,哈哈Zabbix:首先我们准备两台机器,假设IP分别为10.132.49.108、10.132.49.109;我们官网提供了各种版本的yum源,方便大家安装配置,我们以部署3.2版本为例,首先在10.132.49.108上配置Server端:(1)配置yum源 rpm -ivhzabbix/3. ... .2-1.el7.noarch.rpm(2)安装server服务及web端页面服务 yum installzabbix-server-mysql zabbix-web-mysql苏小研:不好意思,打断下这里的mysql是指zabbix存储数据使用的数据库引擎吗?Zabbix:对,我支持四种类型的数据库引擎:Oracle、PostgreSQL、SQlite和Mysql,大家可以根据自身的硬件性能、服务器的繁忙程度等选择数据库引擎;我很喜欢大家随时提问,这样我们可以更好的进行交流;下面继续,为节省资源我们直接在Server机器上安装mysql数据库服务:(1)创建zabbix数据库并通过zabbix用户管理数据库 create database zabbix default charset utf8; grant all privileges on zabbix.* tozabbix@localhost identified by '123456';(2)导入zabbix数据库的管理数据表,可以在安装目录的database目录下找到三个sql文件 mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql mysql -uzabbix -p123456 zabbix <database/mysql/images.sql mysql -uzabbix -p123456 zabbix <database/mysql/data.sql(3)对Server配置文件进行修改,添加数据库信息 vi /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123456(4)调整zabbix记录时间的时区 vim /etc/httpd/conf.d/zabbix.conf php_value date.timezone Asia/Shanghai另外机器还应具有web服务环境,以便于zabbixweb服务可正常使用,在这里我们使用httpd服务(5)启动server服务、httpd服务并加入开机自启动 systemctl start zabbix-server systemctl enable zabbix-server systemctl start httpd systemctl enable httpd好了,目前server端的部署已经完成了苏小研:什么?这就部署好了,太简便了吧Zabbix:是啊,这就是我们的优点:快速部署,下面大家可以通过web服务来进行相关配置(1)进入主页面 zabbix(2)环境预检测,主要验证web服务是否能够正常启用(3)配置数据库链接信息(4)server服务配置,默认端口为10051(5)确认信息(6)配置成功后可通过默认的admin/zabbix用户登录进系统观众甲:web页面服务也只需要配置数据库和服务端信息?那如何配置监控呢?Zabbix:是的,只需要配置这两项;监控数据就需要用到agentd服务了,下面我们在109机器上先部署我们的监控对象mysql数据库,然后在部署agentd服务,数据库部署不再赘述,agentd服务部署操作如下:(1)同样先按照108机器配置yum源;(2)yum安装agentd yum installzabbix-agent(3)添加zabbix组及用户 groupadd zabbix useradd -g zabbix zabbix(4)修改agentd配置文件 vi /etc/zabbix/zabbix_agentd.conf Server=10.132.49.108 ServerActive=10.132.49.108:10051 Hostname=zabbixtest观众乙:请问Server和ServerActive参数配置的ip相同,两者有什么区别呢?Zabbix:两者都指定zabbixServer机器的IP地址,不同的是,前者是被动后者是主动;也就是说Server这个配置是用来允许这个IP从服务端取数据,而ServerActive这个IP是客户端主动提交数据给服务端苏小研:请教下Hostname是干什么用的呢?Zabbix:我们下面会讲到,这是监控主机的唯一标识,配置出错会导致监控失败;说到这里agentd服务部署也基本结束了,下面我们启动服务并将服务加入到开机自启动; systemctl enable zabbix-agent systemctl start zabbix-agent现在我们在页面上配置我们的第一个监控吧,依次进入Configuration--Host groups--Create host group,创建group,我们可以把监控项相同的主机放入同一组里,方便管理,并添加监控模板,我们添加了mysql和os两个监控模板;然后在Hosts里面create host配置监控主机的信息;依次配置主机名、IP、模板等信息,agent默认服务端口是10050,这里的主机名需要和agent里面配置的一致,且具有唯一性,因为agent会以主机名来判断server有没有配置监控项;配置完成后我们会看到主机后面ZBX为绿色底纹,表示已经有监控数据了,红色代表异常,会显示相应异常信息,供大家排错,进入Monitoring--Graphs可以查看监控数据的图形化界面苏小研:哈哈,相信现在不管是小研还是大家都对Zabbix有了一定认识,并且领略到了Zabbix的功能强悍以及配置简单等优点,但是这只是Zabbix的冰山一脚,更多的功能还需要大家继续学习及探索Zabbix:有机会的话我还会跟大家做进一步的交流,也欢迎大家加入我们的队伍,让我们更完美苏小研:欢迎您常来小研家做客,让我们再次感谢Zabbix的精彩分享(掌声...)
原创:中移苏研大数据博客
页:
[1]