(四)Zabbix4.0 linux 基本监控
一,Linux下Zabbix客户端编译安装
#abbix Agent编译安装yum install -y gcc gcc-c++ make pcre-develuseradd -s /sbin/nologin zabbixcd /usr/local/src/wget 'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz'tar -zxvf zabbix-4.0.3.tar.gzcd zabbix-4.0.3./configure --prefix=/usr/local/zabbix --enable-agentmake && make installchown zabbix:zabbix -R /usr/local/zabbix/#环境变量配置vim /etc/profileexport PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/#zabbix agent配置,Server和ServerActive上配置的是zabbix server的ivrpPidFile=/usr/local/zabbix/zabbix_agentd.pidLogFile=/usr/local/zabbix/zabbix_agentd.logHostname=xxx #填写主机名或者zabbix里的主机名Server=xxx ##zabbix server 地址ServerActive=xxx ##zabbix server地址 相当于访问白名单UnsafeUserParameters=1Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.confzabbix agent启动 /usr/local/zabbix/sbin/zabbix_agentd
二:zabbix_agent 监控cpu 磁盘 流量等
zabbix_get
zabbix提供一个zabbix_get工具,可以跟zabbix agent通讯获取监控信息
使用方式:zabbix_get -s xxx -k xxx
zabbix agent查看所有可监控项目:zabbix_agentd -p
通过模板添加
监控cpu负载
key: system.cpu.load[all,avg1] Float型
key: system.cpu.load[all,avg5] Float型
key: system.cpu.load[all,avg15] Float型
监控cpu使用和空闲
system.cpu.util[,iowait,] Float型
system.cpu.util[,system,] Float型
system.cpu.util[,user,] Float型
system.cpu.util[,idle,] Float型 空闲
监控剩余内存(buffers\cached实际上也是剩余的)
vm.memory.size[available] 整数
监控磁盘
名称:Disk pfree on $1
名称:inode pfree on $1
vfs.fs.size[/,pfree] Float型
vfs.fs.inode[/,pfree] Float型
监控流量
net.if.in[eth0] 整型(每秒速率) 默认返回字节数,需要8
net.if.out[eth0] 整型(每秒速率) 默认返回字节数,需要8
监控流量需要预处理
三,zabbix主被动模式
主动active:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
server 压力小一点,但是有部分类型不支持
server检索数据有超时限制,最大超时时间30秒,如果检索数据经常超过30秒,那么,不建议你使用主动模式的agent,可以使用如下类型agent active
被动:server向agent请求获取监控项的数据,agent返回数据
被动模式:supported items通信过程
Server打开一个TCP连接
Server发送请求agent.ping\n
Agent接收到请求并且响应
1
Server处理接收到的数据1
关闭TCP连接
not supported items通信过程 (不支持类型)
Server打开一个TCP连接
Server发送请求vfs.fs.size[/nono]\n
Agent接收请求并且返回响应数据
ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory Server接收并处理数据, 将item的状态改为" not supported "
主动模式
Agent打开TCP连接(主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent 处理响应
关闭TCP连接
Agent开始收集数据
使用模板监控linux
在模板中 使用template linux os 模板 可以监控 linux 相关系统信息(注意清除相关无用监控项,因为随着监控的增多数据库写入压力很大)
在template linux os 中 自动发现 需要主机名与计算机名一直才能check now 马上自动发现
不是的话 可能会报 Cannot send request: host is not monitored.错误
四:zabbix自定义key监控linux 服务器
自定义key说明
所有语言,只要能运行返回结果即可
运维常用的语言:Shell、Python
其中自定义key 又分有参数脚本和无参数脚本
无参数脚本
例如:
free -m | grep 'Mem:' |awk '{print $NF}'#在agent 机器中vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/mem.confUserParameter=mem.available,sh /tmp/memavailable.sh ## UserParameter名就是key名chmod a+x memavailable.sh ##重启agent,测试zabbix_get -s 192.168.0.102 -k mem.available##如果显示not soupout 检查脚本 防火墙 端口等
添加自定义key,跟模板添加item类似 ,注意添加触发器tigers是根据脚本返回的值添加
key名 就是配置文件里的名字
有参数脚本
相较于无参数脚本 有参数脚本在编写item 可以跟参数
#shell脚本/tmp/mem.shcase "$1" in "available") free -m | grep 'Mem:' |awk '{print $NF}';; "total") free -m | grep 'Mem:' |awk '{print $2}';; "used") free -m | grep 'Mem:' |awk '{print $3}';; *) echo "not supported";;esacUserParameter=mem.check[*],sh /tmp/mem.sh $1##测试zabbix_get -s 192.168.0.101 -k mem.check[availabl]