共计 6735 个字符,预计需要花费 17 分钟才能阅读完成。
本系列文章介绍了 zabbix 基本概念及其特点,论述 zabbix 零碎环境搭建与根底装置,如何实现对各类操作系统、硬件设施、应用软件监控告警。本文为系列第二篇,内容包含 Windows 零碎硬件信息获取、Linux 系统监控、Linux 零碎硬件信息获取。前文点此:零碎学习 Zabbix 系统监控(一)
5 windows 零碎硬件信息获取
本文通过在 OS 操作系统层面上,次要获取 windows 服务器下 CPU 信息、内存信息、硬盘信息、操作系统、服务器信息。信息获取的实现形式是通过在 windows 零碎下部署自定义 bat 脚本,执行脚本获取数据,再将获取的信息发送给 zabbix 服务端,zabbix 界面创立相应的监控项,触发器等,最终将信息展现进去。监控项内容如下:
CPU 信息:型号、个数、内核数、逻辑核、CPU 衰弱状态,及状态告警。
内存信息:容量、个数、厂商、型号、序列号;主板反对内存最大容量和个数。
硬盘信息:厂商、个数、容量、序列号、接口类型、硬盘衰弱状态,及状态告警。
操作系统信息:主机名、操作系统版本、运行时长、统线程数、零碎工夫。
服务器信息:品牌、型号、序列号。
阐明:一些非凡数据须要实现监控,例如 CPU 温度、硬盘状态、Raid 卡状态、风扇转速等,windows 没有提供检测硬件温度组件,须要借助第三方工具如 IPMI tools,fan-speed 等,也能够应用 IPMI 协定等其余办法来丰盛 windows 零碎硬件监控项,对于虚拟机并不实用,此时,举荐应用服务器的治理口,如 HPE 服务器的 iLO、DEll 服务器的 iDRAC,联想服务器 XCC 等开启 snmp 性能,再进行 zabbix 配置,实现对服务器硬件全面监控。如果服务器未配置管理口,当然不能实用。
5.1 CPU 信息获取
利用集:CPU 硬件
cpu 信息次要有:CPU 型号、CPU 颗数、CPU 核数、CPU 逻辑核与线程(超线程,个别是外围数的 2 倍)
监控项配置:
5.1.1 CPU 型号
须要编写程序对 CPU 型号进行提取,相干配置如下:
1、在 C:zabbixconfzabbix_agentd.win.conf 文件中:自定义程序开关设置为开启,UnsafeUserParameters=1 并增加监控项:
CPU 型号
UserParameter=cpu_hardware_model,C:zabbixscriptcpu_hardware_model.bat
Zabbix 界面增加监控项:
监控 key 值:
cpu_hardware_model
2、程序目录为
C:zabbixscriptcpu_hardware_model.bat
3、监控项配置:
5.1.2 CPU 颗数
须要编写程序对 CPU 型号进行提取,相干配置如下:
1、在 C:zabbixconfzabbix_agentd.win.conf 文件中:自定义程序开关设置为开启,UnsafeUserParameters=1 并增加监控项:
CPU 型号
UserParameter=cpu_hardware_number,C:zabbixscriptcpu_hardware_number.bat
2、程序目录为:
C:zabbixscriptcpu_hardware_number.bat
3、监控项配置:
5.1.3 CPU 核数
须要编写程序对 CPU 核数进行提取,相干配置如下:
1、在 C:zabbixconfzabbix_agentd.win.conf 文件中:自定义程序开关设置为开启,UnsafeUserParameters=1 并增加监控项:
CPU 核数 一颗 CPU 的外围数
UserParameter=cpu_hardware_core,C:zabbixscriptcpu_hardware_core.bat
2、程序目录为:
C:zabbixscriptcpu_hardware_core.bat
3、监控项配置:
5.1.4 CPU 逻辑核与线程
应用 zabbix 自带 key,监控 key 值:system.cpu.num[]
阐明:type 可用值,online (默认值), max 范例 : system.cpu.num
经实际查看此处的 key 值为逻辑外围,CPU 逻辑外围、线程(超线程,个别是外围数的 2 倍)windows 零碎下治理处理器,看到的数量。
监控项配置:
5.1.5 监控后果
5.2 内存信息获取
memery 内存信息:包含序号、制造商、容量、序列号、型号、速率
memery 内存主板反对:最大容量 , 最大槽位数
5.2.1 创立监控项
创立:memery 内存信息、memery 内存主板反对
键值:memory_biso_support_info、memory_hardware_info
利用集:Memory 内存硬件
5.2.2 监控后果
1、监测中 > 最新数据 >Memory 内存硬件 >memery 内存信息
能够看到,序列顺次为:内存序号、容量、制造商、型号、序列号、速率。
2、监测中 > 最新数据 >Memory 内存硬件 >memery 内存主板反对
第一列为主板反对最大容量,第二列为主板反对最大槽位数。
5.3 操作系统信息
OS 操作系统信息:主机名、操作系统版本、运行时长、统线程数、零碎工夫。
其中操作系统版本是自定义程序获取,主机名、运行时长、统线程数、零碎工夫是 zabbix 自带监控模板,自带模板间接套用。
5.3.1 创立监控项
创立:零碎工夫、操作系统版本、相对秒、零碎线程数、零碎运行时长、主机名
键值:system.localtime[local]、os_version、system.localtime[]、perf_counter[2250]、system.uptime、system.hostname[]
利用集:OS 操作系统
5.3.2 监控后果
监测中 > 最新数据 >OS 操作系统
5.4 服务器信息
监控服务器信息:品牌、型号、序列号。
5.4.1 创立监控项
创立:OS 服务器序列号、OS 服务器型号、OS 服务器品牌
键值:os_device_serialnumber、os_device_mode、os_device_manufacturer
利用集:OS 服务器信息
5.4.2 监控后果
监测中 > 最新数据 >OS 服务器信息
6 Linux 零碎状态监控
Linux 系统监控,监控项原则上能利用 zabbix 提供模板就尽量应用,zabbix 提供不了的就编写 shell 脚本,这样就省去大部分代码编写工夫,缩小工作量。状态信息原则上已使用率为次要观察点,不须要再监控残余率,Linux 系统监控模板,与 window 系统监控利用集、监控项命名放弃对立,监控模板如下所示:
利用集:CPU 状态、CPU 硬件、Disk 硬盘、Disk 磁盘状态、Memory 内存状态、Memory 内存硬件、OS 操作系统、OS 服务器信息、agent 模板链接。
6.1 Linux 部署 zabbix_agent
阐明:为了反对批量装置,一键化装置 linux 5、6、7 不同版本装置,须要有脚本程序撑持,本人编写的一建装置脚本,易于批量部署,至于 zabbix agent 装置配置也很简略,网上搜寻很多,这里就给读者讲一些我的实际过程。
zabbix_agent_linux_install 脚本目录,上传至被监控 linux 主机,执行 sh install.sh IP
IP 为 zabbix 服务 IP,以后环境为 192.168.9.123,该脚本一键化装置,无需配置 /etc/zabbix/ 下配置,自动识别 linux 版本,脚本内装置选项能够调整。
装置结束后,zabbix 界面增加主机,并关联模板。当然能够配置 IP 范畴应用主动发现主机。
6.2 Linux 零碎 CPU 监控
利用集:CPU 状态
CPU 状态:CPU 使用率、CPU 负载 1 分钟、5 分钟、15 分钟。
linux 零碎 CPU 状态监控,官网已提供监控项,能够间接应用,无需自行编写脚本。具体参考官网链接:https://www.zabbix.com/documentation/3.4/zh/manual/appendix/items/supported_by_platform?s[]=system&s[]=hw&s[]=cpu&s[]=info,反对 linux 与 windows 零碎。
监控项配置:
留神:理论环境采纳 user 零碎使用率代替 cpu 整体使用率,因 linux 零碎占用的 cpu 资源比拟少 1%。此处 cpu load 负载监控的值为 top 命令下看到的数值。
6.3 Linux 零碎内存监控
利用集:Memory 内存状态
Memory 内存状态次要监控项有:Memory 内存使用率、Memory 内存使用量、Memory 内存总量(带上 Memory 不便了排序归类)。Swap 替换分区使用率、Swap 替换分区使用量、Swap 替换分区总量。
留神:此处的内存使用率为实在应用,会计算上缓存里占用的内存空间。不应用 zabbix 零碎提供的 vm.memory.size[pused](会将缓存计算进去),而应用通过 shell 脚本计算的实在内存。
监控项配置:
阐明:配置与 windows 下内存监控办法一样不在详述。
1、提供计算实在内存脚本 /etc/zabbix/script/memory_fact_used.sh:
2、在 /etc/zabbix/zabbix_agentd.d/ 目录下创立标准文件名 .conf 结尾,增加如下内容:
UserParameter=mem.fact.used, /etc/zabbix/script/memory_fact_used.sh
3、监控项配置:
6.4 Linux 磁盘应用监控
利用集:Disk 磁盘应用
Linux 磁盘应用监控次要信息是:磁盘目录的应用状况,包含容量与索引。
监控形式:采纳 zabbix 主动发现,将信息批量获取。
监控项配置:
监控项原型配置:
6.5 Linux 磁盘读写监控
利用集:Disk 磁盘读写
Disk 磁盘读写次要监控的信息有:读写速率、IO 使用率、IO 响应工夫等
1、采纳 zabbix 自发现,编写代码生成含有 sda 磁盘信息的 json 文件
Shell 代码:discovery_disk.sh
或 Python 代码:discovery_disk.py
2、编写代码获取 IO 信息:iocheck.sh,脚本应用了 iostat 命令进行数据获取,对于 iostat 获取的数据信息解释,可翻阅资查看。次要对读写速率、IO 使用率、IO 响应工夫要害指标进行监控。
3、创立自发现规定
4、创立监控项原型,如下图所示,在 zabbix 界面的最新数据可查看监控信息。
6.5 Linux 网卡状态监控
应用 zabbix 已有自发现规定进行监控,办法比较简单,配置截图如下:
1、自发现规定配置
2、过滤器配置 此项是为了过滤不须要监控的网卡,采纳正则匹配
3、监控项原型配置
7 Linux 零碎硬件信息获取
这里 linux 硬件信息获取,类比 windows 硬件信息获取,都是在 OS 操作系统层面,如果想监控更多硬件,举荐应用服务器的治理口。
实际过程中,准则是尽可能应用 zabbix 零碎已有监控项,间接应用效率高。
7.1 CPU 信息获取
利用集:CPU 硬件
cpu 信息次要有:CPU 型号、CPU 颗数、CPU 核数、CPU 逻辑核与线程(超线程,个别是外围数的 2 倍)
监控项配置:
7.1.1 CPU 型号
应用 zabbix 自带 key:
监控 key 值:
system.hw.cpu[,]
阐明:cpu 为数量或是默认 all,info:full (默认), curfreq, maxfreq, model 或者 vendor。
监控项配置:
7.1.2 CPU 颗数
此处的 CPU 颗数指的是物理个数,如果是虚拟机则不具备参考根据。
应用编写的命令获取 CPU 物理个数:
监控 key 值:
UserParameter=server.cpu.num,cat /proc/cpuinfo |grep -E ‘physical[t]+id’ |sort |uniq |wc -l
监控项配置:
7.1.3 CPU 核数
应用编写的命令获取 CPU 核数,此处的核数为单个 CPU 的外围数,总核数为:CPU 颗数 * 单个 CPU 的核数。
在 /etc/zabbix/zabbix_agentd.d/ 目录下创立标准文件名 .conf 结尾,增加如下内容:
UserParameter=server.cpu.corenum,echo “$(cat /proc/cpuinfo |grep -E ‘cpu[ t]+cores’ |sort |uniq |awk ‘{print $NF}’)”
监控项配置:
7.1.4 CPU 逻辑核与线程
应用 zabbix 自带 key:
监控 key 值:
system.cpu.num[]
阐明:type 可用值,online (默认值), max 范例 : system.cpu.num
经实际查看此处的 key 值为逻辑外围,CPU 逻辑外围、线程(超线程,个别是外围数的 2 倍)Linux 零碎下 top 命令输出 1,看到的 cpu 数量。
监控项配置:
7.1.5 监控后果
7.2 Memory 内存信息获取
利用集:Memory 内存硬件
Memory 内存硬件信息次要有:主板反对状况、每个内存条硬件信息。
监控项配置:
7.2.1 Memory 内存主板反对
编写的命令获取内存主板反对状况:
在 /etc/zabbix/zabbix_agentd.d/ 目录下创立标准文件名 .conf 结尾,增加如下内容:
UserParameter=server.memory.info,dmidecode -t 16 | grep -E ‘Maximum|Devices’|sed -e ‘s/^[t]//g;s/[t]$//g;s/[t]//g;s/Maximum Capacity/ 反对容量 /g;s/Number Of Devices/ 反对槽位 /g’
监控项配置:
最新数据:
7.2.2 Memory 内存信息
编写的命令获取每个内存条硬件信息:
在 /etc/zabbix/zabbix_agentd.d/ 目录下创立标准文件名 .conf 结尾,增加如下内容:
UserParameter=server.memory.info.num,dmidecode -t 17|grep -E “Size: [0-9]” -A12 |grep -E ‘Locator:|Size:|Manufacturer:|Part Number|Speed:|Type:’ |sed -e ‘s/^[t]//g;s/[t]$//g;s/[t]//g;s/Size/ 容量 /g;s/Locator/ 槽位 /g;s/Type/ 类型 /g;s/Speed/ 速率 /g;s/Manufacturer/ 制造商 /g;s/Part Number/ 序列号 /g’|grep -v ‘Bank’|awk ‘{if (NR%6==0){print $0} else {printf”%st”,$0}}’
监控项配置:
最新数据:
7.3 Disk 硬盘信息获取
因有的服务器装置了 RAID 卡或是连贯了 EMC 等 SAN 存储设备,而且企业里大量应用了虚拟机 , 减少了硬盘信息获取的难度。对于 linux 与 windows 零碎服务器获取硬盘信息,将在后续文章中具体介绍,上面介绍的办法,最实用于服务器装置 linux 零碎的场景,可简略理解。
利用集:Disk 硬盘
Disk 硬盘次要获取两类信息 : 硬盘的硬件信息、硬盘的状态(包含只读):
1、直通硬盘
直通硬盘应用 hdparm -i /dev/sda 命令获取硬盘信息
直通硬盘应用 smartctl -H /dev/sda 命令获取硬盘衰弱状态
编写脚本,读写 /dev/sdX 硬盘,获取硬盘读写查看
2、RAID 硬盘
须要装置 MegaCli 等软件,应用软件命令来实现
监控后果:
7.4 OS 操作系统信息获取
利用集:OS 操作系统
OS 操作系统信息次要有:主机名、操作系统版本、登录用户数量、零碎工夫、零碎运行时长。除过操作系统版本须要编写脚本外,其余都是 zabbix 零碎已有监控项,能够间接应用。
监控项配置:
监控后果:
7.5 OS 服务器信息获取
利用集:OS 服务器信息
OS 服务器信息次要有:服务器品牌、型号、序列号。
留神:如果是虚拟机则反馈的是虚拟化平台的厂家。如:VMware, Inc.
监控项配置:
脚本命令:
在 /etc/zabbix/zabbix_agentd.d/ 目录下创立标准文件名 .conf 结尾,增加如下内容:
UserParameter=server.company,dmidecode -s system-manufacturer |grep -v ^#
UserParameter=server.product.name,dmidecode -s system-product-name |grep -v ^#
UserParameter=server.serial.number,dmidecode -s system-serial-number |grep -v ^#|tr -d ” “
监控后果: