Zabbix |
您所在的位置:网站首页 › zabbix是哪个公司的 › Zabbix |
Zabbix简介
Zabbix官方网站 Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbix 3.x。 Zabbix (音同 zæbix),是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。Zabbix 的授权是属于 GPLv2。 Zabbix可用于监视各种网络服务、服务器和网络机器等状态。是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 Zabbix也可经由SNMP、TCP、ICMP、SSH等对目标进行监视。 Zabbix的系统构成Zabbix系统由以下各独立模块组成: Zabbix Server,服务端(以C开发)。Server端通过收集SNMP和Agent发送的数据,写入数据库,再通过PHP+Apache在Web端展示; Zabbix Agent,客户端(基本支持所有操作系统),并将监控主机数据发送给Server; Zabbix Frontend,Web管理端(以PHP和JavaScript构成); Zabbix Proxy(可选组件)。用于分布式监控。 Zabbix的特点Zabbix是一个高度集成的网络监控解决方案,一个简单的安装包中提供多样性功能。 数据收集; 灵活的阀值(触发器)定义; 高度可配置化的告警; 实现图表绘制; Web监控功能; 丰富的可视化选项; 历史数据存储; 配置简单; 使用模板; 网络发现; Zabbix API; 权限管理系统; 功能强大并易于扩展的监控代理。定义 Zabbix的常用术语含义。 主机(host): 一台你想监控的网络设备,用IP或域名表示。 主机组(host group): 主机的逻辑组,它包含主机和模板。 监控项(item): 你想要接收的主机的特定数据,一个度量数据。 触发器(trigger): 一个被用于定义问题阀值和评估监控项接收到的数据的逻辑表达式。 事件(event): 单次发生的需要注意的事情。 异常(problem): 一个处在异常状态的触发器。 动作(action): 一个对事件作出反应的预定义的操作。 升级(escalation): 一个在动作内执行操作的自定义场景。 媒介(media): 发送报警通知的手段。 通知(notification): 利用已选择的媒体途径把事情相关信息发送给用户。 远程命令(remote command): 预先定义好的,满足一定条件后,可在被监控主机上自动执行的命令。 模板(template): 一组可以被应用到一个或多个主机上的实体的集合。 应用(application): 一组监控项组成的逻辑分组。 Web场景(Web scenario): 利用一个或多个HTTP请求来检查网站的可用性。 前端(frontend): Zabbix提供的Web界面。 Zabbix API: Zabbix API允许你使用JSON RPC协议来创建、更新和获取Zabbix对象信息或执行任何其他的自定义的任务。 Zabbix server: Zabbix软件监控的核心程序,主要功能是与Zabbix proxies和agent进行交互、触发器计算、发送告警通知,并将数据集中保存等。 Zabbix agent: 部署在监控对象上,能够主动监控本地资源和应用。 Zabbix proxy: 帮助Zabbix server收集数据,分担Zabbix server的负载。 Zabbix进程 Agent zabbix agent部署在监控的目标上,主动监测本地的资源和应用(硬件驱动,内存,处理器统计等)。 zabbix agent手机本地的操作信息并将数据报告给zabbix server用于进一步处理。 zabbix agent有被动(passive)和主动(active)两种检查方式。 Serverzabbix server是zabbix软件的核心程序。它通过轮询和捕获数据,计算是否满足触发器条件,向用户发送通知。 它是zabbix监控代理和Proxy代理报告系统可用性和完整性数据的核心组件。zabbix server自身可以通过简单远程检查网络服务(如Web服务器和邮件服务器)。 server是一个包含了被存储了所有配置,统计方面的和可操作数据的中央仓库,它是监控系统问题升级以致于激活警告管理器的zabbix中的实体。 基本的zabbix server分三个不同的组件:zabbix server,web前端,数据库存储。 zabbix的所有配置信息都存储在服务器和web前端进行交互的数据库中。 zabbix server进程是以守护进程(Daemon)运行的。 Proxyzabbix proxy是一个可以从一个或多个受监控的设备设备收集监控数据,并将信息发送到zabbix server的进程,基本上是代表server工作。 所有收集的数据都在本地进行缓存,然后传送到proxy所属的zabbix server。 zabbix proxy是完成远程区域、分支机构、没有本地管理员的网络的集中监控的理想解决方案。 zabbix proxy需要使用独立的数据库,以守护进程的方式运行。 Java gatewayzabbix守护进程原生支持监控JMX程序,它被称为zabbix java gateway。zabbix gateway是用Java语言写成。 要查得一台主机特定的JMX计数器值,zabbix server向zabbix java gateway发送请求,后者使用JMX管理API去请求远程的有关应用。应用不许额外安装软件,只需要启动时在命令行指定 -Dcom.sun.management.jmxremote即可(是在java程序)。 每个zabbix server或zabbix agent只能配置一个java gateway。 Senderzabbix sender是一种命令行应用,它可以将性能数据发送到zabbix server进行处理。该应用通常用在长时间运行的用户脚本,用于定期发送可用性和性能数据。 zabbix_sender -z zabbix -s "xxx" -k db.connections -0 43 -z :server主机 -s :受监控主机的技术名称 -k :监控项的键 -o :要发送的值 Getzabbix get也是一种命令行应用,用于与zabbix agent进行通信,并从agent那里获取所需的信息。 该应用通常被用于zabbix agent故障排除 zabbix_get -s $host -p xxx -k system.cpu.load[all,avg15] -s --host -p --port -I --source-address -k --key -h --help -V --version安装Zabbix Zabbix安装要求 硬件: 内存,最小128MB; 磁盘,最小256MB; CPU,可能需要大量CPU资源; SMS(短信)通知服务,串行通讯口(serial communication port)和串口GSM调制解调器(serial GSM modem)。可选项。支持平台: Linux; IBM AIX; FreeBSD; NetBSD; OpenBSD; Mac OS X; Solaris; Windows(Only Agent).软件: Zabbix基于Apache Web服务器、领先的数据库引擎和PHP脚本语言进行构建。 数据库管理系统: MySQL 5.0.3 及以上; Oracle 10g 及以上; PostgreSQL 8.1 及以上; SQLite 3.5及以上; IBM DB2 9.7 及以上。前端: Apache 1.3.12 及以上; PHP 5.4.0及以上;PHP-Extension: 软件 版本 备注 gd 2.0及以上 PHP GD扩展包必须支持PNG图片 bcmatch php-bcmatch ctype php-ctype libXML 2.6.15及以上 php-xml xmlreader php-xmlreader xmlwrite php-xmlwriter session php-session sockets php-net-socket mbstring php-mbstring gettext php-gettext ldap php-ldap mysqli 使用MySQL作为Zabbix后端数据库所需的组件 pgsql 使用PostgreSQL作为Zabbix后端数据库所需的组件 sqlite3 使用SQLite作为Zabbix后端数据库所需的组件客户端浏览器: 必须启用Cookie和JavaScript功能。 服务器: 要求 描述 OpenlPMI 支持IPMI功能所需组件 libssh2 支持SSH功能 fping 支持ICMP ping功能 libcurl 支持Web监控,VMware监控及SMTP认证 libiksemel 支持Jabber功能 libxml2 支持VMware监控 net-snmp 支持SNMP监控Java网关: Java gateway编译和运行在Java 1.6 及以上版本。 数据库容量: Zabbix配置数据需要使用固定的磁盘空间,而这个空间不会过多增长。 Zabbix数据库容量主要依赖于以下参数: 每秒处理值的数量(Number of processed values per second); 历史(History)数据的回收清理设置(Housekeeper); 趋势(Trends)数据的回收清理设置(Housekeeper); 事件(Events)数据的回收清理设置(Housekeeper)。时钟同步: 对于Zabbix稳定运行而言,服务获取精确的系统时间是非常重要的。对于所有运行Zabbix组件的系统,强烈建议这些系统的时间保持同步。 ntpd是一个临幸的用于同步主机和其他服务器之间的时间的后台程序。 安装、启动、配置ZabbixZabbix-repo仓库:repo.zabbix.com 该仓库服务器同时提供yum和apt源码库。 配置源码库1. 从官方下载源码库 #rpm -ivh http://repo.zabbix.com/zabbix/$version/rhel/7/$arch/$zabbix-release.rpm rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm2. 手动配置zabbix.repo vim /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix-Repo baseurl=http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/ gpgcheck=0 enable=1 安装Zabbix部署包使用MySQL数据库安装Zabbix Server、Web前端: yum install -y zabbix-server-mysql zabbix-get注意:此处Zabbix数据库使用MySQL,请自行安装MySQL。 安装Zabbix Agent: yum install -y zabbix-agent 安装初始化数据库查看刚刚安装的 zabbix-server-mysql: 解压得到的sql脚本create.sql只会在对应的数据库中初始化zabbix所需要的数据库表,但是不会创建zabbix数据库。所以后面我们还需要手动创建zabbix数据库。 rpm -ql zabbix-server-mysql cd /usr/share/doc/zabbix-server-mysql-3.x.xx/ #有一个create.sql.gz的压缩文件 gunzip create.sql.gz #得到create.sql在MySQL中创建zabbix数据库: msyql -uxxx -p mysql>CREATE DATABASE 'zabbix' DEFAULT CHARACTER SET 'utf8'; mysql>SHOW DATABASES; mysql>GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' identified by 'zabbix'; mysql>FLUSH PRIVILEGES; #导入sql脚本 mysql -uroot -p -Dzabbix < ./create.sql USE zabbix; SHOW TABLES;
编辑zabbix server配置文件: vim /etc/zabbix/zabbix_server.conf #常会修改的参数 #数据库配置 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix DBPort=3306 DBSocket=/var/lib/mysql/mysql.sock #服务监听端口 ListenPort=10051 #服务端源IP SourceIP= #日志记录方式,file使用指定文件作为日志文件,system将日志发往syslog,console将日志发送控制台 LogType=file LogFile=/var/log/zabbix/zabbix_server.log启动zabbix服务端: systemctl start zabbix-server #此处可能由于没有关闭SELinux而报错 tail /var/log/zabbix/zabbix_server.log cannot set resource limit: [13] Permission denied #关闭SELinux setenforce=0 vim /etc/selinux/config SELINUX=disabled #查看zabbix-server默认监听的10051端口 netstat -nltp 安装zabbix webzabbix web可以安装在单独的主机上,只要能连接到zabbix database所在数据库就行。但为了方便,都安装在了server上。 zabbix web需要LAMP环境: #可能需要自己配置PHP remi源,注意PHP及扩展版本问题 yum install -y httpd php php-mysql php-mbstring php-gd php-bcmatch php-ldap php-xml安装zabbix web所需的两个包: yum install -y zabbix-web zabbix-web-mysql rpm -ql zabbix-web #zabbix-web位于/usr/share/zabbix/ 编辑zabbix的前端Apach-PHP配置文件zabbix前端的Apache配置文件位于 /etc/httpd/conf.d/zabbix.conf: vim /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 always_populate_raw_post_data -1 php_value date.timezone Asia/Shanghai #添加httpd的虚拟主机访问zabbix web servername zabbix.me documentroot /usr/share/zabbix 默认数据 #开启httpd服务 systemctl start httpd
添加hosts后就可以利用域名访问zabbix-web端了。 echo -e "192.168.1.9 \t zabbix.me" >> /etc/hosts 在web端配置zabbix在浏览器访问 http://zabbix.me 初始化zabbix配置。 配置好后就需要用账号密码进行登录zabbix-web端dashboard。 默认用户名是:admin,密码是配置文件里面设置的。登录进Dashboard后,可修改语言为中文。 如果你的Zabbix无法看到中文选项,那么可能需要如下操作: vim /usr/share/zabbix/include/locales.inc.php #修改 'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],如果又遇到中文乱码的问题,则可以从windows中挑选一些好看的中文字体,将对应字体文件放置到zabbix web的字体目录中。 windows中字体后缀.TTF,Linux中为.ttf。注意修改大小写。 cd /usr/share/zabbix/fonts #只有一个默认字体 graphfont.ttf #将新字体放置到此目录下 #修改配置文件中对应字体名称 vim /usr/share/zabbix/include/define.inc.php #将默认字体名字修改为字体目录下 你需要的字体名 define('ZBX_FONT_NAME', 'graphfont'); define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name #栗子,如perpetua字图PER.ttf define('ZBX_FONT_NAME', 'PER'); define('ZBX_GRAPH_FONT_NAME', 'PER'); // font file nameZabbix Web界面菜单: 安装zabbix agent Agent端安装也非常方便,直接在Client上安装两个包即可。 #配置zabbix源 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.4-1.el7.noarch.rpm #aliyun镜像 #rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm #安装 yum install -y zabbix-agent zabbix-sender rpm -ql zabbix-agent #/etc/zabbix/zabbix_agentd.confzabbix的“主动模式”与“被动模式”都在/etc/zabbix/zabbix_agentd.conf中定义。 配置最常用的agent端: vim /etc/zabbix/zabbix_agentd.conf ####GENERAL PARAMETERS 通用配置 PidFile= LogFile= ####Passive checks related 被动模式配置 #指定允许哪台服务器拉取本机数据 Server= #指定agent端工作于被动模式时监听的端口号 ListenPort=10050(默认) #指定agent端工作与被动模式时所监听的IP地址 ListenIP=0.0.0.0(默认) #指定预生成的agent进程数量 StartAgents= ####Active checks related #agent工作于主动模式时,将消息推送到哪台Server上 ServerActive=IP1,IP2... #指定当前主机主机名,Server端通过对应的主机名识别主机 Hostname= #指明agent端每隔多少秒将采集的数据发往Server端 RefreshActiveChecks= #栗子 Server=192.168.1.9 ServerActive=192.168.1.9 Hostname=zabbix.me启动zabbix-agent systemctl zabbix-agent start #查看状态,默认端口10050 netstat -nltp快速开始zabbix-web菜单 zabbix-web界面中包含有监测中、资产记录、报表、配置、管理五项菜单。 登录和配置用户在浏览器输入 zabbix.me (修改hosts),登录zabbix-web后台。 默认用户名:Admin,密码:zabbix。它是超级管理员。 为了防止暴力破解和词典攻击,连续尝试五次登录失败,zabbix界面将暂停30秒。 可以通过管理(Management)菜单下的用户(User),新建、查看、管理用户信息。 zabbix在安装后自定义了两个用户: Admin用户是zabbix的超级管理员,拥有所有权限; Guest用户是一个特殊的默认用户。如果你没有登录,你访问zabbix的时候其实就是“guest”权限。guest默认没有任何权限。你可以创建一个用户(user)并将其加入特定的用户组(Group)以提升用户权限。 zabbix中的主机(host)是一个你想要监控的网络实体(物理的、虚拟的)。对于主机的定义非常灵活。它可以是一台物理服务器,一个网络交换机,一个虚拟机或一些应用。 可以通过配置(Configuration)菜单下的主机(Host),查看已配置主机相关信息。 默认有一个“Zabbix Server”的定义好的主机。 点击创建主机(Create host)后,填写对应的主机名称、添加对应的主机群组,zabbix-agent的IP地址和端口,以及其它信息。 监控项是zabbix中获得数据的基础。没有监控项,就没有数据。因为一个主机中只有监控项定义了”单一的指标“或者”需要获得的数据“。 可以通过配置(Configuration)菜单下的主机(Item),找到需要配置监控项(Item)的主机,然后创建监控项。 主机默认是没有定义任何监控项的。 填写对应的监控名称、类型、键值、主机接口、信息类型等等信息。 可在监控(Monitoring)菜单中最新数据(Latest data)查看之前定义的监控项和获得的值。 还可选择以图形(Graph)或值来查看监控项的相关信息。 监控项只用于手机数据。如果要自动评估收到的数据,我们则需要定义触发器(trigger)。 触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。 如果收到的数据超过了定义好的级别,触发器将被触发,或者进入异常状态(problem)。 从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理范围,触发器将会转到正常状态(OK)。 可以通过配置(Configuration)菜单下的主机(Hosts)选项,找到某主机的触发器(Triggers)创建触发器。 填写对应的触发器名称、表达式、描述等信息。 当监控项收集了数据后,触发器会根据异常状态触发报警。根据一些报警机制,它也会通知我们一些重要的事情,而不是直接在zabbix-web端进行查看。 这就是通知(Notification)的功能。 E-mail是最常用的异常通知发送方式。当然还有SMS(短信),脚本等媒体类型。 可以通过管理(Administration)菜单中的报警媒体类型(Media types),点击预定义媒体类型列表中的Email,来配置Email。 为了建立一个通知,我们需要在配置菜单下动作中,创建动作(Create action)。 一旦满足了触发器的条件,变回触发执行动作。如收到E-mail等... 新建模板如果我们配置上前台主机,一些自动化操作会带来更多便利性。没错,模板(templates)功能就可以实现。 模板允许对有用的监控项、触发器和其他对象进行分组,只需要一步就可以对监控主机应用模板,已达到反复重用的目的。 当一个模板链接到一个主机后,主机会继承这个模板中的所有对象。简单而言,一组预先定义好的检查会被快速应用到主机上。 Zabbix为各种操作系统、设备以及应用准备好了一些预定义的模板。你可以快速部署使用他们。 但是请注意,一些模板需要根据你的实际情况和使用环境进行适当俄调整。 比如,一些检查项是不需要的,一些轮询周期过于频繁等。 在配置菜单下的模板(Templates)下,点击创建模板(Create template)。填写对应的模板名称,群组等信息。 创建模板完毕后,可将模板链接到主机。之后,模板及其所有对象被添加到了主机。 配置 主机和主机组 一般来讲,zabbix主机是指你希望监控的那些设备。如服务器、工作站、交换机等。 创建主机是使用zabbix过程的首要任务。 配置一台主机配置--主机--创建主机--填写相关参数信息。 可以在已经存在的主机上使用 Clone或Full Clone创建一个新主机。 Clone将保留所有的主机参数和模板链接; Full Clone将额外保留指数实体(应用集、监控项、触发器、视图、规则、Web场景)。 新建主机下: 主机(Host):包含了通用的主机属性; 模板(Template):允许将模板链接诶到主机,所有实体将从模板继承; IPMI:包含IPMI管理属性; 宏(Macros):允许定义主机级别的用户宏; 主机资产记录(Host inventory):允许为主机收工输入库存信息; 允许你请求与主机的加密的连接。 资产管理(Inventory)你可以将联网设备的资产信息保存在zabbix里。 资产信息实在配置主机时人工录入建立的资产信息数据,或者通过使用某些自动填充选项完成的录入。 构建资产库: 手动模式: 在配置一台主机的时候,手动输入资产信息; 自动模式: 在配置主机的时候,选择自动。之后便可以在资产记录菜单中的概述,主机项中查看相关信息。 批量更新(Mass update)有时候可能需要一次更改多个主机的某些属性,使用批量更新(mass update)功能来代替打开每个主机进行编辑。 可批量处理主机、模板、IPMI、资产、加密相关信息。 监控项(Items) 监控项是从主机收集的数据信息。 配置主机后,需要添加一些监控项以开始获取数据。快速添加多个监控项的一种方法是将预定义的模板附加到主机。 在单个监控项中,可指定从主机收集哪些数据信息。 为此,可使用监控项key。 如system.cpu.load将收集处理器负载的数据。 要给 key 指定更过参数,请在后面添加方括号[]。 如system.cpu.load[avg5], 返回最近5分钟的CPU负载平均值。 创建一个监控项可在主机中新建一个监控项。 不支持的监控项:如果由于某种原因无法检索该值,则该监控项可能不被支持。这些监控项仍然以固定的间隔重新检查。 监控项的key: key名称允许使用字符: 0-9a-zA-Z_-. key参数,用 逗,号 分隔: xxx[par1,par2...] key参数也可以为空,此时使用默认值: key key参数带引号,则允许任何Unicode字符,如果包含双引号则需要 \反斜杠 转义 key参数是一个数组,它需要包含在方括号中自定义间隔(Custom intervals) 创建关于监控项的自定义时间规则。 灵活间隔被设计为重新定义默认监控项的的更新间隔,但调度间隔用于指定独立执行的检查计划。 灵活的间隔(Flexible intervals):允许重定义特定时间段的默认间隔。 间隔(Interval): 指定时间段的更新间隔; 期间(Period): 灵活间隔有效的时间段; 举个栗子: 60(interval), 1-7,00-24(period)。监控项每隔60s检查一次。调度间隔(Scheduling intervals):用于在特定时间检查监控项。 调度间隔定义为, mdwdhms。 md: month days(1-31) wd: week days(1-7) h: hours(0-23) m: minutes(0-59) s: seconds(0-58) : 指定其前缀的值----[from-to/step]。其实类似于Linux中定时任务的写法,只不过这里把单位(md,wd,h,m,s)写在了数值的前面。 举个栗子: md1-15 #1-15号 wd3 #星期三 h0-12 #上半天 m1,3,5,7,9 #每个1,3,5,7,9分钟 s/10 #每个10s #组合体 wd1-5h9-18m/10 #每个工作日的上班时间每个10分钟 监控项类型(Items type)监控项类型包含从系统获取数据的多种方式。每个监控项类型都有一组自己支持的监控项key和所需的参数。 zabbix提供的监控项类型: zabbix代理检查(agent checks) SNMP代理检查 SNMP traps IPMI检查 简单检查(simple checks) VMware监控(monitoring) 日志文件监控 计算监控项(Calculated items) zabbix内部检查(internal checks) SSH检查 Telnet检查 外部检查(External checks) 汇总检查(Aggregate checks) 捕捉器监控项(Trapper items) JMX监控 ODBC监控zabbix代理(zabbix agent): 这些检查与zabbix代理进行通信实现数据的采集。 zabbix agent-passive: 被动模式,Server向Agent索要数据; zabbix agent-active: 主动模式,Agent主动上报数据给Server。可支持的监控项,可在新建监控项是在键值里面查看。 SNMP代理(SNMP agent): 在启用SNMP的设备(如打印机,交换机,路由器...)上使用SNMP监控,为了能够监控SNMP代理在这些设备上提供的数据,zabbix服务器初始化配置时必须具有SNMP支持。 仅通过UDP协议执行SNMP检查。 配置SNMP监控: 使用SNMP接口为设备创建一个主机; 找出要监控项目的SNMP字符串; 创建一个监控项。IPMI检查: 你可以在zabbix中监控 智能平台管理接口(IPMI) 设备的运行状况和可用性。 要执行IPMI检查,zabbix服务器必须首先配置IPMI支持。 简单检查: 简单检查通常用于远程无代理监控服务。 日志文件监控: zabbix可用于集中监控和分析 具有/不具有 日志转动能力的日志文件。 当日志文件包含某些字符串或字符串模式时,通知信息可用于警告用户。 计算监控项: 计算监控项是创建虚拟数据源的一种方式。这些值将根据算术表达式定期计算。所有计算都由Server完成。 内部检查: 内部检查可以监控zabbix的内部检查。即Server或Agent Server的运行情况。 SSH检查: 运行SSH检查是作为无代理监控的,SSH检查不需要zabbix代理。 执行SSH检查zabbix服务器必须初始化配置为SSH2支持。 SSH检查提供两种身份验证方法,一种是用户/密码,另一种是基于密钥文件。 zabbix SSH 密钥配置: vim /etc/zabbix/zabbix_server.conf #SSHKeyLocation= SSHKeyLocation=/home/zabbix/.ssh usermod -m -d /home/zabbix zabbix chown zabbix:zabbix /home/zabbix chmod 700 /home/zabbix cd /home/zabbix && su zabbix ssh-keygen -t rsa外部检查: 外部检查是由zabbix Server通过运行shell脚本或二进制的检查。 外部检查不需要再被监控的主机上运行任何代理。 汇总检查: 在汇总检查中,zabbix通过直接从数据库中查询监控信息,然后进行信息聚合。 聚合检查不需要再被监控的主机上运行任何代理。 捕捉器监控项: 捕捉器监控项接收传入的数据,而不是查询它。对于想要推送到zabbix的任何数据都是适用的。 要使用捕捉器监控项,需要在zabbix中建立一个捕捉器监控项,将数据送给zabbix。 JMX监控项: JMX监控可用于监视Java应用程序的JMX计数器。 JMX监视器以zabbix守护进程方式运行,名为zabbix java gateway。 ODBC监控: ODBC监控对应于zabbix web管理端中的数据库监控器监控项类型。 ODBC是用于访问 数据库管理系统(DBMS) 的C语言中间件API。 zabbix可以查询ODBC支持的任何数据库。为了实现监控,zabbix不直接连接到数据库,而是使用ODBC中设置的ODBC接口和驱动。 该功能允许为多个目的更加有效地监控不同的数据库。 历史与趋势历史与趋势是zabbix中存储数据的两种方式。 历史保持每个收集的值,而趋势是每小时的平均信息。 建议保持的历史数据尽可能少,但可以保留更多的趋势数据。 用户自定义参数(user parameter)有时你想运行一个代理检查,但它不是zabbix预定义的。这时就能用到用户参数。 用户参数是由zabbix代理之星的命令,最多可以返回512KB的数据。 key 是唯一的。 用户参数用法: UserParameter=, #栗子 UserParameter=ping,echo 1 #使用ping键为一个监控项返回 1 #复杂栗子 UserParameter=mysql.ping,mysqladmin -uroot -ppwd ping | grep -c 'alive' #mysqld状态为alive返回1,否则0 #灵活的用户参数 UserParameter=key[*],command #[*]定义该key接受括号内的参数 #栗子 UserParameter=ping[*],echo $1 UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c 'alive' #mysql.ping[zabbix,passwd] UserParameter=wc[*],grep -c "$2" $1 #wc[/etc/passwd,root]用户自定义参数扩展zabbix代理: 是将key添加到被监控的主机哦! #编写命令--SQL查询总数 mysqladmin -uxxx -pxxx status | cut -f4 -d":" | cut -f1 -d"S" #将命令添加到zabbix_agentd.conf vim /etc/zabbix/zabbix_agentd.conf #找到如下字段 ### Option: UserParameter UserParameter=mysql.totalquery,mysqladmin -uroot -pxxx status | cut -f4 -d":" | cut -f1 -d"S" #mysql.totalquery这个key是唯一的标识符 #测试此参数 ##测试参数可用与否很重要哈 zabbix_agentd -t mysql.totalquery #重启zabbix-agent,将重新加载配置 zabbix_get -s $host -k mysql.totalquery 可加载模块(loadable modules)可加载模块提供了一种关于zabbix性能扩展的选项。 可加载模块基本上只zabbix守护程序使用的共享库,并在启动时加载。 可加载模块具有很多优点,卓越的性能和可实现任何逻辑的能力,更重要的是使用和共享了zabbix模块的开发能力。 windows性能计数器(windows perfomance counter)使用perf_counter[]key有效的监控windows性能计数器 批量更新(mass update)使用批量更新功能,可一次更改多个监控属性。 值映射(value mapping)对于接收值更人性化的表示,可以使用包含数值和字符串之间的映射的值映射。 如: 0 ---> error 1 ---> true F ---> Full D ---> Differential I ---> Incremental ... 应用集(Application)应用集对逻辑组中的监控项进行分组。 如,对MongoDB的可用性,空间,负载,慢查询,执行命令...,可归于 MongoDB应用于中。 队列(queue)队列显示正在等待刷新的监控项。 队列只是一个逻辑表达的数据。 队列显示的统计信息是zabbix服务器性能是否健康的指标。 在 管理--队列 下对去队列。 值缓存(value cache)为了计算触发表达式,以及让计算/聚合监控项和一些宏更快,zabbix服务器支持值的缓存选项。 在内存中的缓存可用于访问历史数据,而不用之间调用数据库。如果缓存中不存在历史值,则从数据库请求缺少的值,并相应地跟新缓存。 要启用值缓存功能,修改zabbix_server.conf中可选的ValueCacheSize参数。 触发器(Trigger) 触发器是评估有项目采集的数据并表示当前系统状况的逻辑表达式。 触发器表达式允许定义一个什么状况的数据是“可接受”的阈值。如果超过了可接受状态,则触发器会被触发。 配置一个触发器(configuring a trigger)在主机里面配置触发器。 触发器表达式(trigger expression)一个简单有效的表达式看起来像: {:.()} #如 {192.168.1.7:agent.ping.time()}=0函数参数(function parameters): 大多数数字型的函数接受秒数来作为参数。 #600s内所有值的总和 sum(600) #随后5个值总和 sum(#5) avg() count() last() min() max() #5m 可被 300s 代替 #1k 代表 1024bytes运算符(operators): 优先级 运算符 定义 1 - 负号(minus) 2 not 逻辑非(NOT) 3 *, / 乘,除 4 +, - 加,减 5 = - 6 =, 相等,不等于 7 and 逻辑与 8 or 逻辑或触发器示例: {www.zabbix.com:system.cpu.load[all,avg1].last()}>5 {www.zabbix.com:system.cpu.load[all,avg1].last()}>5 or {www.zabbix.com:system.cpu.load[all,avg1].min(10m)}>2 {www.zabbix.com:net.if.in[eth0,bytes].min(5m)}>100k {$url1:net.tcp.service[smtp].last()}=0 and {$url2:net.tcp.service[smtp].last()}=0 {$host:icmpping.count(30m,0)}>5 {$host:system.cpu.load[all,avg1].min(5m)}>2 and {$hsot:system.cpu.load[all,avg1].time()}>000000 and {$host:system.cpu.load[all,avg1].time)()}20 #Recovery expression {server:temp.last()} |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |