当前位置:   article > 正文

Zabbix2.4 之自定义监控图表、报警机制_zabbix监控 绘图报警

zabbix监控 绘图报警

目录

1 知识拓展

做监控是为了保证业务的正常运行。 
推荐一些工具:站长工具tool.chinaz.com(超级ping) 
smokeping(https://oss.oetiker.ch/smokeping/
监控的一些比较好的第三方软件:监控宝、博睿、基调(听云) 
友情博客链接 Centos6.5 安装Zabbix3.4

2 监控体系

2.1 硬件监控

硬件监控一般基于IPMI工具来实现的,可对底层硬件进行监控,如机服务器风扇、服务器温度等进行监控。可参考IBM官方文档(写的比较好)。若想要支持IPMI需要满足三个条件: 
1)服务器支持(现在一般服务器都支持) 
2)操作系统支持(Linux支持) 
3)软件本身支持

Centos安装IPMI可直接yum安装

yum install OpenIPMI ipmitool -y
  • 1
  • 2

安装完成后lsmod查看内核模块中是否有ipmi会发现是没有的,因为系统没有自动加载,需要启动ipmi服务,虚拟机会启动失败,物理机可正常启动(/etc/init.d/ipmi start)

IPMI有个缺点就是获取不到服务器硬盘的状态信息,可以用MegaCli这个工具来获取硬盘raid阵列状态信息 http://www.ttlsa.com/html/tag/megacli/

  1. [root@Centos69 ~]# /etc/init.d/ipmi start # 虚拟机会启动失败,若有真机就可以启动成功
  2. Starting ipmi drivers: [FAILED]
  3. [root@Centos69 ~]# lsmod |grep ipmi
  4. [root@Centos69 ~]# ipmitool help # 查看帮助
  5. Commands:
  6. raw Send a RAW IPMI request and print response
  7. i2c Send an I2C Master Write-Read command and print response
  8. spd Print SPD info from remote I2C device
  9. lan Configure LAN Channels
  10. chassis Get chassis status and set power state
  11. power Shortcut to chassis power commands
  12. event Send pre-defined events to MC
  13. mc Management Controller status and global enables
  14. sdr Print Sensor Data Repository entries and readings # 打印传感器相关数据
  15. sensor Print detailed sensor information #详细打印传感器相关的数据
  16. fru Print built-in FRU and scan SDR for FRU locators
  17. gendev Read/Write Device associated with Generic Device locators sdr
  18. sel Print System Event Log (SEL)
  19. pef Configure Platform Event Filtering (PEF)
  20. sol Configure and connect IPMIv2.0 Serial-over-LAN
  21. tsol Configure and connect with Tyan IPMIv1.5 Serial-over-LAN
  22. isol Configure IPMIv1.5 Serial-over-LAN
  23. user Configure Management Controller users
  24. channel Configure Management Controller channels
  25. session Print session information
  26. dcmi Data Center Management Interface
  27. sunoem OEM Commands for Sun servers
  28. kontronoem OEM Commands for Kontron devices
  29. picmg Run a PICMG/ATCA extended cmd
  30. fwum Update IPMC using Kontron OEM Firmware Update Manager
  31. firewall Configure Firmware Firewall
  32. delloem OEM Commands for Dell systems
  33. shell Launch interactive IPMI shell
  34. exec Run list of commands from file
  35. set Set runtime variable for shell and exec
  36. hpm Update HPM components using PICMG HPM.1 file
  37. ekanalyzer run FRU-Ekeying analyzer using FRU files
  38. ime Update Intel Manageability Engine Firmware
  39. # ipmitool sensor list
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

2.2 系统监控

  • CPU指标(lscpu、mpstat):作用就是给每个进程分配时间片,而后不断调度这些进程。把数据从CPU寄存器中拿出来,然后把别的进程中的数据放入CPU寄存器中叫做上下文切换。
  • 负载指标(uptime/top):通过负载来判断系统的一个运行状态。cat /proc/loadavg
  • CPU使用率(top/htop):用户态和内核态。做系统调用的时候就会调用内核态,打开一个文件等。在跑满的情况下用户态(65%~70%)和内核态(30%~35%)的比例算合理的。数据库的瓶颈在I/O,可以通过给数据库换闪存卡来提高数据库的效率,不过有点贵,需要注意,并不是开源的就是最强的。vmstat 1每秒钟刷新一下
  • 内存:free -m:主要看buffer/cache的指标为准确的。
  • 磁盘使用率:df -h
  • I/O:iotop(默认没有安装,需要在epel源后手动yum安装)

