Zabbix 介绍
概述
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。
Zabbix 的用户
Zabbix的使用者包括不同行业,不同规模的企业,遍布全球,他们都选择Zabbix作为最主要的监控平台。
Zabbix监控概述
官网:https://www.zabbix.com
zabbix适用于任何IT基础架构、 服务、应用程序和资源的解决方案
数据采集:周期性时序数据
1. 主机/对象:服务器、路由器、交换机、存储、防火墙、 IP、 PORT、 URL、自定义监控对象...
2. 采集目标:监控项,指标数据(metrics data)
数据存储:
+ 存储系统:
- SQL: MySQL/MariaDB(Zabbix)
- NoSQL: Redis(Open-falcon)
- rrd: Round Robin Database(Cacti)
+ 数据:
- 历史数据: 每个监控项采集到的每个监控值
- 趋势数据: 趋势表里主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数。
+ 阈值: severity,可按照等级实现层级报警
+ 告警: email, 短信, 微信,语音,故障自治愈
四大核心任务:
+ 采集: zabbix-server, zabbix-proxy,zabbix-agent
- Agentless: SNMP,Telnet,ssh, IPMI, JMX,
- Agent: zabbix agent
+ 存储: zabbix database
+ 展示: zabbix web
- graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示)
+ 告警:
- host (host groups) <- templates - host -> items -> triggers -> action (条件-conditions, 操作-operations)
zabbix架构
Zabbix 由几个主要的功能组件组成,其功能介绍如下所示。
Server
Zabbix server 是 Zabbix软件的核心组件,agent 向其报告可用性、系统完整性信息和统计信息。server也是存储所有配置信息、统计信息和操作信息的核心存储库。
数据库
所有配置信息以及 Zabbix 采集到的数据都被存储在数据库中。
Web 界面
为了从任何地方和任何平台轻松访问 Zabbix ,我们提供了基于 web 的界面。该界面是 Zabbix server 的一部分,通常(但不一定)和 Zabbix server 运行在同一台物理机器上。
Proxy
Zabbix proxy 可以代替 Zabbix server采集性能和可用性数据。Zabbix proxy在Zabbix的部署是可选部分;但是proxy的部署可以很好的分担单个Zabbix server的负载。
Agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
数据流
另外,回过头来整体的了解下 Zabbix 内部的数据流对Zabbix的使用也很重要。首先,为了创建一个采集数据的监控项,您就必须先创建主机。其次,在任务的另外一端,必须要有监控项才能创建触发器(trigger),必须要有触发器来创建动作(action)。因此,如果您想要收到类似“X个server上CPU负载过高”这样的告警,您必须首先为 Server X 创建一个主机条目,其次创建一个用于监控其 CPU的监控项,最后创建一个触发器,用来触发 CPU负载过高这个动作,并将其发送到您的邮箱里。虽然这些步骤看起来很繁琐,但是使用模板的话,实际操作非常简单。也正是由于这种设计,使得 Zabbix 的配置变得更加灵活易用。
安装部署zabbix
安装数据库
- 安装数据库:
过程略 - 更改配置文件
my.cnf配置文件更改最大链接数
- 准备数据库:
Ubuntu 安装zabbix
编译安装zabbix
- 安装依赖包:
- 下载zabbix源码包
下载地址:https://www.zabbix.com/download_sources
解压文档名看你下载的版本
- 创建用户账户
- 编译安装:
安装proxy时,--enable-proxy
单独安装agent:./configure --enable-agent
- 数据库初始化
需要先安装mysql客户端
database/mysql/目录相对于zabbix解压后的包的目录
3个sql导入的时候要按顺序
- 启动apache2:
- 编辑zabbix_server.con配置文件
- Zabbix Server systemd启动脚本
启动
- Zabbix Agent systemd启动脚本
启动
- 配置web界面
- 找到相应的项,做如下更改
date.timezone 可能为注释项
- 重启apache2:
- 访问zabbix
http://192.168.99.21/zabbix/setup.php
- 开始安装,Next step
- 填写你的数据库
- 添加zabbix服务端(在本机上)
- 确认配置后开始安装
- 点链接下载php配置文件,放到
/var/www/html/zabbix/conf/zabbix.conf.php
- 刷新页面,Finish
- 进入登录界面
默认帐号Admin,密码zabbix
设置中文
- 安装中文包
- 配置相关环境变量
- 重新设置本地的配置
空格选中,回车
再选择 zh_CN.UTF-8
- 重启apache2
- 修改apache2的字体
- 提取主机上的字体
- 将字体放在
/var/www/html/zabbix/assets/fonts/
下 - 网页更改为中文
apt安装 zabbix
https://repo.zabbix.com/zabbix/4.0/ubuntu/pool/main/z/zabbix-release/
- 配置源
- 安装zabbix
安装zabbix server 并使用 MySQL 数据库:
安装 Zabbix proxy 并使用 MySQL 数据库:
安装 Zabbix 前端:
- 编辑zabbix_server.con配置文件
- 启动zabbix
- 导入数据
- 导入php
- 访问web
http://192.168.99.22/zabbix/setup.php
- 上图有个Fail,需要修改配置文件
- 重启apache2
- 刷新网页
- 设置数据库
- 名字随意
- 确认配置
- 完成
- 登录
- 如果遇到这个zabbix server is running=No
- 重启下zabbix server
设置中文
- 安装中文包
- 配置相关环境变量
- 重新设置本地的配置
空格选中,回车
再选择 zh_CN.UTF-8
- 重启apache2
- 修改apache2的字体
- 提取主机上的字体
- 将字体放在 /usr/share/zabbix/assets/fonts/ 下
- 网页更改为中文
apt安装 Zabbix agent
- 配置文件
CentOS 7 安装 zabbix
yum安装 zabbix
- 添加 Zabbix 软件仓库
- Zabbix 前端web界面需要额外的基础安装包
- 安装 Server/proxy/web前端
安装 Zabbix server(适用于 RHEL7,在 RHEL 6 上弃用)并使用 MySQL 数据库:
安装 Zabbix proxy 并使用 MySQL 数据库:
安装 Zabbix 前端(适用于 RHEL 7,在 RHEL 6 上弃用)并使用 MySQL 数据库:
- 导入数据
使用 MySQL 来导入 Zabbix server 的初始数据库 schema 和数据,
对于 Zabbix proxy,导入初始的数据库 schema:
- 编辑 zabbix_server.conf 或 zabbix_proxy.conf 文件以使用已创建的数据库
- 启动 Zabbix server 进程
CentOS 7
- Zabbix 前端配置
yum安装 zabbix Agent
- 添加 Zabbix 软件仓库
- yum安装agent
- 配置agent
- 启动