zabbix 基于 Web 界面的提供分布式系统监视,能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
目录
一、zabbix概述
二、监控原理
三、zabbix组件
四、zabbix架构
五、zabbix工作原理
六、部署 zabbix
七、总结
一、zabbix概述
1.zabbix简介
Zabbix是一种开源的企业级网络监控解决方案,旨在监控和跟踪各种IT组件的性能和可用性。它提供了广泛的监控功能,包括网络设备、服务器、虚拟机、数据库、应用程序和服务等。Zabbix具有可扩展性、灵活性和可定制性,适用于中小型到大型复杂环境的监控需求。
●通过一个友好的界面进行浏览整个网站所有的服务器状态
●可以在 Web 前端方便的查看监控数据
●可以回溯寻找事故发生时系统的问题和报警情况
2.zabbix特点
-
- 实时监控:Zabbix能够实时监控各种指标,提供实时的性能数据和状态信息。
- 告警通知:Zabbix支持多种告警方式,如电子邮件、短信、Slack等,能够及时通知管理员或运维人员。
- 数据可视化:Zabbix提供了丰富的图形和报表功能,可以将监控数据可视化展示,便于分析和趋势观察。
- 自动化和集成:Zabbix支持自动发现和自动配置,能够自动添加和删除监控对象。同时,它还提供了API接口,方便与其他系统进行集成和自动化操作。
- 分布式监控:Zabbix支持分布式部署,可以在多个地点设置监控节点,实现分布式监控和负载均衡。
- zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
- zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。
-
zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。
通过使用Zabbix,组织可以实现对IT基础设施的全面监控和管理,提高系统的稳定性和性能,并及时发现和解决潜在问题,从而提高业务的可靠性和效率。
3.zabbix监控对象
-
服务器和主机:
- 物理服务器:可以监控服务器的CPU使用率、内存利用率、磁盘空间、网络流量等指标。
- 虚拟机:支持监控虚拟机的性能和资源使用情况,如虚拟CPU、内存、磁盘和网络。
- 容器:可以监控容器化应用程序的性能和资源利用率,如Docker、Kubernetes等。
-
网络设备:
- 路由器和交换机:可以监控网络设备的接口状态、流量、错误率等信息。
- 防火墙和负载均衡器:支持监控防火墙规则、连接数、负载均衡状态等。
-
数据库和应用程序:
- 数据库服务器:可以监控数据库的查询性能、连接数、缓存利用率等指标。
- Web服务器和应用服务器:支持监控HTTP请求、响应时间、连接数等。
-
操作系统和服务:
- Windows、Linux和Unix系统:可以监控操作系统的性能参数、进程状态、日志等。
- DNS、DHCP、SMTP等网络服务:支持监控服务的可用性、响应时间、错误率等。
-
硬件设备:
- UPS、温度传感器、传真机等辅助设备:可以监控设备的状态、报警和事件。
除了上述常见的监控对象,Zabbix还支持自定义监控对象和指标,通过自定义脚本或Zabbix代理实现对特定应用程序、设备或指标的监控。
需要根据具体的监控需求和环境来配置和定义监控对象,在Zabbix中可以灵活地添加、配置和管理监控对象,以实现全面的监控覆盖。
4.zabbix运行机制
(1)C/S 模式采集数据
(2)通过 B/S 模式在 Web 端展示和配置
二、监控原理
1.监控原理
zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中,用户基于 Zabbix WEB 可以看到数据在前端展现图像。当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。
三、zabbix组件
1.zabbix组件
zabbix 监控部署在系统中,包含常见的五个程序: zabbix_server、zabbix_agent、zabbix_proxy、zabbix_get、zabbix_sender 等。
●zabbix server:zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server;
●zabbix agent:客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等;
●zabbix proxy:zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署;
●zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令;
●zabbix sender:zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。
四、zabbix架构
1.服务器与客户端
2.server-proxy-client
3.master-node-client
五、zabbix工作原理
(1)主动模式:agent 向server 发起连接
-
-
- 在主动模式下,Zabbix代理主动连接Zabbix服务器,并定期发送收集到的数据。代理负责建立连接和发送数据,服务器负责接收和处理数据。
- 主动模式适用于代理在防火墙后面或代理的IP地址是动态分配的情况。代理可以通过配置文件指定连接的服务器地址和端口,并定期发送数据到服务器。
-
(2)被动模式:server向 agent 发起连接
-
-
- 在被动模式下,Zabbix服务器主动连接Zabbix代理,并请求获取数据。代理负责监听指定的端口,等待服务器的连接请求,并将数据返回给服务器。
- 被动模式适用于代理在公共网络中可直接访问的情况,或者代理有固定的IP地址和端口。代理需要在配置文件中指定监听的端口,并等待服务器的连接请求。
-
六、部署 zabbix
1.部署 zabbix 服务端
---------- 部署 zabbix 服务端 ---------- zabbix-server 内存至少 2G,推荐 4G; systemctl disable --now firewalld setenforce 0 hostnamectl set-hostname zbx-server //获取 zabbix 的下载源 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
//更换 zabbix.repo 为阿里源 cd /etc/yum.repos.d sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repo yum clean all && yum makecache yum install -y zabbix-server-mysql zabbix-agent
//安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。 yum install -y centos-release-scl
//修改 zabbix-front 前端源,安装 zabbix 前端环境到 scl 环境下 vim zabbix.repo ...... [zabbix-frontend] ...... enabled=1 #开启安装源 ...... yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
//安装 zabbix 所需的数据库 yum install -y mariadb-server mariadb
systemctl enable --now mariadb mysql_secure_installation #初始化数据库,并设置密码,如 abc123
密码为abc123
//添加数据库用户,以及 zabbix 所需的数据库信息 mysql -u root -pabc123 CREATE DATABASE zabbix character set utf8 collate utf8_bin; GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix'; flush privileges;
//导入数据库信息 rpm -ql zabbix-server-mysql #查询 sql 文件的位置 zcat /usr/share/doc/zabbix-server-mysql-5.0.24/create.sql.gz | mysql -uroot -pabc123 zabbix
//修改 zabbix server 配置文件,修改数据库的密码 vim /etc/zabbix/zabbix_server.conf ...... DBPassword=zabbix #124行,指定 zabbix 数据库的密码
//修改 zabbix 的 php 配置文件 vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ...... php_value[date.timezone] = Asia/Shanghai #24行,取消注释,修改时区
//启动 zabbix 相关服务 systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm 浏览器访问:http://192.168.140.111/zabbix
点击下一步,设置数据库的密码 zabbix 安装完成后,默认的登录账号和密码为:Admin/zabbix 设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。
//解决 zabbix-server Web页面中文乱码问题 yum install -y wqy-microhei-fonts
\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
2.部署 zabbix 客户端
---------- 部署 zabbix 客户端 ---------- zabbix 5.0 版本采用 golang 语言开发的新版本客户端 agent2 。 zabbix 服务端 zabbix_server 默认使用 10051 端口,客户端 zabbix_agent2 默认使用 10050 端口。 systemctl disable --now firewalld setenforce 0 //服务端和客户端都配置时间同步 yum install -y ntpdate ntpdate -u ntp.aliyun.com
在没有网络环境下使用ntp
//客户端配置时区,与服务器保持一致 mv /etc/localtime{,.bak} ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime date
//设置 zabbix 的下载源,安装 zabbix-agent2 rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
cd /etc/yum.repos.d sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo yum install -y zabbix-agent2
//修改 agent2 配置文件 vim /etc/zabbix/zabbix_agent2.conf ....... Server=192.168.140.111 #80行,指定 zabbix 服务端的 IP 地址 ServerActive=192.168.140.111 #120行,指定 zabbix 服务端的 IP 地址 Hostname=zbx-agent01 #131行,指定当前 zabbix 客户端的主机名
//启动 zabbix-agent2 systemctl start zabbix-agent2 systemctl enable zabbix-agent2 netstat -natp | grep zabbix tcp6 0 0 :::10050 :::* LISTEN 43654/zabbix_agent2
//在服务端验证 zabbix-agent2 的连通性 yum install -y zabbix-get #安装 zabbix 主动获取数据的命令
zabbix_get -s '192.168.140.222' -p 10050 -k 'agent.ping' 1
zabbix_get -s '192.168.140.222' -p 10050 -k 'system.hostname' zbx-agent01
//在 Web 页面中添加 agent 主机 点击左边菜单栏【配置】中的【主机】,点击【创建主机】 【主机名称】设置成 zbx-agent01 【可见的名称】设置成 zbx-agent01-192.168.140.222 【群组】选择 Linux server 【Interfaces】的【IP地址】设置成 192.168.140.222 再点击上方菜单栏【模板】 【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent 点击 【添加】
自定义脚本监控 https://kaikai136.blog.csdn.net/article/details/111309497?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-111309497-blog-123223449.pc_relevant_paycolumn_v3&utm_relevant_index=1
3.自定义监控内容
---------- 自定义监控内容 ---------- 案列:自定义监控客户端服务器登录的人数 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息 //在客户端创建自定义 key 1.明确需要执行的 linux 命令 who | wc -l
2.创建 zabbix 的监控项配置文件,用于自定义 key vim /etc/zabbix/zabbix_agent2.conf #可以将自定义的监控项配置文件创建在 zabbix_agent2.d 目录中 268 Include=/etc/zabbix/zabbix_agent2.d/*.conf #自定义监控项的格式如下 291 # Format: UserParameter=<key>,<shell command>
cd /etc/zabbix/zabbix_agent2.d/ vim UserParameter_login.conf UserParameter=login.user,who|wc -l
systemctl restart zabbix-agent2 3.在服务端验证新建的监控项 zabbix_get -s '192.168.140.222' -p 10050 -k 'login.user'
七、总结
Zabbix是一款开源的网络监控和告警系统,具有强大的功能和灵活的配置。它能够实时监测网络设备、服务器、应用程序等,并提供详细的统计数据和图形展示。Zabbix支持多种监控方式,包括SNMP、IPMI、JMX等,同时还提供了灵活的告警机制,能够及时通知管理员并采取相应的措施。通过Zabbix,用户可以实时了解系统的运行状态,及时发现并解决问题,提高系统的稳定性和可靠性。总之,Zabbix是一款功能强大、可定制性高的网络监控解决方案。
标签:Web,Zabbix,agent,server,zabbix,监控,分布式系统,服务器 From: https://www.cnblogs.com/zhende/p/17614643.html