温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Linux系统中Zabbix的使用

发布时间:2020-06-12 14:20:23 来源:亿速云 阅读:201 作者:元一 栏目:系统运维

zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。

zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

Zabbix优点:

1 支持分布式监控

2 自带绘图功能,获取到数值型的数据,可自动生成图

3 Web配置方式,操作易用性较好。添加监控项或机器时速度很快。

4 有报警时无论在任何界面会弹出小窗口报警,同时有报警的声音提示,同时可对监控项的快速查看。

5 自带内置函数较为丰富,同时也支持脚本及nagios等脚本的调用。

6 出现问题时,可自动远程执行命令(需对agent设置执行权限)

Zabbix 缺点:

1 批量修改不方便,可用数据库辅助

2 深入后,中文资料相当少,大部分问题需看官方的文档及论坛。

3 缺少数据汇总功能,如无法查看一组服务器平均值,可考虑对其进行二次开发。

4 zabbix较cacti来说,画图功能较差些、流量获取较为复杂

一,Linux下Zabbix客户端编译安装

#abbix Agent编译安装
yum install -y gcc gcc-c++ make pcre-devel
useradd -s /sbin/nologin zabbix
cd /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.gz
cd zabbix-4.0.3
./configure --prefix=/usr/local/zabbix --enable-agent
make && make install
chown zabbix:zabbix -R /usr/local/zabbix/

#环境变量配置
vim /etc/profile
export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/

#zabbix agent配置,Server和ServerActive上配置的是zabbix server的ivrp
PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/zabbix_agentd.log
Hostname=xxx   #填写主机名或者zabbix里的主机名
Server=xxx    ##zabbix server 地址
ServerActive=xxx  ##zabbix server地址 相当于访问白名单
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf

zabbix 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
监控流量需要预处理
Linux系统中Zabbix的使用
三,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接收到请求并且响应<HEADER><DATALEN>1
Server处理接收到的数据1
关闭TCP连接

not supported items通信过程 (不支持类型)

Server打开一个TCP连接

Server发送请求vfs.fs.size[/nono]\n

Agent接收请求并且返回响应数据 <HEADER><DATALEN>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.错误

Linux系统中Zabbix的使用
四: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.conf
UserParameter=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名 就是配置文件里的名字
Linux系统中Zabbix的使用

有参数脚本
相较于无参数脚本 有参数脚本在编写item 可以跟参数

#shell脚本/tmp/mem.sh
case "$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";;
esac
UserParameter=mem.check[*],sh /tmp/mem.sh $1
##测试
zabbix_get -s 192.168.0.101 -k mem.check[availabl]

Linux系统中Zabbix的使用

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI