配置和管理Zabbix

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置和管理Zabbix相关的知识,希望对你有一定的参考价值。

四、添加监控客户端
1、监控Linux服务器
首先安装zabbix-agent客户端
CentOS6客户端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
# yum install zabbix-agent      #安装的过程自动创建zabbix用户和组
# chkconfig --level 345 zabbix-agent on     #设置自启动级别
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66                #本机和监控端IP,需用逗号隔开
ServerActive=10.100.3.66:10051          #监控端IP和端口号
Hostname=commission-server              #客户端主机名,添加主机时要使用
注:Server和ServerActive都指定zabbix server的IP地址,不同的是,前者是被动取数据,后者是主动上传数据。
# service zabbix-agent start                    #启动agent
# vim /etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
# service iptables restart
# service iptables save
# netstat -anpl|grep 10050

技术分享图片
CentOS7客户端:

# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
# yum install zabbix-agent          #安装的过程自动创建zabbix用户和组
# cat /etc/passwd|grep zabbix
zabbix:x:998:995:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
# vim /etc/zabbix/zabbix_agentd.conf
Server=127.0.0.1,10.100.3.66
ServerActive=10.100.3.66:10051
Hostname=3d-gold-server
# systemctl start zabbix-agent
# systemctl enable zabbix-agent
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd –reload
# netstat -anpl|grep 10050

技术分享图片
配置监控端(服务端):

# firewall-cmd --permanent --add-port=10051/tcp --zone=public 
# firewall-cmd --permanent --add-port=10050/tcp --zone=public 
# firewall-cmd --reload

配置-->主机-->创建主机,输入主机名称(客户端名称,zabbix_agentd.conf配置的名称)、可见的名称(别名,外部显示的名称)、群组(主机要加入的主机群组)、agent代理程序的接口(客户端IP和端口,默认为IP地址,也可以选择DNS输入域名),默认启用即可。
技术分享图片
在模板界面,输入linux搜索可用的链接指示器,选择Template OS Linux
技术分享图片
先点击第一个添加(添加链接模板),再点击第二个添加(添加主机),完成主机的创建。
zabbix_get -s 10.100.2.200 -p 10050 -k agent.ping #返回1表示正常
可通过zabbix_get -h获取帮助文档。
查看主机,可以看到ZBX显示为绿色,表示监控正常。否则就要检查日志。
技术分享图片
查看客户端日志,如果有以下错误提示:
active check configuration update from [10.100.3.66:10051] started to fail (cannot connect to [[10.100.3.66]:10051]: [113] No route to host)
请检查监控端防火墙配置是否正确,10051端口是否可以访问。
此时在监控中-->最新数据,可以看到刚添加的客户端的监控数据。
技术分享图片
打开监测中-->图形,选择群组、主机、图形即可查看想要的图表了。如下图:
技术分享图片
在添加第2台主机3d-gold时,可以点击已有的主机,选择克隆,再修改主机名称、可见的名称、IP地址,点击添加即可。其他主机相同操作。
技术分享图片
2、监控Windows服务器
下载zabbix_agent:
下载地址:https://www.zabbix.com/download_agents,下载并解压缩
技术分享图片
解压后的目录:bin、conf
bin文件夹:dev文件夹、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe
注:有win32和win64两个文件夹,分别用于32位和64位系统(文件相同)。
conf文件夹:zabbix_agentd.win.conf
在C盘新建文件夹:C:Program Filesabbix_agent(自定义路径和文件夹名),并复制“dev文件夹、zabbix_agentd.exe、zabbix_get.exe、zabbix_sender.exe”(根据操作系统版本选择win32或win64)和“zabbix_agentd.win.conf”到此目录。如下图:
技术分享图片
配置zabbix_agented.win.conf:
以文本方式打开(如notepad++,格式不会乱),修改以下几项:和Linux客户端类似

LogFile=C:Program Filesabbix_agentzabbix_agentd.log     #日志文件路径
EnableRemoteCommands=1              #允许在本地执行远程命令
LogRemoteCommands=1                 #执行远程命令是否保存操作日志
Server=10.100.3.66                      #监控端IP,被动模式
ServerActive=10.100.3.66:10051          #监控端IP,主动模式
Hostname=oa-server                      #客户端名称(需和监控端一致)

