企业实战之监控升级可视化zabbix4.0 系列 四

添加agent客户端,linux系统及windows系统

zabbix4.0系列
—私人课件,不出版,不公开,禁止传播
想做好运维工作,人先要学会勤快;
居安思危,勤记而补拙,方可不断提高;
别人的资料用的再爽也是别人的;
自己总结的东西是你自身特有的一种思想与理念的展现;
精髓不是看出来的,精髓是记出来的;
请同学们在学习的过程中养成好的学习习惯;
勤于实践,抛弃教案,勤于动手,整理文档。
+


一、实验环境

zabbix-server端

操作系统 主机名 ip 内存
centos7.5 zabbix 192.168.200.173 1G

zabbix-agent端

操作系统 被监控的主机名 ip地址 运行的项目 内存
centos6.5 www_001 192.168.200.128 nginx 1G
centos7.5 www_002 192.168.200.131 nginx 1G
windows10 suluo 192.168.200.149 2G

二、添加监控项的方法

添加监控项目有多种方式

  • simple check,被监控的服务器无需安装客户端,如ping,端口检测之类的
  • zabbix agent,被动式监控服务器
  • zabbix agent(active),主动式监控服务器
  • snmp check,使用snmp协议去获取监控信息
  • zabbix trapper,主动式监控
  • External check,zabbix server上可编写监控脚本
  • Jmx agent,监控java进程

    2.1下载安装agent客户端

    agent客户端
    客户端监控、简单监控比较
    能获取到更多的监控信息,例如cpu、内存等
    zabbix客户端内置了很多key,方便我们监控基本硬件信息
    zabbix客户端能够自定义监控,方便我们监控部署的应用
  1. 我们在www_001这台主机上安装agent端

  2. [root@www_001~]#yum install-y gcc gcc-c++make pcre-devel
  3. [root@www_001~]#useradd-M-s/sbin/nologin zabbix
  4. [root@www_001 ~]# wgethttps://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz—no-check-certificate #网上下载安装包,或者直接拉进去

  5. [root@www_001~]#ls
  6. anaconda-ks.cfg install.log install.log.syslog nginx-1.16.1.tar.gz zabbix-4.0.3.tar.gz
  7. 你会发现跟zabbixserver是一样的包,这个包里包含了agent端,和server端

  8. [root@www_001~]#tar xf zabbix-4.0.3.tar.gz-C/usr/src/
  9. [root@www_001~]#cd/usr/src/zabbix-4.0.3/
  10. [root@www_001 zabbix-4.0.3]#./configure—prefix=/usr/local/zabbix—enable-agent

  11. Nowrun’make install’
  12. **
  13. ThankyouforusingZabbix!
  14. http://[www.zabbix.com](http://www.zabbix.com/)

  15. 出现这个就成功了

  16. [root@www_001 zabbix-4.0.3]#make&&make install
  17. [root@www_001 zabbix-4.0.3]#echo”$?”
  18. 0
  19. [root@www_001 zabbix-4.0.3]#chown zabbix:zabbix-R/usr/local/zabbix/
  20. [root@www_001 zabbix-4.0.3]#tail-1/etc/profile
  21. exportPATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/#这里大家也可以做软链接,本意是让linux找到命令
  22. [root@www_001 zabbix-4.0.3]#source/etc/profile
  23. [root@www_001 zabbix-4.0.3]#zabbix_agentd-V
  24. zabbix_agentd(daemon)(Zabbix)4.0.3
  25. Revision8799320December2018,compilation time:Feb28202019:29:14
  26. Copyright(C)2018ZabbixSIA
  27. LicenseGPLv2+:GNU GPL version2orlaterhttp://[gnu.org/licenses/gpl.html](http://gnu.org/licenses/gpl.html).
  28. Thisisfree software:you are free to changeandredistribute it according to
  29. the license.ThereisNO WARRANTY,to the extent permittedbylaw.
  30. [root@www_001 zabbix-4.0.3]#cat/usr/local/zabbix/etc/zabbix_agentd.conf#将原有的清空写成下面的样子
  31. PidFile=/usr/local/zabbix/zabbix_agentd.pid
  32. LogFile=/usr/local/zabbix/zabbix_agentd.log
  33. Hostname=www_001#建议最好和web界面的主机名,已经本地主机名三个名字一样,
  34. Server=192.168.200.173#这个就是类似白名单谁可以过来获取信息,这里写server端的ip就可以
  35. ServerActive=192.168.200.173#同上,也是白名单,
  36. UnsafeUserParameters=1
  37. Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf #插入其他的配置文件
  38. [root@www_001 zabbix-4.0.3]# zabbix_agentd
  39. [root@www_001 zabbix-4.0.3]# ss -antup | grep 10050
  40. tcp LISTEN 0 128 :10050 :* users:((“zabbix_agentd”,12714,4),(“zabbix_agentd”,12715,4),(“zabbix_agentd”,12716,4),(“zabbix_agentd”,12717,4),(“zabbix_agentd”,12718,4),(“zabbix_agentd”,12719,4))
  41. [root@www_001 zabbix-4.0.3]# ps -ef | grep zabbix
  42. zabbix 12714 1 0 19:43 ? 00:00:00 zabbix_agentd
  43. zabbix 12715 12714 0 19:43 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
  44. zabbix 12716 12714 0 19:43 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
  45. zabbix 12717 12714 0 19:43 ? 00:00:00 zabbix_agentd: listener #2 [waiting for connection]
  46. zabbix 12718 12714 0 19:43 ? 00:00:00 zabbix_agentd: listener #3 [waiting for connection]
  47. zabbix 12719 12714 0 19:43 ? 00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]
  48. root 12723 4884 0 19:44 pts/0 00:00:00 grep zabbix
  49. [root@www_001 zabbix-4.0.3]# tail -f /usr/local/zabbix/zabbix_agentd.log
  50. 12714:20200228:194342.301 IPv6 support: NO
  51. 12714:20200228:194342.301 TLS support: NO
  52. 12714:20200228:194342.301 **
  53. 12714:20200228:194342.301 using configuration file: /usr/local/zabbix/etc/zabbix_agentd.conf
  54. 12714:20200228:194342.302 agent #0 started [main process]
  55. 12717:20200228:194342.303 agent #3 started [listener #2]
  56. 12718:20200228:194342.304 agent #4 started [listener #3]
  57. 12716:20200228:194342.304 agent #2 started [listener #1]
  58. 12719:20200228:194342.305 agent #5 started [active checks #1]
  59. 12715:20200228:194342.321 agent #1 started [collector]

    2.2zabbix-get

    zabbix提供一个zabbix_get工具,可以跟zabbix agent通讯获取监控信息
    使用方式:zabbix_get -s 指定获取数据的agent端 -k 关键的键
    zabbix agent查看所有可监控项目,在agent端输入这个命令就可以查看zabbix_agentd -p

  60. 在server端进行操作

  61. [root@zabbix~]#zabbix_get-s192.168.200.128-k system.hostname
  62. www_001
  63. [root@zabbix~]#zabbix_get-s192.168.200.128-k system.uname
  64. Linuxwww_0012.6.32-431.el6.x86_64#1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64

    2.3监控cpu的负载

    cpu负载的键(也可以通过zabbix_agentd -p来过滤查看)
  • key: system.cpu.load[all,avg1] Float型
  • key: system.cpu.load[all,avg5] Float型
  • key: system.cpu.load[all,avg15] Float型

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

