简介
Zabbix 是由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。
Zabbix 是一个企业级的分布式开源监控方案。
Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和数据可视化功能。这些功能使得Zabbix成为容量规划的理想方案。
Zabbix支持主动轮询和被动捕获。Zabbix所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问。基于Web的前端页面可以确保您从任何方面评估您的网络状态和服务器的健康性。适当的配置后,Zabbix可以在IT基础架构监控方面扮演重要的角色。对于只有少量服务器的小型组织和拥有大量服务器的大型公司也同样如此
监控系统基本组件
- 采样的方式:lpml,agent,snmp,jmx等
- 存储的位置:rrd,sql,NoSQL等
- 展示的平台:web gui,app等
- 报警:发送通知等
zabbix常见组件
- zabbix-server :服务端守护进程
- zabbix-database:存储系统
- zabbix-web:web界面
- zabbix-agent:agent守护进程
- zabbix-proxy:代理服务器
- zabbix-get:命令行工具,测试向agent端发起数据采集请求
- zabbix-sender:命令行工具,测试向server端发送数据
- zabbix_java_gateway:java网关,用来检测java相关状态
常用的术语
- 主机 (host): 一台你想监控的网络设备,用IP或域名表示
- 主机组 (host group):主机的逻辑组;它包含主机和模板。一个主机组里的主机和模板之间并没有任何直接的关联。通常在给不同用户组的主机分配权限时候使用主机组。
- 监控项 (item):你想要接收的主机的特定数据,一个度量数据。
- 触发器 (trigger):一个被用于定义问题阈值和“评估”监控项接收到的数据的逻辑表达式,当接收到的数据高于阈值时,触发器从“OK”变成“Problem”状态。当接收到的数据低于阈值时,触发器保留/返回一个“OK”的状态。
- 事件 (event):单次发生的需要注意的事情,例如触发器状态改变或发现有监控代理自动注册
- 动作 (action): 一个对事件做出反应的预定义的操作。一个动作由操作(例如发出通知)和条件(当时操作正在发生)组成
升级 (escalation):一个在动作内执行操作的自定义场景; 发送通知/执行远程命令的序列 - 媒介 (media):发送告警通知的手段;告警通知的途径
- 通知 (notification):利用已选择的媒体途径把跟事件相关的信息发送给用户
- 模版 (template):一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,LLD,Web场景)的集合,模版的任务就是加快对主机监控任务的实施;也可以使监控任务的批量修改更简单。模版是直接关联到每台单独的主机上。
- 应用 (application):一组监控项组成的逻辑分组
常见的工作模式
- Zabbix Web
为了从任何地方和任何平台都可以轻松的访问Zabbix, 我们提供基于Web的Zabbix界面。该界面是Zabbix Server的一部分,通常(但不一定)跟Zabbix Server运行在同一台物理机器上。 - Zabbix server
Zabbix server 是agent程序报告系统可用性、系统完整性和统计数据的核心组件,是所有配置信息、统计信息和操作数据的核心存储器。 - DataBase 数据库存储
所有配置信息和Zabbix收集到的数据都被存储在数据库中。 - Zabbix proxy
Zabbix proxy 可以替Zabbix Server收集性能和可用性数据。Proxy代理服务器是Zabbix软件可选择部署的一部分;当然,Proxy代理服务器可以帮助单台Zabbix Server分担负载压力。 - Zabbix agent
Zabbix agents监控代理 部署在监控目标上,能够主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix Server。
工作模式
Zabbix工作模式是相对于zabbix agent来说的
- 被动模式:被动模式就是由zabbix server向zabbix agent发出指令获取数据, 即zabbix agent被动的去获取数据并返回给zabbix server, zabbix server周期性的向 agent 索取数据, 这总模式的最大问题就是会加大zabbix server的工作量, 在数百台服务器的环境下zabbix server不能及时获取到最新数据, 但这也是默认的工作方式。
- 主动模式是有zabbix agent主动采集数据并返回给zabbix server, 不再需要zabbix serve进行干预, 因此主动模式在一定程度上可减轻zabbix server的压力
工作过程
agent负责收集数据并发送给proxy或者server,如果发送给proxy,proxy会将收集到的数据再发送给server,server将收集的数据存放到数据库中,当用户打开web页面,从数据库获取数据展示给用户。如果agent直接发送给server,那serve直接将收集的数据存放到数据库中。当用户打开web页面,从数据库获取数据展示给用户
其中Zabbix server,Zabbix web ,DataBase都不是必须在同一台主机上。
Zabbix不仅支持基于agent收集数据,同时也支持SNMP(包括主动轮训和被动获取),IPMI,JMX,VMware监控
使用yum安装
在这个页面可以找到对应的rpm包和具体安装过程
https://www.zabbix.com/download?zabbix=3.0&os_distribution=centos&os_version=7&db=MySQL
环境:Zabbix3.0,MySql,CentOS7
第一步:安装一些依赖包
yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml mariadb mariadb-server -y
第二步:安装源码库配置部署包(从上面的网址得到的url)
rpm -i https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
第三步:安装zabbix agent和zabbix server
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
第四步:创建数据库
systemctl stop firewalld
setenforce 0
systemctl start mariadb #启动数据库
ln -sv /var/lib/mysql/mysql.sock /tmp/mysql.sock
mysql -uroot #进入mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'password';
MariaDB [(none)]> quit;
导入表结构
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -ppassword zabbix
第五步:配置php时区
如果只记得Shanghai忘了亚洲怎么拼可以用这种方式找
find / -name "Shanghai"
修改的方式有2种,第一种修改/etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai
第二种方法修改/etc/php.ini
date.timezone = Asia/Shanghai
第六步:修改配置文件/etc/zabbix/zabbix_server.conf
############ GENERAL PARAMETERS #################
ListenPort=10051 ##监听的端口
LogType=file ##日志的记录的类型,这里表示记录在文件中
LogFile=/var/log/zabbix/zabbix_server.log #日志路径
LogFileSize=0 #日志大小,超过则会进行切割,0表示不切割
PidFile=/var/run/zabbix/zabbix_server.pid #pid文件路径
DBHost=localhost #数据库位置 必填
DBName=zabbix #数据库名称 必填
DBUser=zabbix #连接数据库的用户名 必填
DBPassword=passord #连接数据库对应的密码 必填
DBSocket=/tmp/mysql.sock #socket文件路径
DBPort=3306 #数据库开放的端口 必填
############ ADVANCED PARAMETERS ################
####### LOADABLE MODULES #######
####### TLS-RELATED PARAMETERS #######
第七步:启动zabbix server和httpd
systemctl start httpd zabbix-server
第八步:在网页端配置zabbix
访问http://192.168.253.128/zabbix #这里的ip根据你的zabbix server服务器地址变化
检查基本配置
配置数据库
如果要配置zabbix 的web与server分离需要在这个页面设置,这里的Host填写远端的web服务器ip
配置的概要
安装成功
第九步:登录
默认账号为:Admin
默认密码为:zabbix
第十步:我们可以添加一个agent来测一下
修改/etc/zabbix/zabbix_agentd.conf
Server=192.168.253.128 #这里的ip是zabbix的Server端ip
Hostname=zabbix_agent1
然后启动zabbix-agent
systemctl start zabbix-agent
这里的Host name必须与agent的配置文件中Hostname中一致
关联一个模板
查看一下数据能否正常获取
从这里可以看到数据更新了。