技术分享图片
注册和启动服务:以管理员模式启动cmd命令行
注册服务:"c:Program Filesabbix_agentzabbix_agentd.exe" -i -c "c:Program Filesabbix_agentzabbix_agentd.win.conf"
注:删除服务为zabbix_agentd.exe -d -c zabbix_agented.win.conf
技术分享图片
启动服务:"c:Program Filesabbix_agentzabbix_agentd.exe" -s -c "c:Program Filesabbix_agentzabbix_agentd.win.conf"
也可在服务里,选择Zabbix Agent服务,点击启动
技术分享图片
通过netstat -an命令可以看到端口已起来:
技术分享图片
配置防火墙:允许10050(TPC/UDP)端口进来
最好把允许zabbix_agentd.exe程序通过防火墙通信也打开
技术分享图片
监控端配置:
同Linux客户端操作类似,添加主机模板时,可以搜索windows,选择Template OS Windows模板。
技术分享图片
远程操作命令:
管理-->脚本-->创建脚本,如下图:输入名称,命令,描述,点击添加。
技术分享图片
打开拓扑图,点击需要重启的Win服务器,选择重启命令即可。
技术分享图片
3、监控网络设备连通性
通过ICMP PING监控网络设备的连通性:
Zabbix使用外部命令fping处理ICMP ping的请求,在3.4.2中默认已安装好,直接使用即可。
技术分享图片
1>添加网络设备
配置-->主机-->创建主机,输入主机名称、可见的名称、选择群组、输入IP地址
技术分享图片
2>在模板页面,添加Template Module ICMP Ping模板
在链接指示器中,点击选择,在Templates群组中选中Template Module ICMP Ping,然后添加即可
技术分享图片
3>添加图形
在图形页面,点击创建图形
技术分享图片
添加完成后,即可看到监控图:
技术分享图片
4>监控项和触发器
在最新数据中可看到监控项中的最新数据:
技术分享图片
默认已有触发器模板,添加设备后默认已启用
技术分享图片
4、资产管理
配置-->主机,打开某台主机的配置-->主机资产记录,如下图(截取部分内容):
默认停用的,可以选择手动或自动(自动的仅获取名称和操作系统),然后补充相应的数据,最后更新即可。
技术分享图片
查看资产记录:
打开资产记录?主机,选择相应主机,即可查看主机的概述,打开细节可查看所有记录项。
技术分享图片
五、监控项管理
Items是从主机里面获取的所有数据。通常情况下叫item为监控项,item由key+参数组成,例如监控项中需要获取cpu信息,则需要一个对应的监控key:system.cpu.load [avg5],avg5是对应的参数,表示5分钟的负载情况。
创建监控项:
例如:获取CPU的内核数:
打开:配置-->主机-->监控项,如下图:
技术分享图片
技术分享图片
点击创建监控项,输入名称(如CPU Core Num),选择键值(system.cpu.num),添加到应用集(CPU),填入主机资产记录栏位(硬件)
技术分享图片
注意:在创建Item过程中,选择Key时,要将选择的system.cpu.num[<type>]的key值修改成system.cpu.num,否则会报Invalid first parameter的错误。
最后点击添加即可。
但这仅仅是针对某一台服务器添加的监控项,如果要对所有服务器都使用,可在“配置”?“模板”?“监控项”(如Template OS Linux)中添加即可。
技术分享图片
最新数据可以看到cpu是4核的。
技术分享图片
Key格式:Item key格式包含key名称和参数,参数必须符合规范
技术分享图片
首先验证key名是否合法,如果存在参数那么验证参数是否合法,如果没有参数那直接跳过。
key名称规范:0-9a-zA-Z_-.,即允许字符:所有数字、大小写字母、下划线、减号、点。
key可以有多个参数,他们之间用逗号分开,key参数可以是带引号的字符串、不带引号的字符串以及数组。参数如果为空,那么将会使用他设置的默认值。

通过自动发现,监控CPU每个核心:
1、创建模板或使用已有的模板。
2、创建自动发现规则
  配置-->模板-->自动发现-->创建发现规则:
