主机(host)=============== 一个你想监控的网络设备(需要知道IP/DNS) 主机组(host group)====================================== 一个逻辑的主机组,它包含主机和模板。 主机和模板在同一个主机内的话模板不能被link到其他上.机组通常用于给不同的用户组创建访问权限 监控项(item)============================================= 你想从主机中收集到的数据 触发器(trigger)========================================== 一个逻辑表达式,用来表达从监控项获取的数据达到了预设的问题阀值,当接收到的监控值达到了预设的阀值,则触发器状态由’OK’变更为’Problem’,当收到的监控值低于阀值,则状态保持/变更为’OK’. 事件(event)============================================= 一个事情发生如触发器状态变更或一个自动发现(discovery)/agent自动注册等 动作(action)============================================ 当一个事件发生时预设的处理过程,一个动作(action)包括操作(operations,如发送告警)和条件(当指定的操作完成) 告警升级(escalation)==================================== 在动作中一个自定的操作执行过程,一个发送告警/执行远程命令的队列 媒介(media)============================================= 发送告警的渠道 告警(notification)====================================== 通过媒介(media)渠道发送事件的消息 远程命令(remote command)================================ 当监控主机达到某些条件(condition)后预设的自动执行的命令 模板(template)========================================== 一组包含监控项、触发器、绘图、面板(screen)、应用、低级别自动发现规则等并且能被其他主机应用的实体.模板能够提升主机部署监控任务的速度,同时也非常容易对监控任务做批量(mass)更新。模板被主机链接(link). 应用(application)====================================== 监控项逻辑组 web方案(scenario)====================================== 对一个web站点可用性进行检查的一个或多个http请求 前端(frontend)========================================= Zabbix提供的web接口 Zabbix API============================================= Zabbix API允许通过JSON RPC协议去创建、更新、获得Zabbix对象(如主机、监控项、绘图等等)以及完成自定义任务 Zabbix server========================================== Zabbix软件中心进程,用于连通Zabbix proxy及agent完成监控、评估触发器、发送告警以及中心数据存储 Zabbix agent=========================================== 部署在监控主机上的进程,用于监控本地资源和应用 Zabbix proxy=========================================== 替代Zabbix server完成数据收集的进程,通常用于降低中心Zabbix Server的负载 节点(node)============================================= 一套完整的Zabbix server配置,通常位于分布式系统中,用于负责本区域的监控
主机 角色 172.16.24.1 mysql 172.16.24.2 zabbix服务器端 (安装mysql) 172.16.24.3 zabbix被监控端
24.1 一、确保myaql已安装,并在安装好的mysql服务器端创建数据库并授权.(172.16.24.1) mysql> grant all on *.* to 'root'@'172.16.24.%' identified by 'mypass' with grant option; Query OK, 0 rows affected (0.01 sec)
mysql> create database zabbix; Query OK, 1 row affected (0.00 sec)
mysql> grant all on zabbix.* to 'zaxuser'@'172.16.24.%' identified by 'zaxpass'; Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
二、安装zabbix: zabbix-2.0.8-3.el6.x86_64.rpm zabbix-web-2.0.8-3.el6.noarch.rpm zabbix-server-2.0.8-3.el6.x86_64.rpm zabbix-web-mysql-2.0.8-3.el6.noarch.rpm zabbix-get-2.0.8-3.el6.x86_64.rpm zabbix-server-mysql-2.0.8-3.el6.x86_64.rpm
[iyunv@node2 ~]# yum localinstall *.rpm 三、(先装上mysql-server) [iyunv@node2 create]# mysql -uroot -pmypass -h172.16.24.1 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/schema.sql [iyunv@node2 create]# mysql -uroot -pmypass -h172.16.24.1 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/images.sql [iyunv@node2 create]# mysql -uroot -pmypass -h172.16.24.1 zabbix < /usr/share/doc/zabbix-server-mysql-2.0.8/create/data.sql
四、修改zabbix配置文件并启动zabbix [iyunv@node2 create]# cd /etc/zabbix/ [iyunv@node2 zabbix]# vim zabbix_server.conf
DBHost=172.16.24.1 DBUser=zaxuser DBPassword=zaxpass
[iyunv@node2 zabbix]# service zabbix-server start Starting Zabbix server: [ OK ]
配置了解
Hosts zabbix中的hosts就是指你想监控的设备,如服务器、工作站、交换机等等。如果你想监控某个主机X的某个变量,你必须先创建一个主机X,然后再给该主机添加监控items。hosts可以被有组织的安排进host group中。 通过zabbix的前端web界面配置hosts: Configuration->Hosts->Create Host
此页面中有5个表单:Host、Template、IPMI、Macros、Host inventory。 Host表单中包含了一般的host属性
host name 必须是一个唯一的名称,在zabbix agent的配置文件中hostname参数的值必须和这里的一致
visible name 这个名称是该hosts显示在lists、map中的名称,支持utf8
groups 该hosts属于那个host group,一个hosts至少属于一个host group
new host group 创建一个新的group,并把该hosts包含进去,如果是空的,则被忽略
agent interfaces zabbix支持多种host接口,例如:agent、snmp、jmx、ipmi等,使用agent interface
ip address hosts的ip地址
dns name hosts的dns名称
connect to 是一个单选的按钮,这个告诉zabbix server使用那种方式检索agent的数据
port tcp方式,agent默认是10050端口
default 因为可以添加多个agent interfaces,该单选的default按钮可以选择默认使用那个接口
monitored by proxy hosts可以被zabbix server或者zabbix proxy监控,no proxy表示使用zabbix server监控
status monitored表示host已经准备好了被监控,not monitored表示host还没准备好。 Templates表单允许你连接一个templates到该host上面,所有该templates的items、triggers、graphs等等都会得到继承。点击add可以链接一个templates过来,点击unlink则会删除该模版。 Host groups 通过zabbix的前端web界面设置host group:
Configuration->Host groups->Create host group
该页面有一个表单:host group group name group的名称,必须是唯一的 hosts 选择哪些hosts属于该group,一个host group可以有0个或者多个hosts
Items
items表示从host中收集哪些数据项,一旦你配置了一个host,你就需要开始监控一些items以获取真实数据,所有的item都是单独的个体,你可以把很多items附加到一个templates上面,然后把该templates附加到一个hosts上面。在单个的item中你可以指定哪些数据是你想收集的,例如:一个item key名称是system.cpu.load,它会收集cpu的负载,一个item key名称是net.if.in,它会收集进入网卡的信息。你可以给key指定更进一步的参数,就是使用方括号紧跟在key后面.
通过zabbix的前端web界面创建一个item: Configuration->Hosts->items->create item
host 可以选择一个host或者一个templates
name 这个显示item的名称,在下面的macros会用到
type 监控客户端的方式,主要分析zabbix agent和zabbix agent(active)两种方式
key item key,支持的item keys可以在单独的item type中查看,在一个host中key必须是唯一的
host interface 选择一个host inserface,可以在host level中编辑它
type of information 采集到的数据在数据库中存储的格式
numeric(unsigned) 64位无符号整型
numeric(float) 浮点数
character 字符型
log log文件类型
text text类型没有限制大小
date type 用在整型的items中,用来指定确切的数据类型
boolean 0/1
octal 八进制
decimal 十进制
hexadecimal 十六进制
units 如果设置了units,zabbix会对收到的数据进行处理,在显示数据时会使用units后缀,默认的原始数据是除以1000不是1024,如果使用B(byte)units,则会使用1024进行分割,如果设置units为B,zabbix会这样显示:1 1B,1024 1KB,1536 1.5KB。如果是unmeric(unsigned)的则可以使用unixtime转化为时间类型,uptime则会转化为可读的时间
use custom multiplier 如果使用了该参数,则对于收到的数据会乘以一个整型或者浮点数,可以用这个选项把KB MBps转化为B Bps类型
update interval 多少秒刷新一次该item
flexible intervals 针对update interval你可以设置例外的情况,可以设置在某个时间段每隔几秒刷新一次,而在其余时间则按照update的设置来刷新,如果有多个flexible设置,则以刷新时间最小的为准。
keep history 在数据库中保存多少天的数据,过期的数据会被清除,
keep trends 保存一些聚合的数据在数据库中的天数,过期数据会被清除, store value
as is 不进行预处理
delta(speed per second) 评估这些数据(value-prev_value)/(time-prev_time)
delta(simple change) 评估这些数据(value-prev_value)
log time format log的时间格式
new application 设置该item属于那个新的application中
applications 把该item连接到已存在的application中,可以是一个或者多个application中
Populates host inventory field 你可以选择一个host信息域存放该item的值,如果设置了
description 输入该item的描述
status
enable 该item会被执行
disable 不会被执行
not supportes 不支持该item
Item types
item types是zabbix提供的各种检查方式,下面主要看zabbix agent类型,这种类型主要通过zabbix agent来收集数据,检查又分为主动检查和被动检查,item key是需要分不同平台的. History and trends
History and trends是两种保存zabbix收集来的数据的方法,history保存每一个收集来的数据,trends保存一些基于小时的平均、最大、最小值信息。 Mass update 如果你有时候需要一次修改一个item的多个属性值,不用打开每一个单独的item去修改,可以使用mass update,可以选择多个items,然后选择mass update
Value mapping
为了使收到的数据更为人们可读,我们可以使用value maps,它包含了numeric valus到string的映射,value map可以用在zabbix的前端和后端,以及例如email SMS的消息提醒上面,例如0可以表示false,1可以表示true,设置value map:
Administration->General->value mapping->create value map ame 一个唯一的名称。
mapping 中设置各个独立的mappings,设置好value mapping后可以在item的配置界面的show value选项中选择
Applications
applications 用在本地group的group items中,在使用applications之前,你必须创建一个applications,并且link items过去。创建applications: Configuration->Hosts->Applications->Create application
Configuration->Templates->Applications->Create application
也可以在创建item的时候直接创建application
Queue queue显示items还剩几分钟刷新,queue只是数据库中数据的逻辑表现,统计很好的显示了zabbix server的性能。 Administration-Queue可以查看,如果有delay的可以通过右上角的details查看具体信息。
Triggers Triggers是一个本地的逻辑表达式,用来评估items收集到的数据并表示当前系统的状态。当items收集数据的时候,它会非常不切实际的遵循这些数据直到碰到一个报警状态,这个评估数据的任务就由trigger来处理。 触发器允许设置一个阈值来决定什么数据是可以接收的,如果进入的数据超过可接受的状态,触发器则会被触发。触发器有两种状态OK/PROBLEM,如果该值是触发器表达式的一部分,在zabbix server每次收到新的值,触发器的状态会被重复计算。配置trigger: Configuration->Hosts->Triggers->Create trigger
该页面包含了两个表单:trigger、dependencies trigger表单属性: name trigger name,这个名称可能包含macros,$1..$9可以被用来关联表达式的常量。 expression 逻辑表达式用来收集触发器的状态 Multiple PROBLEM events generation 通过设置该选项,你可以在触发器产生problem的时候触发一个事件 comments 关于该触发器的信息 url 如果不为空,则该url被用到screen serverity 设置触发器的严重程度 enabled 选择激活该触发器
Trigger experssion
触发器表达式在触发器中是很灵活的,可以组合出各种复杂的表达式。简单的表达式模式如下:{:.()} parameter 许多数值型函数接收参数,有些函数会返回多个值,可以通过在参数前加#,来获取特定的值。
Trigger severity names and colours是可以修改的:
Administration->General->Trigger severities Events
events在zabbix有三个地方可以用到:triggers、discovery、auto registration。events可以是基于时间戳的,也可以是基于actions的,例如邮件报警。关于events的详细信息可以在 Monitoring-Events中查看,可以通过点击时间查看更详细的信息。
Visualisation
Graphs内建有简单的simple graphs和复杂的custom graphs两种形式。
Simple graphs提供items收集到的数据的可视化的数据图,在simple graphs中不需要用户进行配置,他们都是由zabbix自动生成,可以通过Monitoring->Latest data进行查看,点击具体的item的graph link,就会显示数据图,在图形上面有滑动按钮可以选择查看那个时间的数据,还有右边可以设置时间段来显示数据,左边可以设置图形中显示几个小时的数据量。 Custom graphs 提供一些用户定制的图形。Simple graphs可以用来查看单个item的数据,它没有提供用户定制的功能,如果你想改变图形的风格、线条显示的样式、或者想显示多个items的数据,这时就需要costom graphs,需要手动配置,可以创建针对一个主机、多个主机、或者一个templates的图形。创建custom graphs:
Configuration->Hosts->graphs->create graph 该页面包含两个表单:graph、preview graph表单: name 数据图的唯一名称
width 数据图的像素宽度 height 数据图的像素高度 graph type 图像类型,normal 正常图形,数据以线条显示。stacked 叠加式图形。pie 饼状图形。exploded 分解的饼状图形。 show lengend 显示该图利的说明 show working time 如果选择该选项,则未工作的时间段会以灰色背景显示,该选项不支持pie和exploded show triggers 如果选择该项,触发器会以红线显示,不支持pie和exploded precentile line(left) 显示左边Y轴的百分比, precentile line(right) 显示右边Y轴的百分比 Y axis MIN value Y轴的类型,calculated Y轴的值会自动计算,fixed 固定Y轴的最大值和最小值,不支持pie和exploded Y axis MAX value items 显示哪个items的数据图,点击add按钮增加items,graphs items可以配置以下属性: name item的名称,会被显示出来 function 显示哪些值,有all、min、max、avg draw style 回吐的样式,只支持normal graphs Y axis side 元素值显示在那个Y轴旁边 color 颜色
Network maps 用来创建网络拓扑图,在创建网络map之前,你必须先创建一个map,它包含了一些基础的元素,然后才能制作maps。你可以用一个hosts、host group、trigger、image来填充一个map。icons代表map的元素,你可以定义一些icons显示的信息,出问题的时候显示的内容,已有的maps可以在Monitoring->Maps上查看,创建一个map:
Configuration->Maps->create maps map属性如下: name map的名称 width map像素的宽度 height map像素的高度
background image 背景图,no image 没有背景图,image 可以选择一个背景图 icon highlight 图标高亮,如果element有个主动的trigger,则可以使用高亮图标表示,
mark elements on trigger status
expand single problem 如果一个map元素有一个问题,这个选项控制是否显示该问题的名称,如果选择,problem的名称会被使用 advanced labels 可以让你定义一个分开的标题为分开的element type icon label type icons的标题类型,label icon的label,ip address ip地址,element name element的名称,status only 状态,nothing 不显示labels
icon label location label的位置,bottom 下方,left 左边,right 右边,top 顶部
problem display 显示故障问题,full 所有的问题都会被显示,separated 未被确认的问题占左右问题的比重,unacknowledged only 只显示未确认的问题
emplates
一个templates可以设置一个实体,让这个实体方便的应用到一组hosts上面,这个实体可以是items、triggers、graphs、applications、screens、low-level。 当一个templates连接到一个host,则该templates包含的所有实体都会添加到该host,templates经常被用到一组含有相同服务或者应用的机器上。配置template,在创建template的时候,需要你定义几个常用的参数,然后增加一些实体(items、graphs):
Configuration->Templates->Create template 该页含有三个表单:template、linked templates、macros
template name 一个唯一的template名称
visible name 如果你设置该名称,则在lists、maps中显示该名称
groups 哪个hosts/templates属于该template
new group 可以在此新建一个group属于该template,如果是空的,则忽略host/templates List of hosts/templates the template is applied to
linked templates表单允许你连接一个或者多个已经存在的templates到新建的template里面,连接过来的templates中的所有实体都会得到继承
macros表单,允许你定义template-level,底下按钮的意思: save 保存该template
clone 创建一个template基于目前的template
full clone 创建一个template基于当前的template,包括当前template继承的其他template的实体
delete 删除一个template,template的实体仍然会连接到hosts上
delete and clear 删除一个template并且清除所有的实体
cancel 忽略
linking/unlinking template通过linking应用到hosts,通过unlinking从hosts中脱离
linking一个template:Configuration → Hosts-点击hosts-切换到template表单-点击add按钮
linking一个template到多个hosts:Configuration → Templates-点击template表单, 从group中选择hosts Notifications upon events 为了可以向zabbix发送消息,或者从zabbix收到通知信息,我们需要:
1 定义一些媒介
2 定义一些行为向我们定义的媒介上发送信息。
行为由条件和操作构成,当条件达成的时候,操作开始执行,两个重要的操作是发送信息和执行远程命令 媒介类型包括多种:email、sms、jabber、Custom alertscripts等等,主要了解一下email、sms、alertscripts 配置email媒介:
Administration→Media-Create media type 该页只包含一个表单:media description 媒介类型的名称
type 选择一个媒介类型 email
smtp server 设置smtp server用来发送邮件
smtp helo 设置正确的smtp helo值,一般是domain name
smtp email 一个邮件地址,会显示在邮件的from前面,表示从哪里发出来的邮件
enable 开启emai
然后配置用户媒介,给用户分配指定的地址:Administration→Users-点击具体用户-选择media表单-单机add按钮增加媒介。在new media表单中包含以下属性:
type 选择email作为type类型
send to 定义给哪个邮件地址发邮件
when active 可以定义发送信息的时间段
use if serverity 选择哪些级别的trigger信息将被发送
status 是否使用
Actions
如果你希望值事件发生后执行某些动作,你就需要配置actions,可以在三个地方给相应的事件定义actions:triggers、discovery、auto registration。配置actions:
Configuration->Actions->Event source(选择类型)->Create action 一般有三个表单:action、conditions、operations,以triggers类型为例 name 唯一的action名称
Default operation step duration 默认的升级周期
default subject 默认的消息主题,可以包含macros
default message 默认的消息主体,可以包含acros
recovery message 如果开启该选项,zabbix会发送恢复后的信息
recovery subject 恢复消息的主题
recovery message 恢复消息的主体
enable 是否开启该action
|