[TOC]
0x00 Zabbix介绍 zabbix是一个开源的企业级性能监控解决方案,可以实时监控服务器/网络设备等硬件资源与其相关的各项指标是否是正常的,而且能够更加方便的、集中的监控他们;同时还提供了对被监控主机进行检查、信息收集等操作,保证服务器系统的安全运营,当被监控主机出现异常时,能够及时报警通知管理员;
zabbix由2部分构成:
zabbix server
与可选组件zabbix agent。 zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
A:监控运维工具常常具有的功能:
B:与Zabbix类似的监控系统工具有那些? 答:cacti、nagios、ganglia等类似的监控系统
1. zabbix通信方式
Agent:通过专用的代理程序进行监控与常见的master/agent模型类似,如果被监控对象支持对应的agent([ˈeɪdʒənt] 推荐方式)
SSH/telnet:通过远程控制协议进行通讯
SNMP:通过SNMP协议(“简单网络管理协议)与被监控对象进行通讯,常使用在路由器、交换机网络硬件设备上安装,其实SNMP协议的工作方式也可以理解为master/agent的工作方,只不过是在这些设备中内置了SNMP的agent而已,所以大部分网络设备都支持这种协议。
IPMI:通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压,温度,风扇状态,电源状态等。
JMX:通过JMX进行监控,JMX(Java Management Extensions,即Java管理扩展)监控JVM虚拟机时,使用这种方法也是非常不错的选择(业务推荐方式)
weiyigeek.top-通信方式
C:什么是Zabbix Agent她的作用是什么? 我们将zabbix agent部署到被监控主机上由agent采集数据,报告给负责监控的中心主机并将数据存入zabbix database中;
D:当监控规模变得庞大时我们是否需要部署多套zabbix系统进行监控呢? 答案肯定是不用的,因为zabbix支持分布式监控,可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机;
当监控规模庞大到需要使用zabbix proxy
区域内的每个被监控对象的信息被agent采集提交给代理主机(zabbix proxy),其作用与zabbix server类似
zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样使得zabbix proxy分摊了zabbix server的压力
通过建立统一的监控入口监控所有的对象
zabbix proxy的架构图:
weiyigeek.top-架构图
E:zabbix各种组件总结
zabbix database:用于存储所有zabbix的配置信息、存储agent端接收监控数据的数据库。
zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。
zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等(目前可以采用mysql/postgresql)。
zabbix web : 如zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上(php编写的)
zabbix proxy:可选组件用于分布式监控环境中,zabbix proxy代表server端完成局部区域内的信息收集,最终统一发往server端。
2. zabbix工作模式
主动模式:Agent端会将采集完的数据主动发送给server端;
被动模式:Agent端也可以不主动发送数据,而是等待server过来拉取数据;
总结:主动/被动模式可以同时存在;
agent端: 使用 zabbix_sender 工具,测试是否能够向Server端发送数据。 server端: 使用 zabbix_get 工具,测试是否能够从Agent端拉取数据。
0x01 Zabbix安装 Zabbix官网地址:https://www.zabbix.com/cn/download 官方文档:https://www.zabbix.com/documentation/4.2/manual/installation/install#installing_frontend 搭建环境:
[TOC]
0x00 Zabbix介绍 zabbix是一个开源的企业级性能监控解决方案,可以实时监控服务器/网络设备等硬件资源与其相关的各项指标是否是正常的,而且能够更加方便的、集中的监控他们;同时还提供了对被监控主机进行检查、信息收集等操作,保证服务器系统的安全运营,当被监控主机出现异常时,能够及时报警通知管理员;
zabbix由2部分构成:
zabbix server
与可选组件zabbix agent。 zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
A:监控运维工具常常具有的功能:
B:与Zabbix类似的监控系统工具有那些? 答:cacti、nagios、ganglia等类似的监控系统
1. zabbix通信方式
Agent:通过专用的代理程序进行监控与常见的master/agent模型类似,如果被监控对象支持对应的agent([ˈeɪdʒənt] 推荐方式)
SSH/telnet:通过远程控制协议进行通讯
SNMP:通过SNMP协议(“简单网络管理协议)与被监控对象进行通讯,常使用在路由器、交换机网络硬件设备上安装,其实SNMP协议的工作方式也可以理解为master/agent的工作方,只不过是在这些设备中内置了SNMP的agent而已,所以大部分网络设备都支持这种协议。
IPMI:通过IPMI接口进行监控,我们可以通过标准的IPMI硬件接口,监控被监控对象的物理特征,比如电压,温度,风扇状态,电源状态等。
JMX:通过JMX进行监控,JMX(Java Management Extensions,即Java管理扩展)监控JVM虚拟机时,使用这种方法也是非常不错的选择(业务推荐方式)
weiyigeek.top-通信方式
C:什么是Zabbix Agent她的作用是什么? 我们将zabbix agent部署到被监控主机上由agent采集数据,报告给负责监控的中心主机并将数据存入zabbix database中;
D:当监控规模变得庞大时我们是否需要部署多套zabbix系统进行监控呢? 答案肯定是不用的,因为zabbix支持分布式监控,可以把成千上万台的被监控对象分成不同的区域,每个区域中设置一台代理主机;
当监控规模庞大到需要使用zabbix proxy
区域内的每个被监控对象的信息被agent采集提交给代理主机(zabbix proxy),其作用与zabbix server类似
zabbix proxy再将收集到的信息统一提交给真正的zabbix server处理,这样使得zabbix proxy分摊了zabbix server的压力
通过建立统一的监控入口监控所有的对象
zabbix proxy的架构图:
weiyigeek.top-架构图
E:zabbix各种组件总结
zabbix database:用于存储所有zabbix的配置信息、存储agent端接收监控数据的数据库。
zabbix agent:部署在被监控主机上,负责被监控主机的数据,并将数据发送给zabbix server。
zabbix server:负责接收agent发送的报告信息,并且负责组织配置信息、统计信息、操作数据等(目前可以采用mysql/postgresql)。
zabbix web : 如zabbix的web界面,管理员通过web界面管理zabbix配置以及查看zabbix相关监控信息,可以单独部署在独立的服务器上(php编写的)
zabbix proxy:可选组件用于分布式监控环境中,zabbix proxy代表server端完成局部区域内的信息收集,最终统一发往server端。
2. zabbix工作模式
主动模式:Agent端会将采集完的数据主动发送给server端;
被动模式:Agent端也可以不主动发送数据,而是等待server过来拉取数据;
总结:主动/被动模式可以同时存在;
agent端: 使用 zabbix_sender 工具,测试是否能够向Server端发送数据。 server端: 使用 zabbix_get 工具,测试是否能够从Agent端拉取数据。
0x01 Zabbix安装 Zabbix官网地址:https://www.zabbix.com/cn/download 官方文档:https://www.zabbix.com/documentation/4.2/manual/installation/install#installing_frontend 搭建环境:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Server:CentOS Linux release 7.6.1810 (Core) 3.10.0-957.10.1.el7.x86_64 (64) IP:192.168.1.99 Agent1:CentOS release 6.10 (Final) 2.6.32-754.12.1.el6.i686 (32) IP:192.168.1.100 Agent2:CentOS release 6.10 (Final) 2.6.32-754.12.1.el6.i686 (32) IP:192.168.1.100 zabbix_agentd : 10050 zabbix_server : 10051 setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config systemctl stop firewalld.service systemctl disable firewalld.service [Centos 6.10]$ vim /etc/yum.repos.d/zbbix.repo [zabbix] name=zabbix baseurl=http://repo.zabbix.com/zabbix/4.2/rhel/6/i386/ gpgcheck=0 enabled=1 [Centos 7.10]$ vim /etc/yum.repos.d/zbbix.repo [zabbix] name=zabbix baseurl=http://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/ gpgcheck=0 enabled=1 $sudo yum install epel-release.noarch wget vim gcc gcc-c++ lsof net-tools
安装步骤(官方rpm包):1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 [root@Server ~]$ rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm [root@agent ~]$ rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/6/i386/zabbix-release-4.2-1.el6.noarch.rpm yum clean all yum makecache [root@Server ~]$ yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get [root@agent ~]$ yum -y install zabbix-agent zabbix-sender [root@Server ~]$ yum install mariadb mariadb-server mariadb-libs mariadb-devel [root@Server ~]$ mysql -uroot -p'' password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@'192.168.1.%' identified by 'zabbix' ; mysql> quit; $ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix [root@WeiyiGeek /]$ yum install -y httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml [root@WeiyiGeek /]$ rpm -ql "zabbix-web"
0x02 Zabbix配置 (1)Zabbix server配置 编辑配置文件 /etc/zabbix/zabbix_server.conf 设置DBPassword=password为我们在数据上设置的密码; 此处列出我们可能会经常修改的参数,如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 ListenPort=10051 SourceIP= LogType=file LogFile=/var/log /zabbix/zabbix_server.log LogFileSize=0 DebugLevel=3 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=123123 DBPort=3306 DBSocket=/var/lib/mysql/mysql.sock
(2)为Zabbix前端配置PHP 编辑配置文件 /etc/httpd/conf.d/zabbix.conf1 2 3 4 5 6 7 8 <VirtualHost 192.168.1.99:80> servername zabbix.weiyigeek.com documentroot /usr/share/zabbix ........ php_value date.timezone Asia/Shanghai ........ </VirtualHost>
启动Zabbix server和agent进程,并为它们设置开机自启:1 2 # systemctl restart zabbix-server zabbix-agent httpd mariadb # systemctl enable zabbix-server zabbix-agent httpd mariadb
现在您的Zabbix server已经安装完成并开始运行;
(3)为Zabbix agnet 配置 编辑Agent配置文件:/etc/zabbix/zabbix_agnet.conf ,通用参数配置段参数大多数与zabbix_server配置文件中的常用参数意义相同1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Server:用于指定允许哪台服务器拉取当前服务器的数据,当agent端工作于被动模式,则代表server端会主动拉取agent端数据,那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制,如果有多个IP ,可以使用逗号隔开。 ListenPort:用于指定当agent端工作于被动模式时所监听的端口号,默认端口为10050,也就是说,server端默认访问10050端口,从而拉取数据。 ListenIP:用于指定agent端工作于被动模式时所监听的IP地址,默认值为0.0.0.0,表示监听本机的所有IP地址。 StartAgents:用于指定预生成的agent进程数量。 ServerActive:此参数用于指定当agent端工作于主动模式时,将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。 Hostname:此参数用于指定当前主机的主机名,server端通过此参数对应的主机名识别当前主机。 RefreshActiveChecks:此参数用于指明agent端每多少秒主动将采集到的数据发往server端。 Server=192.168.1.99 ServerActive=192.168.1.99 Hostname=zabbix.weiyigeek.com [root@Agent ~]$ echo "192.168.1.99 zabbix.weiyigeek.com" >> /etc/hosts 192.168.1.99 zabbix.weiyigeek.com [root@Agent ~]$ service zabbix-agent start Starting Zabbix agent: [ OK ]
0x03 Zabbix-Web配置与使用 启动服务后访问:http://10.22.53.12/zabbix/
点击下一步验证环境是否满足安装条件
weiyigeek.top-条件验证
点击下一步设置zabbix-database数据库连接信息
weiyigeek.top-数据库设置
点击下一步填写zabbix server信息(Server名称)
weiyigeek.top-
、
显示前面Pre-installation summary配置得信息并且完成安装
weiyigeek.top-
安装完成后出现登陆界面默认得账号:Admin,密码:zabbix
weiyigeek.top-首页
配置界面为中文,点击个人中心 设置 User profile: Zabbix Administrator
weiyigeek.top-中文配置
菜单介绍:
管理:一般用于管理zabbix自身及zabbix相关设置。
配置:一般用于配置监控相关设置
监测:一般用于查看被监控的相关数据
报表:可以为管理员生成一段时间内的监控统计信息。
资产:管理员可以查看被管控的主机有哪些,以及相关的资产信息。
(1)在zabbix中添加主机 两个zabbix的常用术语”主机”与”主机组”:
host(主机):需要被zabbix监控的对象,被称为主机,主机必须属于某个主机组。
hostgroup(主机组):”主机组”也被称为”主机群组”,是由具有相同属性、特征、角色的多个主机组成的逻辑单元。
前面我们将99主机作为了web/database/server,将100/101作为agent主机;所以这里需要将107添加到zabbix主机上;
实战实战:1 2 3 4 5 Step1.配置 -> 主机群组 -> 创建主机群组 -> 输入名称添加即可 Step2.配置 -> 主机 -> 创建主机 -> 填入主机名称 -> 选择代理程序接口 -> (由于没有使用zabbix-proxys所以不用改agent代理程序监控)
weiyigeek.top-添加主机
weiyigeek.top-主机状态
(2)在zabbix添加监控项 在前面我们建立了主机,却没有设置其监控项,所以zab是显示灰色状态,所以: 在zabbix中我们要监控的某一个指标,被称为”监控项”,就像我们的磁盘使用率,在zabbix中就可以被认为是一个”监控项”(item) 如果要获取到”监控项”的相关信息,我们则要执行一个命令,但是我们不能直接调用命令,而是通过一个”别名”去调用命令,这个”命令别名”在zabbix中被称为”键”(key); 所以在zabbix中,如果我们想要获取到一个”监控项”的值,则需要有对应的”键”,通过”键”能够调用相应的命令,获取到对应的监控信息。
实战实战:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Step3. 点击主机选项卡 => data1 -> 监控项进行设置 ->进入监控项配置界面后,可以根据一些条件,筛选出已经存在的一些监控项; Step4. 但是我们并没有任何监控项,所以此处我们直接点击"创建监控项" 按钮,以便新建监控项。 Step5. 在监控项 -> 键值(选择) -> system.cpu.switches - 不变:表示获取到的值是什么样子的,就在数据库中存储为什么样子。 - 差量(简单变化):表示本次收集到的信息值 减去上一次收集到的信息值得出的差值。 - 差量(每秒速率):表示本次收集到的值减去上次收集到的值以后,再除以两次收集信息的间隔时间。 - 理解为同一类型的监控项的集合; - 如果没有可选的合适的应用集,我们可以直接在"新的应用集" 文本框中填入要创建的应用集名称,那么对应应用集会自动被创建,当前监控项也会自动归类为这个应用集。 [root@Server ~]$ zabbix_get -s 192.168.1.100 -k system.cpu.switches 97752
weiyigeek.top-监控项
Step6. 监控菜单 -> 最新数据 -> 选择过滤/主机群
weiyigeek.top-最新数据
Step7. 点击上图中的”图形”连接可以看到如下界面,zabbix已经监控到了对应的cpu上下文切换频率,并且绘制出了对应的”图形”
weiyigeek.top-图像监控
完成配置后监控成功:
weiyigeek.top-zab恢复正常
(3)在zabbix添加带有参数的监控项 在前文解释了 “监控项”(item)、”键”(key)、”应用集”(application)等概念,并且为data-1主机添加了一个监控项,其作用是监控主机的cpu上下文切换速率。
这次我们添加了一个监控项只是与上一次相比,我们这次添加的监控项可以传入参数。(进行监控)
详细的监控项文档:https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes/zabbix_agent
同样我们再选择建立一个监控项: vfs.fs.size[fs,] 磁盘容量。如果返回的是字节则是整数,如果返回的是百分比则是浮点。
“vfs.fs.size”就是键名
“[fs,]”就是这个键需要的参数,而”[fs,]”这两个参数中,fs是不可省参数,mode是可省参数。
mode设置为total,free,used
1 2 3 4 5 6 7 8 9 vfs.fs.size[/tmp,free] [root@Server]$ zabbix_get -s 192.168.1.100 -k vfs.fs.size[/] 18402373632 [root@Server]$ zabbix_get -s 192.168.1.100 -k vfs.fs.size[/,free] 11488763904
weiyigeek.top-配置案例
监控项添加完毕后,等待一分钟左右,查看对应的监控数据,如下点击监控项对应的”图形”连接。
weiyigeek.top-带参数监控
(4)Zabbix 触发器、事件、动作 概念
触发器(Triggers):
实际上就是一个条件表达式而已,当监控的数据满足某种条件的时候进行触发,当触发器被触发的时候往往意味着系统出现问题;
触发器未被触发时,其的状态为”OK”,当触发器被触发时,触发器的状态为”Problem”,当被监控项的值达到阈值时,触发器的状态从”OK”变为”Problem”,当监控项的值再次回归到合理范围时,触发器的状态会从”Problem”转换回”OK”。
事件(Events):
当触发器的状态发生改变时,则会产生对应的”事件”,当然,由触发器的状态改变而产生的事件被称为”触发器事件”
zabbix中事件分为几种类型,除了”触发器事件”,还有一些别的事件,我们可以把”事件”大概理解成一个重要的事情。
动作(Action): 当某个事件产生时,需要对应的处理措施,这种处理措施被称为动作。
(5)Zabbix创建触发器 经过上面理论的介绍,下面我们来进行实际操作如何创建触发器,注意当以前建立过触发器的规则可以直接进行调用;
实战实战:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Step 1. 菜单栏[配置] -> 选项卡[主机] -> 选择要操作的主机行 -> 点击[触发器] Step 2. 创建触发器即可 -> 触发器 -> 表达式[添加] -> 选择设置表达式 -> 补充完触发器所需要的信息 - 表达式设置: 1)监控项:我前面建立的控制项我们可以通过此处进行选择(比如RootPartitionUsed),使用通过选择触发器定义被监控项的阈值; 2) 功能:一些处理调用监控项阈值处理的函数,比如(avg平均值,last最后值) 3) 计数:指出现超过指的次数(与时间间隔相互影响) 4) 间隔:设置单位时间实际为了统计出现超过数值的次数; 5) 设置上面采集处理过的数据进行比较的数值,超过则将触发; - URL :当我们收到报警信息时,可以通过url快速的定位到触发器所对应的监控项,我们可以把对应监控项的"最新数据" 对应的图形链接填入url处,我们还可以为触发器定义"严重性" ,其实就是这个触发器所对应的问题优先级,颜色越深,严重性越大 - 多重问题事件:表示触发器如果处于 Problem 状态,则重复的生成对应的 问题事件,一般不勾选此项。 - 依赖关系:因为现在并没有定义其他触发器,所以我们无法定义触发器的依赖关系过;
weiyigeek.top-
然后我们能在监控最新数据中进行看见,触发的条件表达式:
weiyigeek.top-显示触发条件
(6)Zabbix触发器语法详解 我们在建立好触发器规则后可以在 配置 -> 主机 -> 触发器中看见;
weiyigeek.top-触发器规则
其实,上面的5个部分我们可以通过如下语法表示,如下语法描述了一个触发器的条件表达式的基本结构。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 {<server>:<key>.<function >(<parameter>)}<operator><constant> {data1.weiyigeek.com:vfs.fs.size[/,pused].last( last( 比如avg( 比如sum(300),表示300秒内监控项的值的总和,max( 比如min(600)则表示最近10分钟内监控项的值的最小值, 比如avg(1h,1d) ,表示一天前的一小时内的监控项的值的平均值,假设现在的时间是5点avg(1h)可以理解为4点到5点之间的监控项的值的平均值,而avg(1h,1d) 中的1d表示时间偏移量,那么avg(1h,1d)可以理解为昨天4点到5点的监控项的值的平均值。
(7)Zabbix报警 Q:当zabbix中的某些被监控指标出现异常时,zabbix会通过哪种方式通知运维攻城狮呢? zabbix支持的报警媒介如下:
Email邮件:这是最常用也是最传统的一种报警媒介邮件报警,zabbix通过配置好的SMTP邮件服务器向用户发送对应的报警信息。
Script脚本: 当zabbix中的某些监控项出现异常时,也可以调用自定义的脚本进行报警。
SMS短信 : 如果想要使用短信报警,则需要依赖短信网关(貌似需要北美的运行商)。
Jabber:即时通讯服务。
Ez Texting:商业的收费的短信服务(北美运营商提供服务)。
我们如何进行设置zabbix报警,从上面几种方式中可以看出Email和Script才是我们最好的选择,Email方式很简单这里不多说,主要解释使用的Script脚本:
weiyigeek.top-EMAIL
实战实战:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Step1. 菜单[管理] -> 选项卡[报警媒介类型] -> 创建媒体类型 Step2. 设置名称 | 类型[选择脚本] | 脚本名称 | 脚本参数根据需求进行添加(添加三个参数) Alarm.sh #!/bin/bash to=$1 subject=$2 body=$3 cat <<EOF | mail -s "$subject " "$to " $body EOF set from=发件人邮箱set smtp=smtp服务器set smtp-auth-user=发件人邮箱账户set smtp-auth-password=发件人邮箱账户密码set smtp-auth=loginStep4. 编写好了脚本之后,我们还需要将我们编写的脚本放入zabbix默认的脚本目录中 $ cat /etc/zabbix/zabbix_server.conf $ mv Alarm.sh /usr/lib/zabbix/alertscripts Step5. 在报警媒介类型页面进行添加脚本参数 (注意建议放在/tmp/防止权限问题) {ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE} 宏 在脚本参数中是支持的Zabbix 3.0支持自定义脚本参数. AllowRoot=0 User=zabbix Step6. 设置成功后进行测试发信;
weiyigeek.top-报警配置
其实这种由大括号括起,并且由大写字母组成的字符串在zabbix中被称作”宏”,我们可以理解为zabbix内置的变量,当不同的警告发生时,上述的三个”宏”的值会自动发生变化。 宏列表:https://www.zabbix.com/documentation/4.2/manual/appendix/macros/supported_by_location
但是如果想要某个zabbix用户能够接收到从”MailScript报警媒介”发送过来的报警,还需要进一步配置: 比如当”Admin”用户想要通过”MailScript”报警媒介接收警报时,则必须能够”适配”这种媒介,如果”Admin”用户没有使用”MailScript媒介”的能力,那么”Admin”用户将无法接收到由”MailScript媒介”发出的报警信息。
Q:我们应该怎样让用户能够对应的报警媒介呢? 配置步骤如下:确定无误后,点击”更新”按钮【重点】
weiyigeek.top-用户报警触发
(8)Zabbix动作设置 当我们设置得触发器被触发得时候,将会根据我们运维人员得设置进行执行相应得动作; 实战实战:1 2 3 4 Step1. 配置 -> 动作 -> 创建动作 Step2. [动作] -> 动作 -> 设置动作名称 -> 选择触发器和条件 -> 点击触发器下面得添加 Step3. [动作] -> 动作 -> 设置操作(显示发送的信息等待,与持续时间) -> 设置操作细节 -> 仅送到(我们的脚本) -> 注意【也必须点击添加】 Step4. 更加需求设置恢复操作和更新操作(设置与step3相似)
weiyigeek.top-添加动作
weiyigeek.top-动作操作
动作添加成功:
weiyigeek.top-动作添加成功
超过阈值触发动作然后发送email到邮箱之中:
weiyigeek.top-
0x04 Zabbix实战配置 (1)Zabbix自动发现之fping Zabbix自动发现功能从配置流程上比较简单:Discovery与Action。 在做Zabbix的自动发现验证时也可使用”ICMP ping”的check方式时进行自动发现;
步骤流程:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Step1. 配置 -> 自动发现 -> 创建自动发现规则 -> 设置关规则名称 / IP范围 -> 添加ICMP ping类型(必须点添加否则不能成功) Step2. 配置zabbix_server.conf文件进行取消fping注释 cat /etc/zabbix/zabbix_server.conf | grep -n "fping" 535: /usr/sbin/fping Step3. 配置 -> 主机 -> 创建主机 -> 输入创建信息 -> ICMP-check -> 创建 Step4. 选择刚才创建的主机IMCP-check那一行中的自动发现 -> 创建发现规则 Step5. 设置权限fping chown root:root /usr/sbin/fping chmod u+s /usr/sbin/fping
weiyigeek.top-自动发现ICMP
检测成功:
weiyigeek.top-ICMP发现
(2)Zabbix之模板创建和使用 使用模板能根据简化我们的监控操作,多个主机/群可以应用一个模板包括(触发器/动作/图形)等; zabbix模板下载:https://github.com/monitoringartist/zabbix-searcher
假如我们需要监控agent机器上网卡的出入口流量:1 2 3 4 5 6 7 8 9 10 [root@zabbix tmp]$ zabbix_get -s 192.168.1.100 -k net.if.in[eth6,bytes] 170914 1. 配置 -> 模板 -> 创建模板 -> 输入模板名称于选择群组 -> 应用集 -> 创建应用集 2. 应用集建立后 -> 创建监控项 -> 设置监控项键值 net.if.in[if ,<mode>] 网络接口上传流量统。返回 整数 3. 就可以在监控最新数据中查看最新的数据
weiyigeek.top-创建模板
设置监控项:
weiyigeek.top-设置监控项
我们将模板应用到主机之中:
weiyigeek.top-模板应用
weiyigeek.top-展现效果
0x0n Zabbix入坑配置 (1)安装的zabbix3.0.X无法看到中文选项? 解决:
/usr/share/zabbix/include/locales.inc.php 找到中文对应的值,将显示属性设置为true即可;
切换后中文显示还是乱码则将,将微软雅黑字体msyh.ttf传入到zabbix web的默认字体目录为/usr/share/zabbix/fonts,,并修改include目录下defines.inc.php中将graphfont.ttf字体改成我们上传的字体调用;
define(‘ZBX_FONT_NAME’, ‘msyh_boot’);
define(‘ZBX_GRAPH_FONT_NAME’, ‘msyh_boot’); // font file name
(2)访问控制台出现得问题
weiyigeek.top-program
产生原因:
zabbix-server 未正常启动
已开启selinux但是没有正常设置对应权限
zabbix-server未正常连接数据库
azbbix.conf.php文件中$ZBX_SERVER参数对应得主机名不能正常解析
其他原因需要查看zabbix_server日志
(3)主机发现问题? 10608:20190424:005029.559 cannot send list of active checks to “192.168.1.100”: host [zabbix.weiyigeek.com] not found 10608:20190424:005100.828 cannot send list of active checks to “192.168.1.101”: host [zabbix.weiyigeek.com] not found 检查项:server端自动发现已经开启,zabbix-server端和agend端防火墙和selinux全部关闭,监听端口全部正常,怀疑是服务器解析存在问题,在vi /etc/hosts1 2 3 4 5 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.100 Master-data1 #这里非常关键(自动发现好要设置) 192.168.2.101 Master-data2 192.168.1.99 zabbix.weiyigeek.com
weiyigeek.top-主机发现
(4)主机自动发现设置ICMP ping形式不起作用 原因:”ICMP ping”的check方式,使用/usr/sbin/fping命令检测状态,如果系统没有安装或fping命令执行路径有误,则check方式不能发现设备,自动发现功能失效。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 535: /usr/sbin/fping sed -i 's|# FpingLocation=/usr/sbin/fping|FpingLocation=/usr/local/sbin/fping|g' /usr/local /zabbix/etc/zabbix_server.conf chown root:root /usr/local /sbin/fping chmod u+s /usr/local /sbin/fping
(5)zabbix-web密码忘记修改? 解决办法:1 2 update users set passwd=md5('newpassword' ) where userid = '1' ;
(6)对于开启防火墙如何让zabbix-agent进行正常连接 1 2 3 4 5 6 vi /etc/sysconfig/iptables -A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT -A INPUT -s 192.168.21.127 -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT :wq! service iptables restart
(7)Windows平台下agent客户端链接报错 错误信息:1 2 3 4 5 6 9804:20190507:125038.686 no active checks on server [192.168.56.101:10051]: host [zabbix.weiyigeek.com] not found failed to accept an incoming connection: connection from "10.10.107.112" rejected, allowed hosts: "192.168.56.101" #原因:由于HOSTNAME与zabbix创建的主机名称不一致导致,没有将主机名称写入到hosts文件之中 #解决方法:编辑agent的配置文件将hostname修改为zabbix主机一致的名称 Hostname=Windows7
weiyigeek.top-windows7