mr923 发表于 2019-1-19 14:36:09

【Zabbix】03、Zabbi 监控项和图表

  一、zabbix-server 添加被监控主机
  1、Node1节点安装zabbix-agent,zabbix-sender并修改配置文件

# yum install http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
# yum install zabbix-agent zabbix-sender修改配置文件
# grep -v '^#\|^$' zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.10.6
ServerActive=192.168.10.6
Hostname=Node1
Include=/etc/zabbix/zabbix_agentd.d/启动zabbix-agent:
# service zabbix-agent start
Starting Zabbix agent:                                    
# netstat -nlptu|grep zabbix
tcp      0      0 0.0.0.0:10050               0.0.0.0:*                   LISTEN      3352/zabbix_agentd
tcp      0      0 :::10050                  :::*                        LISTEN      3352/zabbix_agentd  

2、zabbix-server添加被监控主机Node1

          点击 configuration --> hosts --> Create host填上相应信息即可

添加完成后:



host name:必须是唯一的,用来标识主机的地址,必须要和agent配置文件中填写的host name保持一致(不区分大小写)。否则会报错,
查看监控机上的/var/log/zabbix/zabbix_server.log,
显示日志:
cannot send list of active checks to : host not found
查看被监控机上的/var/log/zabbix/zabbix_agentd.log,
显示日志:
No active checks on server: host not found
这是因为,通过zabbix configuration页面配置的被监控主机名跟被监控主机上zabbix_agentd.conf中配置的Hostname不一致。
修改为一致的名字后,重启zabbix_agentd即可。visible name:在zabbix-server中显示的名字



二、添加监控项

1、监控项(item)
“ 监控项(item)”是Zabbix 服务器用于监控一个特定对象上的一个特定指标,并负责针对其收集相关的监控数据
       比如CPU每分钟的平均负载可以是一个item,每5分钟的平均负载是一个item,某特定网络接口接收报文的速率又是一个item等


每一个Item都拥有相应的“类型(Type)”
例如:
          “Zabbix agent”、“SNMP”、“External check”、“IPMI agent”、“SSH agent”、“JMX agent”等


Zabbix服务器会使用相应类型的协议或机制同被监控端通信
  

  2、item构成
      tem由key+参数组成

             监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load。如果是获取网卡流量,那么获取网卡这个监控项需要key:net.if.in或者net.if.out。
一般情况下key要与参数结合起来使用,例如获取5分钟的负载情况:system.cpu.load,avg5是对应的参数,如果是1分钟则使用avg1,如果是15分钟则使用avg15(有人会问,如果是2分钟是不是avg2,-!-,没有这种说法)。网卡流量net.if.in,使用eth0作为参数可以获取到eth0网卡的进入流量,同样看一看换成eth1,eth2等等。
  

3、主要属性介绍
Host:
          选择新建的item所属的主机或模板;默认为点击“item”时所属的主机或模板;


Name:
         item的名称,可以使用宏$1、$2、……、$9,用于引用相应Key中的对应的参数;
      例如,名称“CPU $2 time”对于system.cpu.util[,iowait]来说,其名称为“CPU iowait time”;


Type:item类型


Key:
      当前item的key,每个item所支持使用的key取决于所选择的“Type”;对一个主机来讲,每个key必须是惟一的;如果Type为“Zabbix agent”, “Zabbix agent (active)”,“Simple check”或者“Zabbix aggregate”,其Key值必须要被Zabbix agent及Zabbix Server支持才行;



Update interval (in sec):获取数据的时间间隔,0表示不去拉取数据;


Flexible intervals:
         自定义数据更新时间间隔,例如Interval (in sec)为10,Period值为6-7,00:24:00表示周六和周日全天每10秒钟获取一次数据;


Keep history (in days) :
          历史数据保留时长,单位为天;超过此时长的数据都会由Housekeeper清除;一般来说,仅需要保留所需要的时间跨度的最小天数内的数据;


Keep trends (in days):
         聚合(趋势)数据(如min、max、avg、count等数据)的保留时长,单位为天;超过此时长的数据都会由Housekeeper清除;



Store value:
      As is:不做任何处理;
      Delta (speed per second):保存为(value-prev_value)/(timeprev_time)的计算结果,即当前值减去前一次获取的数据值,除以当前时间戳减去前一次值获取时的时间戳得到的结果;如果当前值小于前一次的值,其将会被丢弃;
       Delta (simple change):保存为 (value-prev_value)的计算结果;
Status:
      Enabled:启用;
      Disabled:禁用;
      Not supported:不支持


