Zabbix(二)

Zabbix(二)

1.Zabbix agent安装

  Zabbix agent被安装在需要监控的主机上,它的主要功能是收集本地系统数据并将其发送给Zabbix服务器。这些数据可能包括CPU使用率、内存使用情况、磁盘空间、网络流量、进程状态等等。通过在被监控主机上安装agent,Zabbix可以实时地获取这些数据并在Zabbix服务器上进行处理和显示,而agent端的安装是非常方便的,接下来演示安装教程,首先直接在被监控的主机上安装如下两个即可

1
yum install -y zabbix-agent zabbix-sender

  所用命令查看安装包详情

1
rpm -ql zabbix-agent

  最重要莫过于zabbix_agentd.conf这个配置文件,在前面的学习当中,我们涉及到了zabbix的主动和被动模式,这两个模式的设置就是在zabbix_agentd.conf中,”主动模式”与”被动模式”都是对于agent端来说的,而且它们可以同时存在,并不冲突。在这个文件中,我们能够配置一些常用的agent端配置,包括zabbix_agent进程的进程编号文件路径,存储日志方式,日志文件位置,日志滚动阈值等等,在通用配置段中参数的大多数与server配置文件中的参数意义相同,这里学习下主动和被动模式参数的知识,

  • 被动模式参数
1
2
3
4
5
6
7
8
9
10
11
Server
用于指定允许哪台服务器拉取当前服务器的数据,当agent端工作于被动模式,则代表server端会主动拉取agent端数据,那么server端的IP必须与此参数的IP对应,此参数用于实现基于IP的访问控制,如果有多个IP ,可以使用逗号隔开。

ListenPort
用于指定当agent端工作于被动模式时所监听的端口号,默认端口为10050,也就是说,server端默认访问10050端口,从而拉取数据。

ListenIP
用于指定agent端工作于被动模式时所监听的IP地址,默认值为0.0.0.0,表示监听本机的所有IP地址。

StartAgents
用于指定预生成的agent进程数量。
  • 主动模式参数
1
2
3
4
5
6
7
8
ServerActive:
此参数用于指定当agent端工作于主动模式时,将信息主动推送到哪台server上,当有多个IP时,可以用逗号隔开。

Hostname:
此参数用于指定当前主机的主机名,server端通过此参数对应的主机名识别当前主机。

RefreshActiveChecks:
此参数用于指明agent端每多少秒主动将采集到的数据发往server端。

  接下来修改主动模式的阐述

1
2
3
Server=192.168.70.165
ServerActive=192.168.70.165
Hostname=test_zabbix_1.net

  好了,到这里agent端也已经安装完毕了

2.Zabbix添加主机

  当我们将服务器纳入到zabbix的管理范围时,便是添加主机的操作。之前也有提及过,在zabbix中,我们的监控对象称之为主机。主机的类型不一定是服务器系统,也可以是路由器,交换机等网络设备,根据主机的属性、角色和特点的不同,我们能够将主机进行分组管理,如何分组可以是感觉需求而定

  • web界面添加

  首先讲述一下实验环境,zabbix的服务器ip为192.168.70.165,主机的ip为192.168.70.166,也就是zabbix-agent为被监控对象,这里进行web界面添加

  下一步,打开zabbix的web控制台,查看主机组

  首先点击配置主机,即可查看到被加入到zabbix主机列表的主机,其中zabbix server默认添加为了一台服务器,以便于监控自己,现在进行添加主机的操作,点击右上角的创建主机操作

  在这之前先查看下zabbix—agent是否在默认端口10050当中

  我这里显示是没问题的,确实在该端口运行的,接下来就是填添加主机表了:

  首先是在主机名称的文本框中填写被监控主机的主机名称,这里的主机名称与设置zabbix_agent服务文件中的Hostname有关。再从接口来讲,一台主机能够被多个接口监控,所以在agent代理程序的接口选项中有添加的选择提供,当前任务为监控的centos式主机,安装了对应的agent服务,只使用agent接口对该系统进行监控记录即可

  最后的代理检测程序表示是否使用zabbix proxy监控当前主机,其本意实际是用于指定zabbix proxy的,与zabbix agent并没有关系,但是因为我们没有配置zabbix_proxy,所以此处保持默认即可

  接下来查看主机组的相关内容,可以发现test_hosts已被添加,并且包含了test_zabbix_1的主机情况

  接下来查看可用性

  在我们添加的zabbix主机1中,其对应的的ZBX是指agent接口,由于暂时还没有配置监控主机的任何指标,因此ZBX是灰色,接下来进行添加介绍

  • 自动注册添加

  网络中有Windows和Linux主机通过配置主机元数据来区分Linux和Windows主机。执行动作将Linux 和Windows 主机分别 加入到不同群组 并分别关联“Template OS Linux”和“Template OS Windows” 模板自动注册上线

  首先在zabbix的页面,转到配置的动作模块,选择自动注册为事件源,并单机创建操作

