Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
架构
Zabbix 由几个主要的功能组件组成,其职责如下所示。
Server
Zabbix server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以替 Zabbix server 收集性能和可用性数据。Zabbix proxy 是 Zabbix 环境部署的可选部分;然而,它对于单个 Zabbix server 负载的分担是非常有益的。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
数据流
此外,重要的是,需要回过头来了解下 Zabbix 内部的整体数据流。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,必须有一个监控项来创建触发器。最后,您必须有一个触发器来创建一个动作,这几个点构成了一个完整的数据流。因此,如果您想要收到 CPU load it too high on Server X 的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监视其 CPU 的监控项,最后创建一个触发器,用来触发 CPU is too high 这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,其实并不复杂。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
目录
安装zabbix的服务端(server)和web前端(Frontend)以及数据收集端(agent);
选择系统:
zabbix安装
安装zabbix的存储库:
# rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
# dnf clean all
切换PHP的DNF模块版本:
dnf module switch-to php:7.4
安装:Zabbix server, frontend, agent
dnf install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
数据库配置:
创建zabbix数据库:
进入数据库的命令界面:
运行命令:
创建存储数据的库,并支持中文
create database zabbix character set utf8mb4 collate utf8mb4_bin;
授权连接数据库的用户,并设置密码(用户名:zabbix 密码:2220946265lisi/%为所有主机均可访问)
create user zabbix@'%' identified by '2220946265lisi';
数据库授权。赋给用户远程权限
grant all privileges on zabbix.* to zabbix@'%';
允许创建或修改存储函数
set global log_bin_trust_function_creators = 1;
在ZabbixMysql数据库导入初始模式和数据
前往:/usr/share/zabbix-sql-scripts/mysql/server.sql.gz
下载server.sql.gz到本地解压得到server.sql的SQL文件;
,然后使用navcat运行server.sql文件即可:
禁止创建或修改存储函数
使用navcat进入命令模式:
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;
为Zabbix服务器配置数据库密码
编辑 /etc/zabbix/zabbix_server.conf文件:
启动Zabbix服务器和代理进程:
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm
#查看zabbix服务占用端口信息
netstat -anptul | grep zabbix
zabbix server服务名:zabbix-server 端口:10051
zabbix agent服务名:zabbix-agent端口:10050
完成!
web页面服务设置:
登录web监控系统:http:///43.143.198.158/zabbix
您看到的第一个Web前端安装向导页面如下:
设置数据库连接:
主机名称随便写、时区选择亚洲/上海:
安装完成!
**
zabbix server主配置文件:/etc/zabbix/zabbix_server.conf
zabbix agent主配置文件:/etc/zabbix/zabbix_agentd.conf
zabbix企业微信报警脚本路径:/usr/lib/zabbix/alertscripts
zabbix自定义监控项路径:/etc/zabbix/zabbix_agentd.d zabbix**
日志文件路径:/var/log/zabbix/
web页面学习
暴力破解攻击的保护机制,为了防止暴力破解和词典攻击,如果发生连续五次尝试登陆失败,Zabbix接口将暂停30秒。
超级用户名是Admin,密码是zabbix:
设置修改密码主题语言时区等:
创建用户
群组选项可以先创建再添加用户;
设置为管理员权限:
设置媒介(邮件类型)
在被监控服务器上安装----数据收集端(agent)
安装zabbix存储库
rpm -Uvh https://repo.zabbix.com/zabbix/6.2/rhel/8/x86_64/zabbix-release-6.2-3.el8.noarch.rpm
dnf clean all
安装Zabbix的agent
dnf install zabbix-agent
修改zabbix-agent配置文件/etc/zabbix/zabbix_agentd.conf:
#指定zabbix server地 址
启动agent代理进程、并且在系统启动时自动开启:
systemctl restart zabbix-agent
systemctl enable zabbix-agent
zabbix agent服务名:zabbix-agent端口:10050
主机
Zabbix中的主机(Host)是一个你想要监控的网络实体(物理的,或者虚拟的)。Zabbix中,对于主机的定义非常灵活。它可以是一台物理服务器,一个网络交换机,一个虚拟机或者一些应用。
新建主机:
至少需要填写下列字段:
主机名称(Host name)
输入一个主机名称,可以使用字母数字、空格、点”.“、中划线”-“、下划线”_"。
组
从右边的选择框中,选择一个或者多个组,然后点击 << 移动它们到’所在组(In groups)'选择框;或者输入一个不存在的组名,zabbix会创建这个组。
可用性列包含每个接口的主机可用性指标。 我们已经定义了Zabbix代理接口,因此我们可以使用代理可用性图标(上面有‘ZBX’)来判断主机可用性:
- 表示主机状态尚未建立,尚未发生监控指标检查
新建监控项
监控项是Zabbix中获得数据的基础。没有监控项,就没有数据——因为一个主机中只有监控项定义了单一的指标或者需要获得的数据。
名称(Name)
输入 CPU Load 作为值。在列表中和其他地方,都会显示这个值作为监控项名称。
值(Key)
手动输入 system.cpu.load 作为值。这是监控项的一个技术上的名称,用于识别获取信息的类型。这个特定值需要是Zabbix Agent预定义值中的一种。
信息类型(Type of information)
在此处选择 Numeric (float)。这个属性定义了想获得数据的格式。
你也需要减少监控项历史保留的天数,7或者14天。这是一种可以减轻数据库保留许多历史值的很好的做法。
查看监控项
选择要检查的主机:
图表
当监控项运行了一段时间后,可以查看可视化图表。 简单图表 适用于任何被监控的数值型(numeric)监控项,且不需要额外的配置。这些图表会在运行时生成。
触发器
监控项只是用于收集数据。如果需要自动评估收到的数据,我们则需要定义触发器。触发器包含了一个表达式,这个表达式定义了数据的可接受的阈值级别。
添加触发器
当服务器的cpu在5分钟内平均值超过2.5时触发警告!
你可以在触发器表达式中使用支持的单位符号, 例如‘5m’(分钟)代替‘300’秒,‘1d’(天)代替‘86400’秒。‘1k’代表‘1024’bytes。
查看触发的警告
如果CPU负载超过了你在触发器中定义的阈值,这个问题将显示在监控(Monitoring) → 问题(Problems)中。
通知
设置E-mail通知:
这里使用网易126邮箱:(qq邮箱死活登录被拒)
开启POP3/SMTP:(在设置里面)
完事点击更新即可:
测试发送成功!
新建动作
发送通知是Zabbix中动作(actions)执行的操作之一;
创建动作并选择需要监听的触发器:
在大多数简单的例子中,如果我们不添加更多的指定条件,这个动作会在任意一个触发器从 ‘Ok’ 变为 'Problem’时被触发。
设置该动作的操作:
添加需要通知的用户即可:该用户要设置email的地址奥~
将cpuload值改小测试邮件是否可以接收(测试完要改回来,一般cpuload(某一时间段新启动进程数)的平均值不能长时间的和cpu核数相等或者大于)
触发器已经出发,问题已经出现:
邮件已经就收:
模板
模版允许对有用的监控项、触发器和其他对象进行分组,只需要一步就可以对监控主机应用模版,以达到反复重用的目的。
当一个模版链接到一个主机后,主机会继承这个模版中的所有对象。简单而言,一组预先定义好的检查会被快速应用到主机上。
模版名称(Template name)
输入一个模版名称。可以使用数字、字母、空格及下划线。
组(Groups)
使用选择(Select)按钮选择一个或者多个组。模版必须属于一个组。
在模版中添加监控项
为了在模版中添加监控项,前往’New host’的监控项列表。在配置(Configuration) → 主机(Hosts),点击‘New host’旁边的监控项(Items)。
选中列表中’CPU Load’监控项的选择框
点击列表下方的复制(Copy)
选择想要复制这个监控项的目标模版
现在可以前往配置(Configuration) → 模版(Templates),New template中会有一个新的监控项。
链接模版到主机
点击更新(Update)保存配置。现在,新模版及其所有的对象被添加到了主机。
zabbix提供现有模版
Zabbix致力于提供越来越多的有用的开箱即用模板。开箱即用的模板是预配置的,因此是加快监视作业部署的有用方法。
根据自己的需求连接到主机即可!
zabbix社区模版
github地址
如何使用此存储库中的模板?
下载模板并将其导入支持的Zabbix版本。
根据配置要求配置模板
将模板配置到主机
修改中文乱码
下载字体:
yum install wqy-microhei-fonts -y
覆盖原有的字体:
完成!
这也只是入门,对zabbix使用有些了解,后期自己根据业务自定义吧!