2.4监控cpu使用和空闲

system.cpu.util[,iowait,] Float型 cpu读写磁盘等待
system.cpu.util[,system,] Float型 系统使用cpu
system.cpu.util[,user,] Float型 用户使用cpu
system.cpu.util[,idle,] Float型 cpu空闲
image.png
image.png
image.png
image.png
image.png
image.png
image.png
同理我们在克隆几个出来我们监控cpu的状态
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

2.5监控剩余内存(buffers\cached实际上也是剩余的)

vm.memory.size[available]
image.png
image.png
image.png
image.png
image.png
image.png

2.6监控磁盘

vfs.fs.size[/,pfree] Float型 监控磁盘容量剩余百分比
vfs.fs.inode[/,pfree] Float型 监控磁盘iNode的使用率剩余的百分比
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

2.7监控流量

net.if.in[eth0] 入流量 整形(每秒速率) 默认返回字节数,需要8
net.if.out[eth0] 出流量 整形(每秒速率) 默认返回字节数,需要
8
我们zabbix获取的流量是总的,我们想要每秒多少流量是需要算的
流量计算公式:(本次获取的流量总数-上次获取的流量总数)/时间间隔(ps:我们一般是30秒)*8
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
附录>如果不知道key的参数是做什么的,我们可以去官网查看
官网地址:https://www.zabbix.com/
查询key怎么用的地址:https://www.zabbix.com/documentation/4.0/manual
image.png
image.png

三、使用模板监控

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

image.png

四、自定义key监控项

自定义key
无参数自定义key
有参数自定义key
使用自定义Shell脚本监控内存,一般脚本只需要输出数字即可