4、item key
       每一个item都有其专用的“Key”
      Zabbix服务器在与被监控端通信时就使用相应的协议或机制去询问被监控端这个Key的值,被监控端则调用与此Key对应的监控脚本获取数据并返回给服务器端
    Key的命名只能使用“0-9a-zA-Z_-.”等字符,且可以接受参数,
其命令习惯如system.cpu.load[,],其中,中括号中的内容为参数,且分别可以按次序使用$1、$2、…进行引用,此示例中仅有两个参数,若要使用不定数目的参数,则可以使用“*”表示
      注意:每个key背后都应该有一个命令或脚本来负责数据收集,此命令或脚本可调用传递给key的参数,调用方式为$1,$2...
      zabbix有许多预定义的key,详细信息的获取地址:
https://www.zabbix.com/documentation/2.0/manual/config/items/itemtypes/zabbix_agent
       对于每一个item,Zabbix服务器还定义了怎么存储这个item的数据、数据采集的频率及历史数据的保存时长等
   多个item还可归类为一个由“application”定义的逻辑组


5、获取item key的值
# rpm -ql zabbix-get
/usr/bin/zabbix_get
/usr/share/man/man1/zabbix_get.1.gz
# zabbix_get --help
Zabbix get v2.4.8 (revision 59539) (20 April 2016)
usage: zabbix_get [-hV] -s[-p ] [-I ] -k
Options:
-s --host         Specify host name or IP address of a host
-p --port               Specify port number of agent running on the host. Default is 10050
-I --source-address      Specify source IP address
-k --key            Specify key of item to retrieve value for
-h --help                            Display help information
-V --version                         Display version number
Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load"

# zabbix_get -s 192.168.10.1 -k "system.uname"
Linux Node1 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64  
  6、创建监控项
      点击配置(configuration)->主机(Hosts)->在你要配置的主机一栏上点击Items->点击create item。具体看截图,各个参数我都已经标注清楚了。

zabbix-create-item
2. Item 属性详解
属性描述Host主机或者模板Name监控项item名称可以使用如下宏变量:

$1, $2…$9,这9个参数对应item key的参数位置。
例如: Free disk space on $1
如果item key为“vfs.fs.size[/,free]”,那么对应的名称会变成”Free disk space on /“,$1对应了第一个参数”/“,你明白了吗?
Typeitem类型(常见agent、SNMP、agent(active)等),请看后续监控项类型相关文章.Key监控项item的key.点击select可以看到系统很多自带的key,也可以看到用户自定义的key,如何自定义key,情继续关注ttlsa后续的zabbix教程.Host interface主机接口,例如agent、SNMP、impi等Type of information获取到得数据类型

Numeric (unsigned) – 64bit unsigned integer
                              64位无符号整形数字
Numeric (float) – floating point
                           浮点数
numberCharacter – 字符串,最长255字节
Log – 日志文件. key必须为log[].
Text – 大小无限制的文本
Data type定义获取到整数数据的数据类型

Boolean – 数据为0或者1.’true’表示1,’false’为0,不区分大小写。
如下为True和False的定义:
TRUE – true, t, yes, y, on, up, running, enabled, available
FALSE – false, f, no, n, off, down, unused, disabled, unavailable
任何非0数字都被认为是TRUE,0被定义为FALSE.负数呢?
Octal – 八进制
Decimal – 十进制
Hexadecimal – 十六进制
   zabbix将会自动把他们转为数字
Units默认情况下,如果原始值超过1000,那么他会先除以1000并且显示出来例如,设置了单位为bps并且收到的值为11102,将会显示为11.1Kbps

如果单位被指定为 B (byte), Bps (bytes per second) ,那么它会除以1024然后再显示数据。所以大家在监控流量和文件大小的时候不要用错单位,否则会出现数据不一致的情况。
如下为时间单位:
unixtime – 转为 “yyyy.mm.dd hh:mm:ss”. 只能使用正数。
uptime – 转为“hh:mm:ss” 或者“N days, hh:mm:ss”
例如,收到的值为881764秒,他将会显示为“10 days, 04:56:04”
s – 转为“yyy mmm ddd hhh mmm sss ms”;
例如,收到的值为881764(单位秒),他将会被显示为10d 4h 56m”,只会显示3个单元。有时候只会显示2个单元,例如”1m 5h”(不包含分,秒,毫秒),如果返回的值小于0.001,他只会显示”General->Housekeeper->勾选Keep history(in days),输入你希望历史记录保留的时间。
zabbix官方推荐大家尽量开启他,尽量使用一个较短的历史记录。如果你想看历史数据的画,你可以将”趋势历史记录Keep trends”的保留时间设置长一点。
Keep trends(in days)趋势数据(以小时为单位的min,max,avg,count的数据)在数据库中保留时常,过期数据将会被HouseKeeping删除。