1
2
3
4
Name:自动注册动作名称
Default subject:默认主题
Default message:默认内容
Enable:启动

  条件设置是发送给服务器的是否满足这个条件,如果满足则服务器添加该主机并执行对应的操作和使用

  这里是对linux对符合条件的主机进行分类和操作。添加主机,添加主机到主机组test_hosts并使用linux的相应模板进行监控

  接下来设置agent的文件,修改其zabbix_agentd.conf文提那家主机元数据和主机名称内容,使得其能够主动发送该内容给服务器进行甄别(记得修改服务器对应的ip地址)

1
2
3
vim /etc/zabbix/zabbix_agentd.conf
Hostname=linux
HostMetadata=system.uname

  接下来就是重启服务器

1
systemctl  start zabbix-agent

  查看对应端口是否开始监听(1050)

1
ss -ntl

  刷新web界面可以看到已经成功自动注册了

3.Zabbix监控项

  类比与liunx系统中的命令别名,在zabbix中,我们要监控的某一个指标变称之为监控项,如果要获取到监控项的相关信息,本质上是执行一个命令,但是我们并不能直接调用命令,而是通过一个别名去调用这个命令,这个别名在zabbix就称之为“key”(也称为“键”),因此,在zabbix中,我们如果需要获取到一个监控项的值,则需要对应的key,通过key能够调用到的对应命令,获取到相应的监控信息。

  这里点击监控项进行添加

  比较重要的是在键值一栏中,我们可以选择对应的key,也就是说,我们可以通过key,获取到cpu的上下文切换次数的信息等操作,所以,点击”选择”按钮,点击选择按钮以后,可以看到非常多的预先定义好的key,这些key都是zabbix自带的key,这些key一般都是系统级别的通用的监控项所能够用到的key,如果这些”键”不能满足我们的需求,我们则需要自定义key,此处,我们选择system.cpu.switches进行测试

  除此之外,我们也可以灵活的定义时间间隔,当周一到周五业务量比较大时,可以3分钟获取一次数据,而周六周日的业务量降低时,为了减少消耗,可以设置10分钟获取一次数据,通过”自定义时间间隔”配置段,添加不同时间段的不同监测频率,其他的到使用的时候会进行详细讲解,这里不过多讲述接下来完成监控项添加:

  打开应用集

  可以看到,在添加玩监控项后,zbx的板块亮起,这说明我的监控项配置是成功的,但是变成了红色,这就表明出现了问题,无法完成监控,点击zbx板块,报错显示

1
Get value from agent failed: cannot connect to [[192.168.70.166]:10050]: [4] Interrupted system call

  这理说明我们连接失败了,我猜测是防火墙的问题,在ip166的主机中查看了防火墙状态:

  很奇怪,查看了防火墙明显是关闭的,我尝试使用firewall-cmd指令也验证了firewall is not running,这说明防火墙并没有开启,抱着所以是 的态度,我启动防火墙服务后再次关闭,结果还真好了(不理解,并且大受震撼)

  接下来就是查看监控数据了,打开检测表单中的最新数据显示,过滤出我们ip166的主机监控信息

  从上图中,可以看到,zabbix除了为我们绘制出了图形以外,还显示出了最大值、最小值、平局值等信息(也就是左下角的乱码区域,这是由于zabbix的web前端没有中文字体,后续进行修改),以上演示中,我们已经为主机添加了第一个监控项,并且已经成功监控到了对应的数据

4.Zabbix添加参数监控项

  这里我们创建一个用与监控磁盘分区的使用率的监控项,基本参考第三大点即可

  这里需要注意的是,与前文的cpu监控相比,它引入了相关的参数内容,”vfs.fs.size”就是键名,”[fs,]”就是这个键需要的参数,在”[fs,]”这两个参数中。其中,“fs”参数是要监视的文件系统的名称或挂载点,“mode”参数是可选的,mode默认是total,剩下的就是free,used,pfree,pused,p这里应该就是百分的意思数

  为了方便查看变化,这里设置了180秒,接下来等待半分钟,查看对应监控数据即可,一般是设置一个小时也就是3600

