Zabbix能够监控各种网络参数,保证副武器系统的安全运营,并提供灵活的通知机制让系统管理员快速定位,解决存在的各种问题,是一个基于web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
功能组件
Server
Zabbix server 是zabbix软件的核心组件,agent向其报告可用性,系统完整性信息和统计信息,server也是存储所有配置信息,统计信息和操作信息的核心是存储库
数据库
所有配置信息以及Zabbix采集到的数据都存储到数据库中
Web界面
该界面是Zabbix Server 的一部分,通常(不一定)和zabbix server运行在同一台物理机器上
Proxy
Zabbix proxy可以代替zabbix server采集性能和可用性数据,Zabbix proxy 在zabbix的部署是可选部分;但是proxy的部署可以很好的分担单个Zabbix server的负载。
agent
Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将手机数据发送给zabbix server
一个监控系统运行的大概流程是这样的:
zabbix agent需要安装到被监控的主机上,他负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展示盒绘图,这里agent收集数据分为主动和被动两种模式:
默认情况下zabbix包含6个进程,zabbx_agentid
, zabbix_get
, zabbix_proxy
, zabbix_sender
, zabbix_server
, 另一个zabbix_java_gateway
是可选的,这个需要单独安装
zabbix_agentd
客户端守护进程,此进程收集客户端数据,例如cpu负载、内存、硬盘使用情况等。
zabbix_get
zabbix 工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令。通常用于排错。例如在 server 端获取不到客户端的内存数据,可以使用 zabbix_get 获取客户端的内容的方式来做故障排查。
zabbix_sender
zabbix 工具,用于发送数据给 server 或者 proxy,通常用于耗时比较长的检查。很多检查非常耗时间,导致 zabbix 超时。于是在脚本执行完毕之后,使用 sender 主动提价数据。
zabbix_server
zabbix 服务端守护进程。zabbix_agentd、zabbix_get、zabbix_sender、zabbix_proxy、zabbix_java_gateway的数据最终都是提交到server(说明:当然不是数据都是主动提交给zabbix_server,也有的是 server 主动去取数据)
zabbix_proxy
zabbix 代理守护进程。功能类似server,唯一不同的是它只是一个中转站,它需要把收集到的数据提交/被提交到 server 里。
zabbix_java_gateway
zabbix2.0之后引入的一个功能。顾名思义:Java网络,类似agentd,但是只用于 Java 方面。需要特别注意的是,它只能主动去获取数据,而不能被动获取数据。它的数据最终会给到 server 或者proxy
key
标识OK
转变为problem
, 当数据再次恢复到合理范围,又转变为OK
。在实际监控架构中,zabbix根据网络环境,监控规模等分了三种架构,server-client
, master-node-client
, server-proxy-client
https://www.zabbix.com/documentation/4.0/zh/manual/installation/install
https://www.zabbix.com/documentation/4.0/manual/installation/install_from_packages/rhel_centos
https://www.zabbix.com/documentation/4.0/zh/manual/installation/containers
yum install docker-latest
systemctl start docker-latest
测试
docker run -d -p 80:80 httpd
docker run --name mysql-server -t -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="zabbix123" -d mysql:5.7 --character-set-server=utf8 --collation-server=utf8_bin
zabbix-java-gateway
docker run --name zabbix-java-gateway -t -d zabbix/zabbix-java-gateway:latest
zabbix-server-mysql
docker run --name zabbix-server-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="zabbix123" -e ZBX_JAVAGATEWAY="zabbix-java-gateway" --link mysql-server:mysql --link zabbix-java-gateway:zabbix-java-gateway -p 10051:10051 -d zabbix/zabbix-server-mysql:latest
zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql -t -e DB_SERVER_HOST="mysql-server" -e MYSQL_DATABASE="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix123" -e MYSQL_ROOT_PASSWORD="zabbix123" --link mysql-server:mysql --link zabbix-server-mysql:zabbix-server -p 80:80 -d zabbix/zabbix-web-nginx-mysql:latest
zabbix-agent
docker run --name zabbix-agent -e ZBX_HOSTNAME="Zabbix server" -e ZBX_SERVER_HOST="zabbix-server-mysql" --link zabbix-server-mysql:zabbix-server -d zabbix/zabbix-agent:latest
登录
Admin
zabbix
官网
Zabbix4.0 源码安装