从zabbix2.2开始.这个值可以被一个全局值覆盖(请参考上面的Keep history)
备注:趋势数据只能存数字类型数据,字符、日志这些都无法存储。
Store valueAs is – 数据不作处理,存储为原始数据

Delta (speed per second) –
计算值公式为 (value - prev_value)/(time - prev_time)
value – 获取到得原始值
value_prev – 上次接收到的值
time – 当前时间
prev_time – 上次接收数据的时间一般用于数据增长的类型,
例如:
网卡流量,每次获取到得都是当前网卡总流量。比如第一次给的值是0字节(UNIX时间为1),第二获取到得是3000字节(UNIX时间为31),那么套用公式(3000-0)/(31-30),可以得出数据是100字节/秒
备注:如果当前获取到的值比上一个值更小,那么zabbix会忽略这个值,等待下一次的值
Delta (simple change) –
计算公式为 (value - prev_value)
value – 当前值
value_prev – 上次获取到得值
Show value  值映射,需要配置数字映射到字符的映射表。
  例如:
1=>ttlsa.com访问正常。如果key返回的数据为1,那么监控页面不会显示1,而是显示ttlsa.com访问正常。key返回的数据只能为整数,并且不做任何修改保存到数据库中。只有在显示的时候才会根据映射表来展示相应的内容。
Log time format只可以用在LOG类型中,支持占位符:

* y: 年(0001-9999)
* M: 月(01-12)
* d: 日(01-31)
* h: 小时(00-23)
* m: 分钟(00-59)
* s: 秒(00-59)如果时间搓留空不会被解析。
例如:
如下为zabbix agent日志” 23480:20100328:154718.045 Zabbix agent started. Zabbix 1.8.2 (revision 11211).”前面6个字符是PID,后面更上日期,时间和日志内容,日志时间类为“pppppp:yyyyMMdd:hhmmss”
备注:“p” 与 ”:” 为占位符,除了“yMdhms”不能为占位符,其它任意字符都可以作为占位符
New application创建一个新的应用Applications包含多个应用,例如:

cpu、disk、network,监控项可以属于多个应用
Populates host inventory field数据自动填充到inventory资产清单的相应属性,前提是你的inventory处于自动模式Description监控项的描述Enabled是否启用这个监控项.创建item快捷方法,编辑一个item,然后克隆这个item,修改name等等其它数据即可。
3. 不可用的items
由于各种原因,某些item的数据无法获取到,但是zabbix依旧会再固定的时间间隔内重新获取数据


更多关于item key的格式、参数:
      http://www.ttlsa.com/zabbix/zabbix-item-key/




  二、Graphs 图表
1、简易图表
创建item后,zabbix会自动为每个item生成graphs(monitoring -->latest data)
  
  简易图表详解:
  http://www.ttlsa.com/zabbix/zabbix-simple-graphs/


2、自定义图形(graphs)
          今天我们要讲的是zabbix自定义图表功能,这个自定义图表是什么呢?顾名思义,zabbix提供了一个自定义图表的功能,这不是废话么?呵呵~前面文章 讲到的《zabbix简易图表》只能显示单个item的数据图表。如果我们想显示多个信息到一个图表上,那必须使用zabbix自定义图表功能,
比如,我 们最常用的网卡流量监控,一张流量图上会包含进/出的流量信息。一个图表的数据可以来源一台主机,也可以来源于多台主机



      只有需要把多个item在一个graphs中显示时,才需要自定义图形
      自定义图形中可以集中展示多个时间序列的数据流
      支持“线状图(normal)”、“堆叠面积图(stacked)”、“饼图(pie)”和“分离型饼图(exploded)”四种不同形式的图形


创建自定义图表步骤如下:
Configuration→Hosts(或者templates),点击hosts/template列的Graphs,点击右上角的Create graph,出现如下表单。

zabbix自定义图表
Graph属性:
属性描述Name  图表名称(唯一)
  Name:图形的独有名称;建议使用hostname+application+item