技术分享图片
3、创建监控项原型
  配置-->模板-->自动发现-->监控项原型-->创建监控项原型:
技术分享图片
注:Windows中监控项原型略有不同,键值改为:system.cpu.util[{#CPU.NUMBER},,],否则会报Invalid second parameter的错误,其他类似。
在最新数据中显示效果:
技术分享图片
4、创建图形原形(可省略)
配置-->模板-->自动发现-->图形原型-->创建图形原型:
技术分享图片
这样,就可以在监测中-->图形,看到每个核心的使用百分比图形了。
如果想把多个核心放在一张图上,则还需要针对具体主机创建图形。
配置-->主机-->图形-->创建图形:
技术分享图片
效果如下:
技术分享图片

六、触发器管理
默认大部分监控项都在模板中配置了触发器,但有些监控项需要根据个人需要自已去创建。另外像上面例子在自动发现规则中创建了CPU core discovery,但却没有创建触发器类型。
创建触发器可以在模板的触发器中创建,如定义了自动发现规则也可以在自动发现规则的触发器中创建触发器类型。
具体的触发器定义规则,可参考官方文档:
触发器自动发现
例如:5分钟内CPU使用率的平均值超过85%时报警
配置-->模板-->Template OS Linux-->触发器-->创建触发器,
在监控项中可以看到system.cpu.util[,,]表示CPU使用率,返回浮点数
技术分享图片
其中有一个cpu idle时间(system.cpu.util[,idle]),即cpu的空闲时间,当空闲时间小于15%的时候就是cpu大于85%的时候。如下图:
输入名称:{HOST.NAME} cpu use percent 5m avg > 85%
选择严重性:如一般严重
选择表达式:直接输入,或点击添加插入以下表达式都可以
{Template OS Linux:system.cpu.util[,idle].avg(5)}&lt;15
技术分享图片
其他值默认,选择启用,添加即可。
技术分享图片
另外,还可以在自动发现规则里创建触发器原型。
例如:监控每个CPU core 10分钟内平均使用率超过90%时触发严重告警
配置-->模板-->Template OS Linux-->自动发现规则-->CPU core discovery-->触发器类型-->创建触发器原型,
输入名称:{HOST.NAME} CPU core {#CPU.NUMBER} 10m avg > 90%
选择严重性:如自定义为严重
表达式:{Template OS Linux:system.cpu.util[{#CPU.NUMBER},user,avg1].avg(10)}>90
其他默认,选择启用,添加即可。
注:Windows模板和Linux略有不同,表达式改为:{Template OS Windows:system.cpu.util[{#CPU.NUMBER},,].min(10m)}>90
技术分享图片
可以把报警值调低(如50%),平均时间设为1分钟,然后通过计算圆周率来进行压力测试,触发告警。
[[email protected] ~]# echo "scale=8000; 4*a(1)" | bc -l -q
技术分享图片
默认网卡自动发现规则Network interface discovery没有触发器原型,可以手动创建。
例如:网卡流出流量5分钟内平均流量超过30M时报警
配置-->模板-->Template OS Linux-->自动发现规则-->Network interface discovery-->触发器类型-->创建触发器原型,
输入名称:{HOST.NAME} Outgoing network traffic on {#IFNAME} 5m avg > 30M
选择严重性:如警告
表达式:{Template OS Linux:net.if.out[{#IFNAME}].avg(5)}>30M
注:30M为bps,如想使用Bps(byte),可以用net.if.out[{#IFNAME},bytes]。
其他默认,选择启用,添加即可。
技术分享图片
用此规则可以监控服务器上传下载文件的流量。
从FTP服务器下载一个大文件,触发告警。
技术分享图片
参考:官方文档:触发器表达式官方文档:支持的触发器函数
其他参考:触发器相关触发器详解

以上是关于配置和管理Zabbix的主要内容,如果未能解决你的问题,请参考以下文章

配置和管理Zabbix

zabbix 监控服务 配置管理图形和窗口

深入浅出Zabbix 3.0 -- 第六章 监控项配置与管理

SaltStack 使用pillar安装配置管理zabbix

Zabbix的模板管理与配置

深入浅出Zabbix 3.0 -- 第七章 模板配置与管理