Zabbix快速入门
1 部署被监控主机
提示:提前配置好服务器环境初始化工作
清华大学仓库地址:https://mirrors.tuna.tsinghua.edu.cn/
#下载zabbix-agent软件包(该地址为清华大学仓库地址)
[root@host-111 ~]# wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-agent-5.0.0-1.el7.x86_64.rpm
#安装zabbix agent
[root@host-111 ~]# rpm -ivh zabbix-agent-5.0.0-1.el7.x86_64.rpm
#查询软件包安装到系统中文件
[root@host-111 ~]# rpm -ql zabbix-agent
...
/etc/zabbix/zabbix_agentd.conf
#修改agent配置文件
[root@host-111 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
117 Server=192.168.0.110 #指定zabbix server地址
#启动服务并设置服务随机自启
[root@host-111 ~]# systemctl start zabbix-agent
[root@web-26 ~]# systemctl enable zabbix-agent
2 安装Nginx的web服务
按照官方安装nginx的web服务并开启状态页面功能
nginx官方网址:nginx.org
#创建nginx仓库文件
[root@host-42 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#测试仓库
[root@host-42 ~]# yum repolist
#安装nginx
[root@host-42 ~]# yum -y install nginx
[root@host-42 conf.d]# vim default.conf
...
#开启nginx的状态页面
location = /status {
stub_status;
}
#启动服务&设置服务随机自启
[root@host-42 conf.d]# systemctl restart nginx
[root@host-42 conf.d]# systemctl enable nginx
#访问测试
http://192.168.0.111/
http://192.168.0.111/status #访问状态页面
#状态页面含义解释:
active #当前活动用户的连接数量
accepts #接受的客户端连接总数量
handled #处理的连接总数量
requests #客户端请求的总数量
reading #nginx正在读取请求标头的当前连接数
writing #nginx 将响应写回客户端的当前连接数
waiting #当前客户端正在等待服务器的响应数量
3 添加主机
通过本节,你将会学习到如何监控一个新的主机。
Zabbix中,对于主机的监控非常灵活。它可以是一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。
Zabbix中,可以通过 配置(Configuration) → 主机(Hosts)菜单,查看已配置的主机信息。默认已有一个名为'Zabbix server'的预先定义好的主机。但我们需要学习如何添加另一个。
点击 创建主机(Create host)以添加新的主机,这将向我们显示一张主机配置表格
所有必填字段均以红色星标标示。
至少需要填写下列字段(其他选项将会使用默认值)
主机名称(Host name)
输入一个主机名称,可以使用字母数字、空格、点”."、中划线"-"、下划线"_"。
组
从右边的选择框中,选择一个或者多个组,然后点击 << 移动它们到'所在组(In groups)'选择框;或者输入一个不存在的组名,zabbix会创建这个组。
所有访问权限都分配到主机组,而不是单独的主机。这也是主机需要属于至少一个组的原因。
IP地址
输入主机的IP地址。
当完成后,点击 添加(Add)。你可以在主机列表中看到你新添加的主机。
可用性列包含每个接口的主机可用性指标。 我们已经定义了Zabbix代理接口,因此我们可以使用代理可用性图标(上面有‘ZBX’)来判断主机可用性:
- 表示主机状态尚未建立,尚未发生监控指标检查
表示主机可用,监控指标检查已成功
表示主机不可用,监控指标检查失败(将鼠标光标移动到图标上以查看错误消息)。可能是由于接口凭证不正确造成了通信问题。检查zabbix server是否正在运行,并稍后尝试刷新页面
4 新建监控项
本节你会学习如何新建一个监控项(Item)。
监控项是Zabbix中获得数据的基础。没有监控项,就没有数据,因为一个主机中只有监控项定义了单一的指标或者需要获得的数据。
所有的监控项都是依赖于主机的。这就是当我们要配置一个监控项时,先要进入 配置 → 主机 页面查找到新建的主机。
在'新主机(New host)'行中,点击监控项这个链接,然后点击创建监控项(Create item),将会显示一个监控项定义表格
所有必填项均以红色星标标示。
对于监控项的示例,需要输入以下必要的信息:
名称(Name)
输入 以登录系统用户数量 (支持中文)作为值。在列表中和其他地方,都会显示这个值作为监控项名称。
值(Key)
从选择中定义对应的键值名称。这是监控项的一个技术上的名称,用于识别获取信息的类型。这个特定值需要是Zabbix Agent预定义值中的一种(也可自己定义)。
信息类型(Type of information)
在此处选择 Numeric (float)。这个属性定义了想获得数据的格式。
历史数据与趋势数据选择
历史数据(history)和趋势数据(trends)是Zabbix中存储收集到的数据的两种方式
历史数据:每一个收集到的监控数据
趋势数据:按小时统计 计算的平均值数据(每小时收集到的数据)
一般来讲,强烈建议将历史数据保留时长设置得尽可能的小。这么做可以让数据库不会因存储了大量的历史数据,导致超负荷运行。
可以选择长时间的保留趋势数据,来替代长期需要的历史数据。例如:设置成保留14天历史数据和5年的趋势数据
历史记录可以保留 14 天。在这种情况下,任何超过十四天的数据都将来自趋势
具体配置请参考:https://www.zabbix.com/documentation/5.0/zh/manual/config/items/history_and_trends
我们暂时保持其他选项的默认值
当完成后,点击 添加(Add),新的监控项将出现在监控项列表中。
点击配置栏中的**监测**(Monitoring) → 最新数据 (Latest data)以查看具体细节。
第一次获得的监控项值最多需要60秒才能到达。 默认情况下,这是服务器读取变化后的配置文件,获取并执行新的监控项的频率。 等待30秒以获得新的监控项值。
我们在添加三个CPU负载量的监控项, 配置 → 主机 找到对应主机,从’监控项‘中 创建监控项
输入 system.cpu.load[all,avg1] , system.cpu.load[all,avg5],system.cpu.load[all,avg15]作为值
按照上述方法在将其余监控项添加上即可
当完成后,点击 添加(Add),新的监控项将出现在监控项列表中。
前往监测(Monitoring) → 最新数据(Latest data)查看具体细节
常见问题
如果你在没有看到类似截图中的监控项信息,请确认:
你输入的监控项'值(Key)' 和 '信息类型(Type of information)' 同截图中的一致
agent和server都在运行状态
主机状态为'监控(Monitored)'并且它的可用性图标是绿色的
在主机的下拉菜单中已经选择了对应主机,且监控项处于启用状态
5 图表
当监控项运行了一段时间后,可以查看可视化图表。 简单图表适用于任何被监控的数值型(numeric)监控项,且不需要额外的配置。这些图表会在运行时生成。
点击监控项后的'图形(Graph)'以查看图表。
在上述图形中,可以看到有中文乱码的问题,我们可以通过下边方法解决中文乱码的问题
6 解决zabbix中文乱码
字体路径:C:\Windows\Fonts
#将windows中字体文件传输到zabbix存放字体文件路径,并覆盖原文件字体内容
[root@zabbix-server]# cd /usr/share/zabbix/assets/fonts/
[root@zabbix-server fonts]# cp SIMSUN.TTC graphfont.ttf
cp:是否覆盖"graphfont.ttf"? y
7 触发器概述
本节你会学习如何配置一个触发器(trigger)。
监控项只是用于收集数据。如果需要自动评估收到的数据,我们则需要定义触发器。触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。
如果收到的数据超过了这个定义好的级别,触发器将被“触发”,或者进入“异常(Problem)”状态——从而引起我们的注意,让我们知道有问题发生。如果数据再次恢复到合理的范围,触发器将会到“正常(Ok)”状态。
8 添加触发器
为监控项配置触发器,前往配置(Configuration) → 主机(Hosts),找到'新增主机(New host)',点击旁边的触发器(Triggers),然后点击创建触发器(Create trigger)。这将会向我们展现一个触发器定义表单。
对于我们的这个触发器,有下列必填项:
名称(Name)
名称自定义,可根据具体监控项名称作为值。这个值会作为触发器的名称被显示在列表和其他地方。
表达式(Expression)
这个是触发器的表达式 ,从 '添加' 按钮内选择具体的 ”监控项“ 以及触发的条件, 这个特定的表达式大致是说如果当前登录系统的用户数量超过2,那么就触发了问题的阈值。
完成后,点击添加(Add)。新的触发器将会显示在触发器列表中。
随后我们可以在对应主机使用多个用户登录来验证该触发器,如果当前系统的用户数量超过了你在触发器中定义的阈值,这个问题将显示在**监测**(Monitoring) → 问题(Problems)中。
状态列如果闪烁意味着这个触发器状态最近30分钟内发生过变化。
我们在练习添加一个CPU的触发器,配置→ 主机 点击'触发器',创建触发器
触发器的名称我们使用 ”CPU 1分钟负载过高“
表达式具体写法如下图:
这个表达式的大致含义是说如果1分钟内,CPU负载的平均值超过2,那么就触发了问题的阈完成后,点击添加(Add)。新的触发器将会显示在触发器列表中。
随后我们可以在对应主机模拟CPU忙碌来验证该触发器,可在 监测→最新数据 通过图形观察CPU状态
具体问题将显示在监测(Monitoring) → 问题(Problems)中。
9 Zabbix报警通知概述
在本节中,你会学习如何在Zabbix中以通知(notifications)的方式配置报警(alerting)。
当监控项收集了数据后,触发器会根据异常状态触发报警。根据一些报警机制,它也会通知我们一些重要的事件,而不需要我们直接在Zabbix前端进行查看。
这就是通知(Notifications)的功能。E-mail是最常用的异常通知发送方式。我们将会学习如何配置e-mail通知。
10 E-mail报警设置
Zabbix中最初内置了一些预定义的通知发送方式。E-mail通知是其中的一种。
前往管理(Administration) → 报警媒介类型(Media types),点击预定义媒体类型列表中的'Email',以配置E-mail。
这将向我们展现e-mail设置定义表单。
所有必填字段均以红色星标标示。
根据你的环境,设置SMTP服务器,SMTP helo, SMTP e-mail的值。
一切就绪后,点击 更新(Update)。
注意:'SMTP email'将作为Zabbix通知的'发件人(From)'地址。
注意:收件人与发件人需要开启邮件服务,开启方式在对应邮箱官网的设置中找到
11 新建动作
发送通知是Zabbix中动作(actions)执行的操作之一。因此,为了建立一个通知,前往配置(Configuration) → 动作(Actions),然后点击创建动作(Create action)。
所有必填字段均以红色星标标示。
在这个表单中,输入这个动作的名称,名称自定义且支持中文,一般设置成跟具体监控项名称含义一致即可,这样方便你清楚的知道具体是哪个监控项触发的告警
在大多数简单的例子中,如果我们不添加更多的指定条件,这个动作会在任意一个触发器从 'Ok' 变为 '问题(Problem)'时被触发。
我们还需要定义这个动作具体做了什么 —— 即在 操作(Operations) 标签页中配置具体的操作。点击新建(New),将会打开一个操作表单。
我们先配置第一个操作,点击操作内的 ’添加‘
下边是zabbix内置的用户自定义告警消息变量,用于指定发送告警的具体消息,将该内容复制到对应的参数内
告警信息:{EVENT.NAME}
告警主机: {HOST.NAME}
主机地址: {HOST.IP}
监控项目: {ITEM.NAME}
当前取值: {ITEM.LASTVALUE}
告警等级: {TRIGGER.SEVERITY}
告警时间: {EVENT.DATE}-{EVENT.TIME}
事件ID: {EVENT.ID}
接下来我们配置告警恢复操作,点击恢复操作内的 ’添加‘
下边是zabbix内置的用户自定义告警消息变量,用于指定故障恢复时,发送告警的具体消息,将该内容复制到对应的参数内
故障恢复:{EVENT.NAME}
主机地址: {HOST.IP}
告警名称: {EVENT.NAME}
持续时长: {EVENT.DURATION}
恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME}
当前状态: {TRIGGER.STATUS}
当前取值: {ITEM.LASTVALUE}
事件ID: {EVENT.ID}
一切就绪后,点击 添加(Add), 配置一个简单的动作就完成了。
检查对应的动作的状态为 ’已启用‘ 状态 Report problems to Zabbix administrators(向zabbix管理员报告问题)状态无需启用,应为接下来我们会自定义收件人信息
12 获得通知
现在,发送通知配置完成,我们在定义一个外界的收件人邮箱,前边在动作 ’操作‘ 中我们定义的是 Zabbix administrators 组,那也就是只有组内的成员可以收到告警消息,但是组外的用户是无法收到的,如果需要外界用户也可以收到告警消息,需额外添加。
选择用户基本资料从该页面找到 ’报警媒介‘ ’添加‘ 一个收件人的邮箱,这个可以是实际工作中管理员的具体邮箱地址
注意:该邮箱需开启邮件服务,开起方法可等录具体邮箱官网,从设置中开启
一切准备就绪,点击更新即可
接下来我们要在被控主机上模拟多个用户登录系统来触发这个告警动作,来验证是否会收到邮件通知!
然后,前往监测(Monitoring) → 最新数据(Latest data),查看' 以登录系统用户数量 '的值是否已经增长。记住,为了使我们的触发器触发(fire),' 以登录系统用户数量 '的值需要超过2。
一旦满足这个条件:
在监测(Monitoring) → 问题(Problems)中,你可以看到闪烁‘问题(Problem)’状态的触发器。
你的e-mail中,会收到一个问题通知
常见问题分析:如果通知功能没有正常工作:
再次验证e-mail设置和动作设置已经被正确配置
确认你创建的用户对生成事件的主机至少拥有读(read)权限。正如添加用户步骤中提到的,‘Zabbix administrators'用户组中的用户必须对'Linux servers'主机组(该主机所属组)至少拥有读(read)权限。
另外,你可以在**报告**(Reports) → 动作日志(Action log)中检查动作日志。
13 自定义触发器严重性
可以在 管理 → 一般 → 触发器设置 中配置触发器严重性名称和严重性颜色相关的GUI主题。 颜色在所有GUI主题之间共享。
点击 更新
评论区