Width图表宽度(单位:像素)(仅用于预览和pie/exploded图表).Height图表高度(单位:像素)Graph type图表类型:
Normal - 常规图表, 值显示为线条
Stacked - 叠图, 显示填充区域
Pie - 饼图
Exploded - “裂开的”饼图,显示部分切出的饼图Show legend显示图例说明,例如item名称与最大、平均、最小的数据,一般显示在图表的下方Show working time是否显示工作时间,如果选择这个复选框,那么非工作时间背景为灰色。备注:饼图和爆炸式饼图没有这个参数Show triggers显示触发器,那么触发器将会用红线表示. 两种饼图不包含这个功能Percentile line (left)左Y轴百分数.Percentile line (right)右Y轴百分数Y axis MIN valueY轴最小值:
Calculated - 自动计算Y轴最小值(取item最小值)
Fixed - 固.定Y轴最小值. 饼图与裂变式饼图没有这个参数
Item - 选中item的最新值(例如你选中某网卡,那么它的最小值将来自这个网卡item的最新值)Y axis MAX valueY轴最大值:
Calculated - 自动计算Y轴最大值(取item最大值)
Fixed - 固.定Y轴最大值. 饼图与裂变式饼图没有这个参数
Item - 选中item的最新值(例如你选中某网卡,那么它的最大值将来自这个网卡item的最新值)3D view立体风格图表,仅适用于饼图与爆炸式饼图.Items监控项,图表的数据来源配置图表items
             图表的数据来源于items,点击add选择需要显示到图表的item,可以添加多个。
在一个图形中,不同item的图形还有一些可单独配置的属性,如图形颜色、绘图风格等
Item展示属性:
参数描述Sort order (0→100)  绘图顺序,可以上下拖动items来改变他们的顺序.这个顺序用来决定图层的顺序。
Nameitem名称

Type  Type (仅用于两个饼图图表):
Simple - 按比例显示
Graph sum - 充满整个饼图
一 张图表只允许有一个items是Graph sum,否则报错:ERROR: Cannot display more than one item with type “Graph sum”,通常用于影片,硬盘大小item使用Graph sum,剩余空间则使用simple。这样一个饼图的硬盘使用情况便一目了然。
Function当一个item有多种数值时,选择一种数值用于图表展示
all - 所有值 (最小、平均、最大)
min - 仅最小值
avg - 仅平均值
max - 进最大值Draw style  绘制风格(只有常规图表存在该选项):
Line - 绘制线条
Filled region - 绘制填充区域,,即面积图;
  Bold line - 画粗线
Dot - 画点,虚线图,以稀疏的点组成;
  Dashed line - 画虚线,以破折号组成;
Y axis sideY轴在左边还是右边Colour颜色图表预览
在创建图表的过程中,我们可以随时预览修改的配置图表,点击标签preview即可。
备注:如果是template预览时没有意义的,毕竟没有任何数据。
关于触发器限制
如果图表的高度小于120像素,那么图标上将不会展示触发器相关信息。
  
  例子:
  
  

  

  三、zabbix agent类型所有的key
  
zabbix-agent有两种工作模式:# 是对于zabbix-agent而言的工作模式

passive:被动等待zabbix-server来Item采集数据
active:主动发送Item数据


  1、网卡流量相关
  功能         key            返回值          例子
  

  网卡入口流量 net.if.in    整数      net.if.in
  网卡出口流量 et.if.out    整数      net.if.out
  网卡进/出流量的总和    net.if.total      整数      net.if.total
  

  参数详解:   # < >表示必须参数
  if    网卡名称
  mode   可用值:
  bytes – 字节数 (默认)
  packets – 包数量
  errors – 错误数量
  dropped – 丢包数量
  请使用增量存储方式:Delta(speed per second)
  units:bps
  update interval:60
  一般监控每个网卡进和出的流量即可,可参考zabbix-server模版上设置
  

  2、端口相关
  检测端口是否开启 net.tcp.listen0–未监听,1–监听中net.tcp.listen
  port – TCP端口

  net.tcp.port[,port]
  

  3、进程相关

  kernel.maxfiles

  kernel.maxproc
  

  4、CPU相关
  system.cpu.intr
  sys.cpu.load[,]
  system.cpu.switches
  利用率   system.cpu.util[,,]
  
  5、磁盘IO相关
  vfs.dev.read[,,]
  

  

  zabbix agent 类型所有的key 详情:
  运维生存时间:http://www.ttlsa.com/zabbix/zabbix-agent-types-and-all-keys/
  官网:
  https://www.zabbix.com/documentation/2.4/manual/config/items/itemtypes/zabbix_agent


6、用户也可以自定义item

  关键:选取一个唯一的key
  命令:数据收集的命令或脚本
  后面详细学习
  




页: [1]
查看完整版本: 【Zabbix】03、Zabbi 监控项和图表