zabbix
时间:2016年9月22日
笔者QQ:381493251
Abcdocker交流群:454666672
如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体!
一、添加监控主机及设置
1.创建主机
<img src="http://static.zybuluo.com/abcdocker/j81fmx89ky58a4jfpmo4ut9e/1.png" alt="1.png-47.5kB" title=""> <br />
<img src="http://static.zybuluo.com/abcdocker/4svpu437j9eefzysr9j35epk/2.png" alt="2.png-52.5kB" title=""> <br />
Agent可以干一些SNMP无法干的事情,例如自定义监控项
snmp相关文章:http://www.abcdocker.com/abcdocker/1376
<img src="http://static.zybuluo.com/abcdocker/6rxuzdyaf0y0zeypynxon5gu/3.png" alt="3.png-32kB" title=""> <br />
这里我们先不着急点add,还需要设置其他选项
<img src="http://static.zybuluo.com/abcdocker/vmuruj6hkfhu4ybc2hscgfnz/1.png" alt="1.png-17.4kB" title=""> <br />
点击监控模板
zabbix监控是由监控项组成(cpu使用率监控就是一个监控项/内存使用率就是一个监控项),如果是100台服务器就需要监控模板了。只需要将监控项和模板关联起来即可
举个例子: 我们上面主机使用的是SNMP,就可以直接搜索SNMP。提示: 有的模板需要自己定义
<img src="http://static.zybuluo.com/abcdocker/tbhh013er8m1dmbtm07ux1k9/2.png" alt="2.png-30.2kB" title=""> <br />
温馨提示: 请点击下面的小add 然后在点大的。否则会出现问题哦
<img src="http://static.zybuluo.com/abcdocker/si1rdxwzsrkibqh4omcxxppa/1.png" alt="1.png-32.6kB" title=""> <br />
IPMI如果有的话,需要在这里写上用户名和密码
<img src="http://static.zybuluo.com/abcdocker/wm4dw7lfumbwwic49ehe1xl8/2.png" alt="2.png-23kB" title=""> <br />
宏定义,这个宏其实就是一个变量。我们给可以给变量附一个值
<img src="http://static.zybuluo.com/abcdocker/zmg9hz2w9ovyj1exngjo7p04/3.png" alt="3.png-15.1kB" title=""> <br />
因为我们设置的是SNMP,SNMP有一个团体名。并且可以设置定义
团体名是中间的abcdocker,具体的可以看http://www.abcdocker.com/abcdocker/1376
[ root@localhost ~]# cat / etc / snmp / snmpd . conf
rocommunity abcdocker 192.168 . 56.11
<img src="http://static.zybuluo.com/abcdocker/2iof7n061f6hm8j3qzbnooae/1.png" alt="1.png-23.1kB" title=""> <br />
值:{$SNMP_COMMUNITY}
<img src="http://static.zybuluo.com/abcdocker/04e2cwyqrlb4ekgc59ykr1ma/2.png" alt="2.png-43.1kB" title=""> <br />
主机资产设置分为3中
1、关闭 Disabled
2、手动 Manual
3、自动 Automatic (自动代表的是你在定义监控项的时候,他有一个小箭头,勾上之后监控项的值就会填写在这里)
我们这设置好模板就可以选择add了
<img src="http://static.zybuluo.com/abcdocker/g27vf2q3jzcvp0icc4uz4l0a/3.png" alt="3.png-43.8kB" title=""> <br />
等SNMP变绿就好了
<img src="http://static.zybuluo.com/abcdocker/gy3tv22ljiko7vwtm8arb1p7/4.png" alt="4.png-52.6kB" title=""> <br />
现在的状态是用SNMP进行监控了,我们只是添加了一个SNMP OS LINUX的模板,但是出现了4个。这4个链接。可以和多个模板连起来用
<img src="http://static.zybuluo.com/abcdocker/1yv902hug2btfhuh2xsuz3f6/1.png" alt="1.png-46.6kB" title=""> <br />
进入监控项,下面这个菜单是过滤搜索用的
<img src="http://static.zybuluo.com/abcdocker/fw28aprb1b1z6nnpd1n2w7an/2.png" alt="2.png-57.3kB" title=""> <br />
下面全都是模板
我们可以随便点击一个,这里我们新建一个监控项
<img src="http://static.zybuluo.com/abcdocker/b8gw0nwnwhicxfft4gjv5tmb/3.png" alt="3.png-65.2kB" title=""> <br />
点击创建
类型选择
Zabbix agent 被动
Zabbix agent (active主动模式)
Simple check 简单检测
SNMPv1 agent ......
<img src="http://static.zybuluo.com/abcdocker/1de8n88mc4erw588m7epicov/1.png" alt="1.png-45kB" title=""> <br />
在Key这行点击Select 可以进行选择
<img src="http://static.zybuluo.com/abcdocker/upjd5823844fx6afcz1e6rnb/2.png" alt="2.png-97.3kB" title=""> <br />
我们随便选择一个,例如agent.version。查看agent的版本
Numeric是无符号整数型
<img src="http://static.zybuluo.com/abcdocker/ds76pdwr7wcsii4pbbjalo1n/1.png" alt="1.png-20.3kB" title=""></p>
2.图形说明
Configuration----hosts----Graphs
<img src="http://static.zybuluo.com/abcdocker/gj5sel1y7f5lch28lzu0hvfj/1.png" alt="1.png-81.6kB" title=""> <br />
绘图靠的是监控项,我们可以随便打开一个看看
<img src="http://static.zybuluo.com/abcdocker/cgtrtibyvqc7h5mtg9uezbtl/2.png" alt="2.png-58.6kB" title=""> <br />
颜色等都是可以随意设置
3、聚合图形screens设置
<img src="http://static.zybuluo.com/abcdocker/r980pqyx7vwriopax6d54rsr/1.png" alt="1.png-42kB" title=""> <br />
提示: 因为咱们用的版本是3.0当2.4的时候需要在Configuration----下面来创建screens
创建Screens
<img src="http://static.zybuluo.com/abcdocker/3ky0g5rntud2e7niomnrhdb6/2.png" alt="2.png-16.3kB" title=""> <br />
我们创建一个2*2 命名为test screens的screens
<img src="http://static.zybuluo.com/abcdocker/o0qer9v45p2idenpp68c9li5/3.png" alt="3.png-37.5kB" title=""> <br />
然后我们点进去
点击编辑
<img src="http://static.zybuluo.com/abcdocker/i1xlztn5h0abi4de7qzmvf7s/1.png" alt="1.png-34.9kB" title=""> <br />
点击Change进行设置
<img src="http://static.zybuluo.com/abcdocker/uly3qbmxeoi5syps8qidapkv/1.png" alt="1.png-32.5kB" title=""> <br />
<img src="http://static.zybuluo.com/abcdocker/r2eax3vndmjc5eowc66ntooo/2.png" alt="2.png-25.8kB" title=""> <br />
多添加几个之后就是以下结果
<img src="http://static.zybuluo.com/abcdocker/uw3c2tyk9szv2jywpip06kyl/3.png" alt="3.png-96.9kB" title=""></p>
二、监控案例[自定义监控项]
例如: 我们自己添加一个监控项来进行监控当前的活动连接数 [Nginx 安装请看上一篇]
nginx安装地址:http://www.abcdocker.com/abcdocker/1376
Nginx状态模块配置如下,过于简单不说了
[ root@localhost ~]# cat / usr / local / nginx / conf / nginx . conf
listen 8080 ;
location / status {
stub_status on ;
access_log off ;
allow 192.168 . 56.0 / 24 ;
deny all ;
}
修改nginx端口并重启
测试:http://192.168.56.11:8080/status
<img src="http://static.zybuluo.com/abcdocker/fgtl3q5vtn5gyrvuyowwp10t/1.png" alt="1.png-8.7kB" title=""> <br />
解释说明: 使用zabbix来监控活动连接数,通过status状态模块为前提
我们现在命令取出我们想要的值,例如:
[ root@localhost ~]# curl - s http :// 192.168 . 56.11 : 8080 / status | grep Active | awk - F "[ ]" '{print $3}'
1
因为我们是监控他的活动连接数,他的活动连接数为1
[ root@linux - node1 ~]# vim / etc / zabbix / zabbix_agentd . conf
Include =/ etc / zabbix / zabbix_agentd . d /
#提示: 如果想要加自定义监控项,不要在配置文件中写入,可以在Include里面定义的目录写上
只要我们写在Include目录下,都可以识别到
[ root@linux - node1 ~]# cd / etc / zabbix / zabbix_agentd . d /
[ root@linux - node1 zabbix_agentd . d ]# ls
userparameter_mysql . conf
#默认有一个MySQL的,我们可以参考MySQL的进行操作
UserParameter = mysql . ping , HOME =/ var / lib / zabbix mysqladmin ping | grep - c alive
#提示,前面是key的名称 后面的key的命令
UserParameter = mysql . version , mysql - V
我们自己编辑一个文件
[ root@linux - node1 zabbix_agentd . d ]# cat nginx . conf
UserParameter = nginx . active ,/ usr / bin / curl - s http :// 192.168 . 56.11 : 8080 / status | grep Active | awk - F "[ ]" '{print $3}'
#提示,此处配置文件的名字可以随便起
如果是多个命令可以写一个脚本,命令最好写绝对路径!这个过程其实就是我们定义监控的过程,前面是key的名字,后面是命令
修改完配置文件之后需要重启 zabbix-agent
[ root@linux - node1 zabbix_agentd . d ]# systemctl restart zabbix - agent
配置完成之后先在server端测试,是否可以获取到agent上的值。不要着急添加
我们现在只用了1台服务器,本机是server也是agent。然后使用zabbix-get进行测试
[ root@linux - node1 zabbix_agentd . d ]# yum list | grep zabbix
zabbix - agent . x86_64 3.0 . 4 - 1.el7 @zabbix
zabbix - release . noarch 3.0 - 1.el7 installed
zabbix - server - mysql . x86_64 3.0 . 4 - 1.el7 @zabbix
zabbix - web . noarch 3.0 . 4 - 1.el7 @zabbix
zabbix - web - mysql . noarch 3.0 . 4 - 1.el7 @zabbix
python - pyzabbix . noarch 0.7 . 3 - 2.el7 epel
uwsgi - stats - pusher - zabbix . x86_64 2.0 . 13.1 - 2.el7 epel
zabbix - get . x86_64 3.0 . 4 - 1.el7 zabbix
查看 zabbix_get
[ root@linux - node1 zabbix_agentd . d ]# yum install - y zabbix - get
zabbix-get使用参数 如下:
[ root@linux - node1 zabbix_agentd . d ]# zabbix_get - s 192.168 . 56.11 - p 10050 - k "nginx.active"
- s 指定我们要查看的服务器
- p 端口,可以不加。默认是 10050
- k 监控项的名称(根据上面的配置来定义的)
更多参数: zabbix_get -- help
错误案例:
如果出现如下错误,大致意思是拒绝连接
[ root@linux - node1 zabbix_agentd . d ]# zabbix_get - s 192.168 . 56.11 - p 10050 - k "nginx.active"
zabbix_get [ 24234 ]: Check access restrictions in Zabbix agent configuration
解决方法:
[ root@linux - node1 ~]# vim / etc / zabbix / zabbix_agentd . conf
Server = 192.168 . 56.11
因为我们当时只允许本机127.0.0.1进行连接。所以会出现这样问题
[ root@linux - node1 ~]# systemctl restart zabbix - agent
修改完配置文件都要重启
提示: zabbix-agent的配置文件中指定允许那个server连接,那个才可以进行连接。
[ root@linux - node1 zabbix_agentd . d ]# zabbix_get - s 192.168 . 56.11 - p 10050 - k "nginx.active"
1
正确结果如上!
提示:如果在zabbix-agent上面修改了,还需要在网页上进行修改
<img src="http://static.zybuluo.com/abcdocker/ih8yim8qme8bm40hqm8b41j6/1.png" alt="1.png-73.8kB" title=""> <br />
在/etc/zabbix/zabbix-agent.conf上面指定的Server是谁,就只会允许谁通过。如果有多个ip可以使用逗号进行分割
添加item
<img src="http://static.zybuluo.com/abcdocker/83mkfen1hztvnrrhewjnsddz/2.png" alt="2.png-97.6kB" title=""> <br />
找到一个安装zabbix-agent,点击
<img src="http://static.zybuluo.com/abcdocker/mfxb8fhirjmb6u7ulrvk365f/3.png" alt="3.png-80.8kB" title=""> <br />
点击items
<img src="http://static.zybuluo.com/abcdocker/o8auzfksirscbv9bhdzctup2/1.png" alt="1.png-68.9kB" title=""> <br />
然后添加Create item(创建item)
<img src="http://static.zybuluo.com/abcdocker/c5f47fxv93qyauit3o37pw8k/1.png" alt="1.png-38.4kB" title=""> <br />
<img src="http://static.zybuluo.com/abcdocker/gyy8rowqjd48bngf9hwpe8um/2.png" alt="2.png-4.3kB" title=""> <br />
Data type:数据类型,这里我们选择Decimal。其他的基本上用不上
Units:单位 超过1千就写成1k了。 可以在这里做一个单位的设置。默认就可以
Use custom multiplier:如果这里面设置了一个数,得出来的结果都需要乘以文本框设定的值
<img src="http://static.zybuluo.com/abcdocker/60thi9dvrod0ww3hlou50lh7/1.png" alt="1.png-17.2kB" title=""> <br />
Update interval(in sec) 监控项刷新时间间隔(一般不要低于60秒)
Custom intervals 创建时间间隔(例如:1点-7点每隔多少秒进行监控)格式大致为:周,时,分
<img src="http://static.zybuluo.com/abcdocker/p3tr2mf0vbtkyowxujl8w5nk/2.png" alt="2.png-21.7kB" title=""> <br />
History storage period 历史数据存储时间(根据业务来设置,默认就可以)
Trend storage period 趋势图要保存多久
New application 监控项的组
application 选择一个监控项组
Populates host inventory field 资产,可以设定一个监控项。把获取的值设置在资产上面
<img src="http://static.zybuluo.com/abcdocker/p2o8fxc4v8gub7mgbz56llo6/1.png" alt="1.png-22.1kB" title=""> <br />
描述!必须要写。 要不你就是不负责任
<img src="http://static.zybuluo.com/abcdocker/ifdmysfwfe3rfjysfdo0bmaw/2.png" alt="2.png-6.4kB" title=""> <br />
添加自定义监控项小结:
1、添加用户自定义参数(在/etc/zabbix/zabbix.agent.d/定义了一个nginx.conf步骤如上)
2、重启zabbix-agent
3、在Server端使用zabbix_get测试获取(命令如上)
4、在web界面创建item(监控项)
自定义图形
<img src="http://static.zybuluo.com/abcdocker/qpf3oe1mtyjfcp1csrqy0jmk/3.png" alt="3.png-110.3kB" title=""> <br />
Name:名字
Width:宽度
Height:高度
Graph type:图形类型
其他默认 即可
<img src="http://static.zybuluo.com/abcdocker/7arwkjplu87a4vnouodtd4i9/1.png" alt="1.png-45.3kB" title=""> <br />
然后我们点击Add添加Items监控项,找到我们刚刚设置的服务器
<img src="http://static.zybuluo.com/abcdocker/2vkidw3qkgjm5u3dteazxl2l/2.png" alt="2.png-145.4kB" title=""> <br />
然后找到我们刚刚添加的监控项
<img src="http://static.zybuluo.com/abcdocker/7f4bagggpngzkd7qxhthexc6/3.png" alt="3.png-11.2kB" title=""> <br />
还可以选择颜色,添加其他的很多设置。不细说
<img src="http://static.zybuluo.com/abcdocker/s44d72jk4f2zl88cl1v56v9u/4.png" alt="4.png-36.5kB" title=""> <br />
点击Prewview可以进行预览,如果出现字符乱码可以阅读我们另一篇文章(zabbix默认不支持中文)
确定没有问题,选择下方Add即可
<img src="http://static.zybuluo.com/abcdocker/ulzay2q8xzmbgkprtmqqlorl/5.png" alt="5.png-92.3kB" title=""> <br />
出现我们添加的
<img src="http://static.zybuluo.com/abcdocker/922eyqacga5ulertzt9yy50h/image_1at7vvch71hlq19i09hc1754tr6gp.png" alt="image_1at7vvch71hlq19i09hc1754tr6gp.png-75.2kB" title=""> <br />
需要在Monitoring--->Graphs--->选择我们添加的主机即可
接下来我们需要进行测试:
测试前:
<img src="http://static.zybuluo.com/abcdocker/hqijb5gxkxuegoo51gp3vc6r/6.png" alt="6.png-13kB" title=""> <br />
使用ab测试工具进行测试,设置100万并发进行访问
[ root@linux - node1 ~]# ab - c 1000 - n 1000000 http :// 192.168 . 56.11 : 8080 /
This is ApacheBench , Version 2.3 < $Revision : 1430300 $ >
Copyright 1996 Adam Twiss , Zeus Technology Ltd , http :// www . zeustech . net /
Licensed to The Apache Software Foundation , http :// www . apache . org /
Benchmarking 192.168 . 56.11 ( be patient )
测试后:
<img src="http://static.zybuluo.com/abcdocker/xc5z2satimxugt8x6jw8b1qw/1.png" alt="1.png-14.5kB" title=""> <br />
我们可以查看zabbix监控图标
<img src="http://static.zybuluo.com/abcdocker/gi1xijupilsq8gxrzakq2ga6/2.png" alt="2.png-69.9kB" title=""> <br />
我们中间设置了间隔60秒,说明每隔60秒我们进行获取一次
我们可以设置它的方式显示
找到Graph选择类型,Stacked是堆叠显示,其他的大家可以自行百度。不细说
堆叠显示如下:
<img src="http://static.zybuluo.com/abcdocker/5jkmyzfkic08c0urp03xesa7/3.png" alt="3.png-58.8kB" title=""> <br />
如果我们想加多个图形都显示在一张图上,可以进行如下操作
<img src="http://static.zybuluo.com/abcdocker/uyo2p1y7v9ymk85qsr923ajn/4.png" alt="4.png-57.1kB" title=""> <br />
找到Graphs
<img src="http://static.zybuluo.com/abcdocker/prgijk2u68df54h8wl0ha8z6/5.png" alt="5.png-89.8kB" title=""> <br />
找到我们设置的图形
<img src="http://static.zybuluo.com/abcdocker/5dzz1fxmzc2emio4tv8utkww/1.png" alt="1.png-64.4kB" title=""> <br />
点击添加即可
我们可以让多个图标显示在一个图片上
<img src="http://static.zybuluo.com/abcdocker/ih9nq02l511or5vy9qc48slx/2.png" alt="2.png-41.9kB" title=""> <br />
点击我们创建一个聚合图形(screens)
<img src="http://static.zybuluo.com/abcdocker/2uim2vw4yjs2n2bgls38noh5/1.png" alt="1.png-45.5kB" title=""> <br />
点击进去
<img src="http://static.zybuluo.com/abcdocker/dhvbzdw9usbmbpzwcn43rt2o/2.png" alt="2.png-40.5kB" title=""> <br />
点击编辑
<img src="http://static.zybuluo.com/abcdocker/aqum6wnajtqntd8vs6f9bi2z/1.png" alt="1.png-28.3kB" title=""> <br />
选择item添加的地方,因为上面创建聚合图形的时候我们选择了2X2 所以这里会显示2个
<img src="http://static.zybuluo.com/abcdocker/wbp7n8tld2xgbeqjfmn99lxx/2.png" alt="2.png-53.8kB" title=""> <br />
找到相对应的添加即可
我们可以多添加几个
<img src="http://static.zybuluo.com/abcdocker/sqdyeup8fe5yddyriby1rihe/3.png" alt="3.png-60.3kB" title=""> <br />
结果如上图显示
除了显示图片还可以显示其他内容
<img src="http://static.zybuluo.com/abcdocker/jxd25fdtjazq7pddibqdtnsu/4.png" alt="4.png-24.4kB" title=""></p>
Action log:日志
Clock:时间
Data overview:数据概述
Graph:图形
History of events:历史事件
Host group issues:主机组问题
Host issues:主机问题
Hosts info:主机信息
Plain text:文本
Map:架构图
Screen:屏幕
Server info:服务器信息
Simple graph:简单的图
Simple graph prototype:简单的原型图
System status:系统状态
Triggers info:触发器信息
Tiggers overview:概述
URL:URL地址
例如我们输入一个URL:
<img src="http://static.zybuluo.com/abcdocker/gyyiitkhvpajp2robs9mmoi8/1.png" alt="1.png-24.4kB"> <br />
<img src="http://static.zybuluo.com/abcdocker/uvk9k4cwtqlgyl7qf4weznka/2.png" alt="2.png-54.9kB"> <br />
我们还可以自定义一个Maps,一张架构图。操作如下:
<img src="http://static.zybuluo.com/abcdocker/7ydrya76m3ee4nnlq0oqlrjq/3.png" alt="3.png-45.4kB"> <br />
第二步:选择编辑Edit map
<img src="http://static.zybuluo.com/abcdocker/2oi78yww7m1qec6gqia7rhb3/4.png" alt="4.png-45.8kB"> <br />
因为他默认图片比较小,我们可以点击下方,进行调整图片大小。
<img src="http://static.zybuluo.com/abcdocker/cf0cycb7vhq7itv0o9udfhkm/5.png" alt="5.png-41.4kB"> <br />
点击右上角编辑,然后我们点中图中的服务器即可
<img src="http://static.zybuluo.com/abcdocker/fx82r6yfmqsx8ypw13gr0bku/6.png" alt="6.png-53.4kB" title=""> <br />
我们模拟有2台服务器
<img src="http://static.zybuluo.com/abcdocker/rdyhkzuv6iwmdsswqse6p7cs/7.png" alt="7.png-47.6kB"> <br />
然后我们选中新添加的服务器进行修改
<img src="http://static.zybuluo.com/abcdocker/epzqe1fx9p8sv38abipfsyw6/8.png" alt="8.png-68.4kB"> <br />
点击Apply就可以了。
按住Ctrl点中zabbix server和另一台服务器
<img src="http://static.zybuluo.com/abcdocker/ynh1qahiruxw58gwyde56laf/9.png" alt="9.png-63.9kB"> <br />
然后我们点击左上方的Link:他们就连接起来了
<img src="http://static.zybuluo.com/abcdocker/vgde6yu3j3sh13dt3joe1vyi/1.png" alt="1.png-77.6kB" title=""> <br />
温馨提示:修改完成后需要点击保存[update]如果不点后果就是从新在做一遍~
<img src="http://static.zybuluo.com/abcdocker/i5mbpcc2i0wtifwfvwu9gckt/2.png" alt="2.png-49.7kB"></p>
未完!
为了方便大家观看博客当中的文章,本人开通了微信公众号。喜欢我们就快来关注我们吧