1、定义action为脚本通知 2、宏(macros) 3、模板(Templates) 4、自定义items 5、网络发现功能 6、web监控 7、监控方式 8、JMX的监控 9、代理分布式监控 ================================================================================================================================================ 定义action为脚本通知 1、自定义脚本 vim /usr/lib/zabbix/alertscripts/test.sh #!/bin/bash to="$1" subject="$2" body="$3" echo "test script" | mail -s "$subject" "$to" 2、添加执行权限 chmod +x /usr/lib/zabbix/alertscripts/test.sh 3、定义Media types为script <监控系统zabbix> 128 4、action中定义动作为执行脚本 注意: 需要重新启动zabbix-server服务,读取通知脚本 ================================================================================================================================================ 宏(macros) 1、可以理解成宏是"保存值的变量"。 zabbix内置的宏调用格式:{HOST.NAME} 2、用户自定义宏 zabbix支持在全局、模板或主机级别使用用户自定义宏。 使用格式:{$MACRO} 使用范围:item kets、descriptions、trigger名称及表达式、主机接口IP/DNS及端口、discovery机制的SNMP协议的相关声明中。 3、宏的生效范围顺序 主机级别的宏 一级模板中的宏,多个一级模板时按器ID排序 二级模板中的宏 全局宏 ================================================================================================================================================ 模板(Templates) 1、模板是一系列配置的集合,它可以方便的快速部署在某监控对象上,并支持重读应用。可以将模板应用到某一个主机上。应用模板可以实现快速的部署 及修改模板内容的配置项。 2、模板内容包括: items triggers graphs applications screens low-level discoverty rules ================================================================================================================================================ 自定义items 1、语法格式 UserParameter=[], UserParameter=mem.used,free -m | awk '/^Mem/{print $3}' UserParameter=mem.stats[*], cat /proc/meminfo | grep '^$1' UserParameter=mem.stats[*], cat /proc/meminfo | awk '/^$1/{print $$2}' # $$2表示逃逸字符,以免被识别为key传递来的参数 UserParameter=fpm.stats[*],curl -s http://127.0.0.1/fpm-status | awk '/^$1/{print $$NF}' [] # 参数。例如 [*] 表示传递的参数都给后面的command。可以将参数传递给后面的命令 2、配置文件定义定义的tiems放置路径 {在agent端使用} vim /etc/zabbix/zabbix_agentd.conf Include=/etc/zabbix/zabbix_agentd.d/*.conf 在此路径下新创建一个文件,并将自定义的item写入此文件 3、示例 UserParameter=Mysql.dml[*], /usr/local/mysql/bin/mysql -h$1 -u$2 -p$3 -e 'SHOW GLOBAL STATUS' | awk '/Com_$4\>/{print $$2}' UserParameter=Nginx.active[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}' UserParameter=Nginx.reading[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2 UserParameter=Nginx.writing[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4 UserParameter=Nginx.waiting[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6 UserParameter=Nginx.accepted[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$1}' UserParameter=Nginx.handled[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$2}' UserParameter=Nginx.requests[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]+[0-9]+[ \t]+[0-9]+[ \t]+[0-9]+/ {print $$3}' UserParameter=nginx.access_countaccess, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog totalaccess UserParameter=nginx.access_count200, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog 200access UserParameter=nginx.access_count202, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog 202access UserParameter=nginx.access_count4xx, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog 4xxaccess UserParameter=nginx.access_count3xx, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog 3xxaccess UserParameter=nginx.access_count5xx, /usr/lib/zabbix/externalscripts/logcheck_nginx.accesslog 5xxaccess UserParameter=varnish.stat[*], /usr/lib/zabbix/externalscripts/varnishstatus varnish_stat $1 UserParameter=varnish.count[*], /usr/lib/zabbix/externalscripts/varnishstatus varnish_count $1 UserParameter=varnish.hitrate, /usr/lib/zabbix/externalscripts/varnishstatus varnish_hitrate ================================================================================================================================================ 网络发现功能 1、发现包括两个阶段:discovery 和 actions。 发现网络的主机后,将主机添加到zabbix的监控中,并自定链接至指定的模板。可判定发现的主机的服务角色。 2、发现主机的方式 IP范围 主机上特定的服务 zabbix agent SNMP agent 3、发现指标 Service UP Service Down Host Up Host Down Service Discovered Service Lost Host Discovered Host Lost 4、Action 5、网络发现的主机会自动创建interface。 6、主机发现后的action ================================================================================================================================================ web监控 1、监控指定站点资源下载速度,及响应时间,响应代码。 ****** 每一个站点称为一个:Scenario 内建key: web.test.in[Scenario,Step,bps] # 传输速率 web.test.time[Scenario,Step] # 响应时间 web.test.rspcode[Scenario,Step] # 响应码 ================================================================================================================================================ 监控方式 1、主动监控 相对于Agent而言,Agent主动报告数据给Server端。agent向server请求与自己先关的监控项配置, 配置文件abbix_agent.conf: ServerActive= Hostname= # HostnameItem=system.hostname web界面接口配置item: zabbix agent(active) 2、agent手动发送给server监控数据 web界面接口配置item: items类型为"zabbix trapper" agent端手动发送数据: zabbix_sender -z 172.18.26.1 -p 10051 -s node2 -k "send.test.data" -o "10240" -s HOSTNAME # 要与配置items配置的主机名一致 -z ServerIP # 服务器IP地址 -o value # 要发送的数据 3、被动监控 相对于Agent而言,server向Agent发起数据请求,Agent收集数据并发送给server端。 ================================================================================================================================================ JMX的监控 1、在Server端安装额外组件 zabbix-java-gateway-3.4.0-1.el7.x86_64.rpm 2、zabbix server配置 javaGateway= javaGatewatPort=10052 StartJavaPollers=5 3、被监控的JVM配置 /etc/sysconfig/tomcat CATALINA_OPTS="-Djava.rmi.server.hostname=【TOMCAT_SERVER_IP】 -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 【TOMCAT_SERVER_IP】修改 4、web界面配置示例 JMX interfaces 172.18.26.2 key: jmx[java.lang:type=Memory,HeapMemoryUsage.used] ================================================================================================================================================ 代理分布式监控 1、代理服务器安装配置 1、安装数据库 CREATE DATABASE zabbixproxydb CHARACTER SET 'utf8'; GRANT ALL ON zabbixproxydb.* TO 'zabbixuser'@'172.18.26.%' IDENTIFIED BY '123'; FLUSH PRIVILEGES; 2、导入数据库 zcat /usr/share/doc/zabbix-proxy-mysql-3.4.0/schema.sql.gz | mysql zabbixproxydb 3、安装包 yum install zabbix-proxy-mysql-3.4.0-1.el7.x86_64.rpm zabbix-agent-3.4.0-1.el7.x86_64.rpm zabbix-get-3.4.0-1.el7.x86_64.rpm zabbix-sender-3.4.0-1.el7.x86_64.rpm 4、配置/etc/zabbix/zabbix_proxy.conf Server= zabbix server主机地址; Hostname= 当前代理服务器的名称;在server添加proxy时,必须使用此处指定的名称; 需要事先确保server能解析此名称; DBHost= DBName= DBUser= DBPassword= ConfigFrequency=10 DataSenderFrequency=1 3、在server端添加此Porxy Administration --> Proxies 4、在Server端配置通过此Proxy监控的主机; 注意:zabbix agent端要允许zabbix proxy主机执行数据采集操作: Server= ================================================================================================================================================