您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Zabbix介绍2014-v1.2
企业级的开源监控解决方案By南非蜘蛛Agenda简介系统架构系统配置命令行工具系统优化第三方插件相关资源为什么要监控?不可控,不可管理Administrator实时通知检查状态监控就是运维的第三只眼系统故障宕机了解细节,掌握全局简介zabbix(音同zæbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案主要特点安装与配置简单,学习成本低支持多语言(包括中文)免费开源自动发现服务器与网络设备分布式监视以及WEB集中管理功能可以无agent监视通过WEB界面设置或查看监视结果email等通知功能三种架构ZabbixServerZabbixDatabaseZabbixNodeZabbixProxyWebServer监控服务器端2:Node架构ExternalScriptsAgent被监控端SNMPIPMIJMX计算聚合SSHTrapper3:Proxy架构1:直接连接Proxy分布式架构Proxy架构vsNode架构Node存在一些问题,2.4版本已经不支持Node是一个完整的zabbix,会把数据同时发一份给中心ZabbixProxy安装时不需要导入data.sql和images.sql,要不然可能会有问题Proxy没有UIProxy从server同步配置,去agent端收集数据,并暂存数据Proxy架构中zabbix_proxy是守护进程,配置文件为zabbix_proxy.conf,配置文件里proxyMode设置为0表示主动模式(推荐),设置为1表示被动模式ZabbixserverGUI里proxymode需要和zabbixproxy的配置对应BasicdataflowDB表结构history*表保存每一个收集来的数据,trends*表保存一些基于小时的平均、最大、最小值信息。每个监控项的数据格式分成5种类型:Value_type0浮点数据1字符数据2log数据3整型数据4文本数据数据按照value_type存储在下面五个表中:history,history_str,history_log,history_uint,history_text1.actions2.alerts3.config4.functions5.graphs6.graphs_items7.groups8.history、history_str、history_log、history_uint、histroy_text9.trends、trends_uint10.hosts11.hosts_groups12.items13.media14.media_type15.profiles16.rights17.screeens18.screeens_items19.sessions20.triggers21.trigger_depends22.users配置流程图GUI-导航栏ConfigurationHostvsTemplateHost指一台服务器或者交换机等,上面有监控点(Items),报警条件(Triggers),Trigger会一直监视Items获取到的数据,如果达到阈值则认为故障发生,接着会触发动作Action执行故障报警动作。Host可以连接到一个或多个模板。Template具有继承关系,可以从一个Templatelink到另外一个Template。Host和Template的关系Template就是特殊的Host,是将Host的属性进行资源抽象(即对Items,Tigger,Graphs,Web,Discovery等进行资源抽象),不对应具体的主机,在数据库中,他们都是在hosts表中,其中字段stauts=0代表Host,status=3代表Template。当Host关联到Template时,Zabbix会将Template的属性直接复制到Host上,没有继承关系。注意:取消Host和Template关系时,如果想让Template复制过来的属性也同时删除,需要在host里点Unlinkandclear,在Template里取消关联是不能删除复制给Host的属性的。添加Host-关联模板点Configuraion-Hosts-Createhost关联模板创建Application点Configuraion-Hosts-Applications点我创建Item点Configuraion-Hosts-Item点我JMX对于java应用一般会关注3大块的信息:heap,gc,thread.旧版本的zabbix没有javagateway,通过自己写脚本来获取监控信息。新版本的zabbix支持javagateway,可以通过jmx端口直接获取相关信息。两个细节:1)远程调用jmx的话,需要使用:-Djava.rmi.server.hostname=IP或hostname2)一台机器上运行多个java的监控方法因为jmx的item中没有port这个参数,在添加多个jmx时,会有冲突,解决方法就是新建item的时候在name中增加空格,这样就会识别成不同的item。Activeagentchecks1:Agent会根据配置文件里的ServerActive(支持多个)和RefreshActiveChecks两个参数周期性寻找Server(s)发送请求。2:Agentrequest:3:Serverresponse:4:Agent分析response,然后关闭这个tcp连接5:Agent开始周期性的收集数据Key查看默认Key,zabbix_agentd–p自定义Key在/etc/zabbix/zabbix_agentd.conf里面配置配置参数UserParameter=key,command除了上面这中写法,还支持参数传递的写法:UserParameter=key[*],command$1$2$3……特殊字符\'”`*?[]{}~$!&;()|#@这些字符,需开启UnsafeUserParameters=1注意:有些自定义key取不到值,可能是目录或者命令没有权限自定义key作用UserParameter=mysql.ping,mysqladmin-urootping|grepalive|wc–lCheckwhetherMySQLisaliveUserParameter=mysql.threads,mysqladmin-urootstatus|cut-f3-d:|cut-f2-d“NumberofMySQLthreads.UserParameter=mysql.questions,mysqladmin-urootstatus|cut-f4-d:|cut-f2-d“Numberofprocessedqueries.UserParameter=mysql.qps,mysqladmin-urootstatus|cut-f9-d:|cut-f2-d“Queriespersecond.例子:神马可以被监控?●ZabbixAgent●SNMPAgent●IPMIAgent●AgentlessMonitoring●WebMonitoring●DatabaseMonitoring●InternalCheck●CalculatedMonitoring●CustomCommandMonitoringZabbixAgent监控功能什么是Trigger?Item和Trigger的关系Trigger即触发器,它有3个状态,unknown、problem、ok,只有当状态从problem到ok或者ok到problem才会触发action。每一次Item取到值,包含这个Item的Trigger都会进行一次状态查询并生成Event,相当于每个Event都有状态。Trigger的条件可以由同一个模板多个Item组合而成(不能跨Template)。创建Trigger点我创建Trigger触发器表达式格式{表达式}N{表达式1}{表达式2}{表达式1}{表达式2}+1{表达式1}N&{表达式2}N{表达式1}N|{表达式2}N{表达式1}N+10|{表达式2}N{表达式1}N+10|{表达式2}N|{表达式3}N…………触发器表达式表达式1:{[all,avg1].last(0)}5load15表达式2:{[all,avg1].last(0)}5|{[all,avg1].min(600)}2load15或load1连续10分钟大于2表达式3:{zabbix.zabbix.com:agent.version.str(beta8)}=1检查agent的版本中是否包含字符串“beta8”表达式4:{zabbix.zabbix.com:tick.nodata(180)}=1三分钟没有收集到数据表达式5:{public.monitor:system.cpu.load[,avg1].abschange(0)}9最后一次load1值减前一次load1值,结果的绝对值小于9表达式6:{zabbix:system.cpu.load[all,avg1].min(300)}2&{zabbix:system.cpu.load[all,avg1].time(0)}000000&{zabbix:system.cpu.load[all,avg1].time(0)}06000000:00-06:00之间load1连续五分钟最小值大于2触发器表达式表达式7:{Zabbixserver:net.tcp.service[ftp,,45].delta(300)}0五分钟内最大值和最小值之差大于0,表示服务可用状态没有变更表达式8:{public.monitor:system.cpu.load[,avg1].avg(600)}{public.monitor:system.cpu.load[,avg1].avg(600,86400)}+10当前1小时的平均load1大于一天以前1小时的平均load1加10表达式9{public.monitor:system.cpu.load[,avg1].count(600,12,”gt”)}10最后600秒load1大于12的次数大于10表达式10{public.monitor:system.cpu.load[,avg1].count(#10,12,”gt”,86400)}824小时以前最后10次load1值大于12的个数超过8默认触发器的优化默认模板中触发器参数不合理,需精简成适合业务的模板如TemplateOSlinux模板中,以下的触发器设置都不合理,需要根据实际情况来修改{TemplateOSLinux:system.cpu.load[percpu,avg1].avg(5m)}5单颗CPU的负载{TemplateOSLinux:proc.num[].avg(5m)}300进程数量{TemplateOSLinux:agent.ping.nodata(5m)}=1由于网络抖动而引起的误报{TemplateOSLinux:kernel.maxfiles.last(0)}1024文件描述符,实际大于此参数{TemplateOSLinux:kernel.maxproc.last(0)}256进程数,实际大于此参数创建GraphGraph展示Low-leveldiscovery(LLD)点我Low-leveldiscoveryprovidesawaytoautomaticallycreateitems,triggers,andgraphsfordifferententitiesonacomputerLLD-创建DisconveryrulesLLD-定
本文标题:Zabbix介绍2014-v1.2
链接地址:https://www.777doc.com/doc-1277762 .html