4.1在agent端修改配置文件

  1. 我们自己写一个无参数的获取可用内存的key,在001这台主机上读取内存,我们需要输出的值只是个数字

  2. [root@www_001~]#free-m|grep’Mem:’|awk’{print $NF}’
  3. 311
  4. 将这条命令写到脚本里

  5. [root@www_001~]#cat/tmp/memavailable.sh
  6. !/bin/bash

  7. free-m|grep’Mem:’|awk’{print $NF}’
  8. [root@www_001~]#sh/tmp/memavailable.sh
  9. 311
  10. [root@www_001~]#cat/usr/local/zabbix/etc/zabbix_agentd.conf
  11. PidFile=/usr/local/zabbix/zabbix_agentd.pid
  12. LogFile=/usr/local/zabbix/zabbix_agentd.log
  13. Hostname=www_001
  14. Server=192.168.200.173
  15. ServerActive=192.168.200.173
  16. UnsafeUserParameters=1
  17. Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf #看下agent端的配置文件,如果要定义key需要修改配置文件,我们如果都在主配置文件里写会特别的大,修改起来还麻烦,所以我们引用别的配置文件,类似nginx的配置文件标准化
  18. [root@www_001 ~]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/mem.conf
  19. UserParameter=mem.available,sh /tmp/memavailable.sh
  20. 这个是我们的自定义key的配置文件

  21. UserParameter —>表示自定义key

  22. mem.available—->逗号前边的是我们的key的名字,这个名字跟我们在web页面上写的时候要一样,不然报错

  23. sh /tmp/memavailable.sh—->逗号后边是我们需要执行的命令,这个命令的执行结果一定是个值,这个值就我们key返回的值

  24. 重启服务

  25. [root@www_001 ~]# pkill zabbix_agentd
  26. [root@www_001 ~]# ps -ef | grep zabbix
  27. root 15813 15723 0 12:45 pts/0 00:00:00 grep zabbix
  28. [root@www_001 ~]# zabbix_agentd
  29. [root@www_001 ~]# ps -ef | grep zabbix
  30. zabbix 15816 1 0 12:45 ? 00:00:00 zabbix_agentd
  31. zabbix 15817 15816 0 12:45 ? 00:00:00 zabbix_agentd: collector [idle 1 sec]
  32. zabbix 15818 15816 0 12:45 ? 00:00:00 zabbix_agentd: listener #1 [waiting for connection]
  33. zabbix 15819 15816 0 12:45 ? 00:00:00 zabbix_agentd: listener #2 [waiting for connection]
  34. zabbix 15820 15816 0 12:45 ? 00:00:00 zabbix_agentd: listener #3 [waiting for connection]
  35. zabbix 15821 15816 0 12:45 ? 00:00:00 zabbix_agentd: active checks #1 [idle 1 sec]
  36. root 15823 15723 0 12:45 pts/0 00:00:00 grep zabbix

    4.2在server端测试获取值

  37. [root@zabbix~]#zabbix_get-s192.168.200.128-k mem.available

  38. 311
  39. -s 指定去哪里获取

  40. -k 我的key 是什么名字

    4.3在网页上添加

五、可以传参的自定义key

5.1在agent端编写脚本

  1. [root@www_001~]#cat/tmp/mem.sh
  2. !/bin/bash

  3. case”$1”in
  4. “available”)free-m|grep’Mem:’|awk’{print $NF}’;;
  5. “total”)free-m|grep’Mem:’|awk’{print $2}’;;
  6. “used”)free-m|grep’Mem:’|awk’{print $3}’;;
  7. *)echo”not supported”;;
  8. esac
  9. [root@www_001~]#sh/tmp/mem.sh total
  10. 980
  11. [root@www_001~]#sh/tmp/mem.sh used
  12. 408
  13. 修改配置文件

  14. [root@www_001~]#cat/usr/local/zabbix/etc/zabbix_agentd.conf.d/mem.conf
  15. UserParameter=mem.available,sh/tmp/memavailable.sh
  16. UserParameter=mem.check[*],sh/tmp/mem.sh $1#新添加的一行
  17. 重启服务

  18. [root@www_001~]#pkill zabbix_agentd
  19. [root@www_001~]#ps-ef|grep zabbix
  20. root1599115723013:18pts/000:00:00grep zabbix
  21. [root@www_001~]#zabbix_agentd
  22. [root@www_001~]#ps-ef|grep zabbix
  23. zabbix159941013:18?00:00:00zabbix_agentd
  24. zabbix1599515994013:18?00:00:00zabbix_agentd:collector[idle1sec]
  25. zabbix1599615994013:18?00:00:00zabbix_agentd:listener#1 [waiting for connection]
  26. zabbix1599715994013:18?00:00:00zabbix_agentd:listener#2 [waiting for connection]
  27. zabbix1599815994013:18?00:00:00zabbix_agentd:listener#3 [waiting for connection]
  28. zabbix1599915994013:18?00:00:00zabbix_agentd:active checks#1 [idle 1 sec]
  29. root1600115723013:18pts/000:00:00grep zabbix
  30. [root@www_001~]#

    5.2在server端验证

  31. [root@zabbix~]#zabbix_get-s192.168.200.128-k mem.check[used]

  32. 408
  33. [root@zabbix~]#zabbix_get-s192.168.200.128-k mem.check[total]
  34. 980

    5.3在web界面添加监控项

六、Windows系统添加zabbix

6.1我们创建一个Windows系统

一直下一步知道安装完成

6.2zabbix监控Windows

  1. [root@zabbix~]#zabbix_get-s192.168.200.149-k system.uname
  2. WindowsDESKTOP-MRVB91210.0.10586MicrosoftWindows10企业版x64
  3. [root@zabbix~]#zabbix_get-s192.168.200.149-k vm.memory.size[free]
  4. 1142566912
  5. [root@zabbix~]#zabbix_get-s192.168.200.149-k vfs.fs.size[C:,pfree]
  6. 82.884299
  7. [root@zabbix~]#zabbix_get-s192.168.200.149-k vfs.fs.size[C:,free]
  8. 52903399424