2.3 网络监控

  • iftop(也需要手动安装):流量监控。
  • nmon: nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括:https://baike.baidu.com/item/nmon/4223320
  • TCP11种状态机监控
  • 无论怎么进行网络监控都不太准确,所以需要一些第三方的监控软件:监控宝、博睿、基调(听云)等。
  • 超级ping,可以测试不同运营商、地域之间ping来得到本地机房的质量。一般延时120ms内为较好。
  • smokeping:一款比较简单的,支持分布式,可配置多个slave来监控网络状态信息。可查看本地机房到全国各地的网络状态。在freebsd上最好安装。

2.4 应用监控

  1. # 所有的应用程序都会提供相关的接口,如apache、nginx都会提供一个status页面来显示状态信息。redis和memcached也有相关接口,下面给个redis的例子:
  2. [root@Centos69 ~]# yum install redis
  3. [root@Centos69 ~]# /etc/init.d/redis start
  4. Starting redis-server: [ OK ]
  5. [root@Centos69 ~]# redis-cli
  6. 127.0.0.1:6379> info
  7. # Server
  8. redis_version:3.2.11
  9. redis_git_sha1:00000000
  10. redis_git_dirty:0
  11. redis_build_id:6ad59081ae574f13
  12. redis_mode:standalone
  13. os:Linux 2.6.32-696.el6.x86_64 x86_64
  14. arch_bits:64
  15. multiplexing_api:epoll
  16. gcc_version:4.4.7
  17. process_id:1601
  18. run_id:50e5711635c89f29bd3406772ab0f82117aa8e7b
  19. tcp_port:6379
  20. uptime_in_seconds:9
  21. uptime_in_days:0
  22. hz:10
  23. lru_clock:15300014
  24. executable:/usr/bin/redis-server
  25. config_file:/etc/redis.conf
  26. ......
  27. 自动化监控
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

2.5 流量分析

google分析、seo(搜索引擎优化) 
开源的分析软件(PIWIK)matomo.org

3 安装zabbix 2.4

