Zabbix简介
zabbix介绍
Zabbix 是由 Alexei Vladishev 创建,目前是由 Zabbix SIA 在持续开发和提供支持。
Zabbix 是一种企业级的分布式开源监控解决方案。
Zabbix 是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix 使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix 基于存储的数据提供出色的报告和数据可视化。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持轮询和被动捕获。所有的 Zabbix 报告、统计信息和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您的网络状态和服务器健康状况可以从任何地方进行评估。在经过适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于拥有少量服务器的小型组织,还是拥有大量服务器的大型公司而言,同样适用。
功能介绍
- 可用性和性能采集;
- 支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
- 自定义检查;
- 按照自定义的时间间隔采集需要的数据;
- 通过 Server/Proxy 和 Agents 来执行数据采集。
- 您可以定义非常灵活的告警阈值,称之为触发器,触发器从后端数据库获得参考值。
- 可以根据递增计划、接收者、媒介类型自定义发送告警通知;
- 使用宏变量可以使告警通知变得更加高效有益;
- 自动动作包含远程命令
- 使用内置图形功能可实以将监控项绘制成图形。
- Zabbix 可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。
- 能够创建可以将多个监控项组合到单个视图中的自定义图形;
- 网络拓扑图;
- 以仪表盘样式展示自定义聚合图形和幻灯片演示;
- 报表;
- 监控资源的高层次(业务)视图。
- 存储在数据库中的数据;
- 可配置的历史数据;
- 内置数据管理机制(housekeeping)
- 将被监控设备添加为主机;
- 主机一旦添加到数据库中,就会采集主机数据用于监控;
- 将模板用于监控设备。
- 在模板中分组检查;
- 模板可以关联其他模板,获得继承。
- 自动发现网络设备;
- Zabbix Agent 发现设备后自动注册;
- 自动发现文件系统、网络接口和 SNMP OIDs 值。
- 基于 PHP 的 Web 前端;
- 可以从任何地方访问;
- 您可以定制自己的操作方式;
- 审计日志。
- Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途。
- 安全的用户身份验证;
- 将特定用户限制于访问特定的视图。
- 部署于被监控对象上;
- 完美支持 Linux 和 Windows ;
- 为了更好的性能和更少的内存占用,采用 C 语言编写;
- 便于移植。
- 使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控。
架构介绍
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-5.0版本部署
监控端部署
环境
主机 | IP地址 |
---|---|
Zabbix_Server | 192.168.23.24 |
Web1 | 192.168.23.25 |
基础设置
[root@bogon ~] hostnamectl set-hostname zabbix_server //设置主机名
[root@zabbix_server ~] systemctl stop firewalld.service //关闭防火墙
[root@zabbix_server ~] systemctl disable firewalld.service //禁用防火墙
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@zabbix_server ~] setenforce 0 //临时关闭selinux
准备Zabbix-repo
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm //官网镜像
[root@zabbix-server ~] vim /etc/yum.repos.d/zabbix.repo //国外镜像不可用时,可以使用阿里提供的zabbixYUM源。
[zabbix]
name=alibaba zabbix
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/
gpgcheck=0
enabled=1
[zabbix2]
name=alibaba zabbix frontend
baseurl=https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/
gpgcheck=0
enabled=1
安装Zabbix服务器
[root@bogon ~] yum clean
[root@bogon yum.repos.d] yum install zabbix-web-mysql-scl zabbix-apache-conf-scl //zabbix-server-mysql:数据库 //zabbi-agent:代理程序(上报信息的程序)
[root@zabbix_server ~] yum install centos-release-scl //centos发布scl
[root@zabbix_server ~] yum install zabbix-web-mysql-scl zabbix-apache-conf-scl //zabbix前台页面
安装数据库
[root@bogon ~] yum -y install mariadb mariadb-server
[root@bogon ~] systemctl enable mariadb //启动数据库
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@bogon ~] systemctl start mariadb
//授权zabbix账号
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> create user zabbix@'localhost' identified by 'P@ssw0rd1234';
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit;
初始化zabbix
[root@bogon ~] ls /usr/share/doc/zabbix-server-mysql-5.0.29/
AUTHORS ChangeLog COPYING create.sql.gz double.sql NEWS README
[root@bogon ~] zcat /usr/share/doc/zabbix-server-mysql-5.0.29/create.sql.gz | mysql -uzabbix -p'P@ssw0rd1234' zabbix
配置sql账号密码
[root@bogon ~] vi /etc/zabbix/zabbix_server.conf //修改配置文件如下内容
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=P@ssw0rd1234 //这里是刚刚授权的密码
//启动zabbix
[root@bogon ~] systemctl enable zabbix-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
[root@bogon ~] systemctl start zabbix-server.service
[root@bogon ~] vi /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf //修改配置文件内容
php_value[date.timezone] = Asia/Shanghai
//重启zabbix全部进程
[root@bogon ~] systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@bogon ~] systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/rh-php72-php-fpm.service to /usr/lib/systemd/system/rh-php72-php-fpm.service.
访问Web
http://zabbix_server_IP/zabbix/