5.Zabbix触发器

  • 触发器概念

  对于zabbix而言,我们可以将触发器理解为表达式,当满足某个不等式条件时,则代表监控项达到了我们设定的阈值,意味着发生了我们最不想看到的局面。这里想要提及的是,当触发器没被触发时,其状态显示为“ok”,当触发器被触发后,其状态就会从“ok”转变为“problem”,同理,当监控值回归到河里范围后,触发器的状态又会从“problem”转变为“ok”

  • 创建触发器

  这里显示主机上并没有触发器,所以触发列表为空,接下来,我们点击进入后在右上角点击创建触发器的按键

  首先,我们定义一个名字为根分区使用率警报的触发器,接下来在表达式中点击添加

  正如前文所提及到的,我们通过触发器定义被监控项的阈值,这里的监控项便是我们之前所定义的内容,主要是功能的设置,功能有提供一些设置的规则,想要理解这些内容并不困难,我们这设置max的功能选项

  如下配置表示,当ip166主机的根分区使用最近第1次被监控到大于20%,则触发器的条件被满足,触发器将会被触发,配置如下后,点击”插入”按钮

  从上面的设置中,可以看到我们之前的磁盘内存为22%,当我们设置为20时,就会触发报警,提示问题

  接下来,我们修改阈值,将20改为30后刷新界面:

  可以看到报警器又恢复了正常的状态。

  • 触发器报警媒介

  在zabbix的监控指标出现异常,触发了触发器时,给出了多种的报警方式,我们称之为报警媒介,其主要支持邮件模式、脚本模式、短信模式以及即时通讯服务,其中短信模式中既有依赖短信网关的模式,也有收费的商业短信服务。这里主要提及三中:

  Email:邮件,这是最常用也是最传统的一种报警媒介,邮件报警,zabbix通过配置好的SMTP邮件服务器向用户发送对应的报警信息。

  Script:脚本,当zabbix中的某些监控项出现异常时,也可以调用自定义的脚本进行报警,脚本的使用就比较灵活,具体怎样报警全看你的脚本怎么写。

  SMS:短信,如果想要使用短信报警,则需要依赖短信网关。

  我们以其中的邮件作为使用报警媒介,尝试设置,首先进入管理中的报警媒介,类型,可以看到,默认已经存在一些报警媒介,我们可以对已经存在的报警媒介进行修改,也可以创建符合自己需要的报警媒介,点击左上角的创建媒体类型:

  当我们创建了报警媒介时,默认类型为”电子邮件”,在类型的选项中就是我们上边所提到的几种警告媒介类型,我们需要着重讲述的就是邮件告警的两种方式,内部mail和脚本。对于内部mail而言,Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号,并且只能发送,不能接收外部邮件,还有就是使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱

案例——电子邮件报警设置

  首先需要配置好服务器的邮箱发送工具,安装sendmail或者postfix,由于是centos7的版本,一般来说是默认安装好postfix的

1
2
3
yum install postfix
service postfix start
chkconfig postfix on

  接下来安装邮件发送工具mailx:

1
yum install mailx

  杰西莱是需要设置mailx的内容,首先使用命令查看mailx的文件位置:

1
whereis mailx

  接下来修改mail.rc的参数

1
2
3
4
5
6
vim /etc/mail.rc
set from=xxx@163.com
set smtp=smtp://mail.163.com:25
set smtp-auth-user=xxx@qq.com
set smtp-auth-password=your_password
set smtp-use-starttls=yes

  这里安装协议后尝试发送邮件,标题为test,邮件内容为work overtime(加班!),发送到后面的指定邮箱,我这里我使用的是公司邮箱进行测试:

1
echo " work overtime" |mail -s "test" xxx@qq.com

  接受完成,这里出问题被骗;了,说要设置才能发送,明明直接安装好就能发送了,只不过是被扔到垃圾邮件了

注:Zabbix中文显示问题

  前面提到了zabbix的web前端没有中文字体,所以这里进行修改教程,首先我们通过进入windows页面中输入c:\windows\fonts选择其中任意一种中文字体(需要注意有点是大写F,我就是)

  我这里选择的是黑体常规的中文字体,进行复制之后导入到虚拟机中,并放置到zabbix的默认字体路径下:

1
2
3
4
5
6
7
vim /usr/share/zabbix/include/

//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'SIMHEI');

//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans');
define('ZBX_GRAPH_FONT_NAME', 'simhei');

  修改对应的内容信息后,刷新界面即可修改成功:


Zabbix(二)
https://one-null-pointer.github.io/2023/06/10/Linux运维——Zabbix(二)/
Author
liaoyue
Posted on
June 10, 2023
传送口