# 注意zabbix-server不支持Windows,客户端支持Windows。 
环境: 
zabbix_server ip:10.0.0.77 (hostname:linux-node1) 
zabbix_agent ip:10.0.0.88 (hostname:linux-node2)

  1. # 安装zabbix的引导源,版本号为2.4
  2. [root@linux-node1 ~]# yum install http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm -y
  3. # yum安装zabbix
  4. [root@linux-node1 ~]# rpm -ql zabbix-release
  5. /etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX
  6. /etc/yum.repos.d/zabbix.repo
  7. /usr/share/doc/zabbix-release-2.4
  8. /usr/share/doc/zabbix-release-2.4/GPL
  9. [root@linux-node1 ~]# yum install zabbix zabbix-agent zabbix-server zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql -y
  10. # 修改数据库配置并启动数据库
  11. [root@linux-node1 ~]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  12. cp: overwrite `/etc/my.cnf'? y
  13. [root@linux-node1 ~]# vim /etc/my.cnf # 在[mysqld]字段下添加以下内容,修改字符集
  14. character-set-server = utf8
  15. init-connect = 'SET NAMES utf8'
  16. collation-server = utf8_general_ci
  17. [root@linux-node1 ~]# /etc/init.d/mysqld start #启动mysql服务
  18. # 导入数据库信息
  19. [root@linux-node1 ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
  20. [root@linux-node1 create]# mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
  21. [root@linux-node1 create]# mysql -e "grant all on zabbix.* to zabbix@localhost identified by 'zabbix';"
  22. [root@linux-node1 create]# mysql -uroot -pzabbix zabbix <schema.sql
  23. [root@linux-node1 create]# mysql -uroot -pzabbix zabbix <images.sql
  24. [root@linux-node1 create]# mysql -uroot -pzabbix zabbix <data.sql
  25. # 修改apache中zabbix.conf配置文件,并启动httpd服务
  26. [root@linux-node1 ~]# vim /etc/httpd/conf.d/zabbix.conf
  27. php_value date.timezone Asia/Shanghai
  28. [root@linux-node1 ~]# /etc/init.d/httpd start
  29. Starting httpd: httpd: apr_sockaddr_info_get() failed for linux-node1
  30. httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  31. [ OK ]
  32. # 修改zabbix-server的配置文件,连接zabbix数据库,并重启httpd服务
  33. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_server.conf
  34. DBHost=localhost
  35. DBName=zabbix
  36. DBUser=zabbix
  37. DBPassword=zabbix
  38. [root@linux-node1 ~]# /etc/init.d/httpd restart
  39. Stopping httpd: [ OK ]
  40. Starting httpd: httpd: apr_sockaddr_info_get() failed for linux-node1
  41. httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
  42. [ OK ]
  43. # 启动zabbix-server服务
  44. [root@linux-node1 ~]# /etc/init.d/zabbix-server start
  45. Starting Zabbix server: [ OK ]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

在web界面下安装zabbix 
这里写图片描述
这里写图片描述
这里写图片描述

4 测试并配置zabbix

  1. # 修改zabbix-agent的配置文件,用本机做测试,并启动zabbix-agent
  2. [root@linux-node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
  3. Server=10.0.0.77
  4. [root@linux-node1 ~]# /etc/init.d/zabbix-agent start
  5. Starting Zabbix agent: [ OK ]
  • 1
  • 2
  • 3
  • 4
  • 5

这里写图片描述
这里写图片描述

4.1 自定义监控和图表

监控uptime显示的用户数量,用下面命令获取用户数,并写入配置文件: 
uptime | awk -F ’ ’ ‘{print $4}’

4.1.1 修改zabbix配置文件

  1. # 把自定义项添加到配置文件
  2. [root@linux-node2 ~]# uptime
  3. 10:32:51 up 7:23, 2 users, load average: 0.23, 0.16, 0.05
  4. [root@linux-node2 ~]# uptime | awk -F ' ' '{print $4}'
  5. 2
  6. # 在UserParameter=下自定义一个用户,格式为UserParameter=key,command (必须要包含这两项,期中command可以是命令也可以是脚本)。用户自定义的参数返回值最大可以返回512kb的数据。
  7. [root@linux-node2 ~]# vim /etc/zabbix/zabbix_agentd.conf
  8. UserParameter=login-user,uptime | awk -F ' ' '{print $4}'
  9. [root@linux-node2 ~]# /etc/init.d/zabbix-agent restart # 一定要重启zabbix-agent服务
  10. Shutting down Zabbix agent: [ OK ]
  11. Starting Zabbix agent: [ OK ]
  12. # 在zabbix-server端用zabbix_get测试能否获取agent的这个key
  13. [root@linux-node1 ~]# zabbix_get --help
  14. Zabbix get v2.4.8 (revision 59539) (20 April 2016)
  15. usage: zabbix_get [-hV] -s <host name or IP> [-p <port>] [-I <IP address>] -k <key>
  16. Options:
  17. -s --host <host name or IP> Specify host name or IP address of a host
  18. -p --port <port number> Specify port number of agent running on the host. Default is 10050
  19. -I --source-address <IP address> Specify source IP address
  20. -k --key <key of metric> Specify key of item to retrieve value for
  21. -h --help Display help information
  22. -V --version Display version number
  23. Example: zabbix_get -s 127.0.0.1 -p 10050 -k "system.cpu.load[all,avg1]"
  24. [root@linux-node1 ~]# zabbix_get -s 10.0.0.88 -k login-user # 已经获取成功
  25. 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

4.1.2 在web界面上添加此自定义项

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

添加图表 
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

4.2 自定义报警动作

这里写图片描述
这里写图片描述
这里写图片描述

4.2.1 打开前端报警声音

这里写图片描述

4.2.2 开启报警后的Ack

这里写图片描述
这里写图片描述
这里写图片描述

4.2.3 开启报警后触发Actions

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

4.2.4 创建报警的介质

这里写图片描述

  1. # 这里我们自己定义一个
  2. [root@linux-node1 ~]# grep "alertscripts" /etc/zabbix/zabbix_server.conf
  3. # AlertScriptsPath=${datadir}/zabbix/alertscripts
  4. AlertScriptsPath=/usr/lib/zabbix/alertscripts
  5. [root@linux-node1 ~]# cd /usr/lib/zabbix/alertscripts
  6. [root@linux-node1 alertscripts]# cat Send_mail.py
  7. #!/usr/bin/python
  8. #coding: utf-8
  9. import smtplib
  10. import sys
  11. from email.mime.text import MIMEText
  12. from email.header import Header
  13. from email.Utils import COMMASPACE
  14. receiver = sys.argv[1]
  15. subject = sys.argv[2]
  16. mailbody = sys.argv[3]
  17. smtpserver = 'smtp.163.com'
  18. username = 'cactirsq@163.com'
  19. password = 'xxxxxx'
  20. sender = username
  21. msg = MIMEText(sys.argv[3],'html','utf-8')
  22. msg['Subject'] = Header(subject,'utf-8')
  23. msg['From'] = username
  24. msg['To'] = receiver
  25. smtp = smtplib.SMTP()
  26. smtp.connect(smtpserver)
  27. smtp.login(username,password)
  28. smtp.starttls()
  29. smtp.sendmail(msg['From'],msg['To'],msg.as_string())
  30. smtp.quit()
  31. [root@linux-node1 alertscripts]# chmod +x Send_mail.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

而后在web界面自定义 
这里写图片描述

然后给此用户一管理员权限 
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

多开几个终端测试,稍等几分钟 
这里写图片描述
这里写图片描述
这里写图片描述


转载至https://blog.csdn.net/mr_rsq/article/details/80214937


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/307505
推荐阅读
相关标签
  

闽ICP备14008679号