目录
1、Zabbix工作原理
1.1、重要组件说明
■ zabbix server:负责接收agent发送的报告信息的核心组件,所有配置、统计数据及操作数据都由它组织进行
■ database storage:专用于存储所有配置信息,以及由zabbix收集的数据
■ web interface: zabbix 的GUI接口(图形化界面)
■ proxy:可选组件,常用于监控节点很多的分布式环境中(节点不在一个地方),代理server收集部分数据转发到server,可以减轻server的压力
■ agent: 部署在被监控的主机上,负责收集主机本地数据如cpu、内存、数据库等数据发往server端或proxy端
注:zabbix server、proxy、 agent 都有自己的配置文件以及log文件,重要的参数需要在这里配置
1.2、监控系统运行流程
■ agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端
■ zabbix_server将数据存储到数据库中,zabbix_web(图形化界面)根据数据在前端(web页面)进行展现和绘图
1.2.1、agentd收集模式
■ 主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
■ 被动:server向agent请求获取监控项的数据,agent返回数据
1.2.2、主动检测通信过程
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems 数据值server或者proxy,zabbix 多久获取一次active items? 它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分
1.2.2.1、获取ACTIVE ITEMS列表
Agent打开TCP连接( 主动检测变成Agent打开)
Agent请求items检测列表
Server返回items列表
Agent处理响应
关闭TCP连接
1.2.2.2、Agent开始收集数据主动检测提交数据过程
Agent建立TCP连接
Agent提交items列表收集的数据
Server处理数据,并返回响应状态
关闭TCP连接
1.2.3、被动监测通信过程
Server打开一个TCP连接
Server发送请求agent.ping\n
Agent接收到请求并且响应1
Server处理接收到的数据1
关闭TCP连接
注:被动模式每次都需要打开一个tcp连接,这样当监控项越来越多时,就会出现server端性能问题了
1.3、主动被动实际监控应用
实际监控中是用主动的还是被动,主要涉及两个地方
■ 新建监控项目时,选择的是zabbix代理还是zabbix 端点代理程式(主动式),前者是被动模式,后者是主动模式
■ agentd配置文件中StartAgents参数的设置,如果为0,表示禁止被动模式,否则开启
一般建议不要设置为0,因为监控项目很多时,可以部分使用主动,部分使用被动模式
1.4、常用的监控架构平台
1.4.1、server-agentd 模式
最简单的架构,常用于监控主机比较少的情况下
1.4.2、server-proxy-agentd 模式
这个常用于比较多的机器,使用proxy进行分布式监控,有效的减轻server端的压力
2、Zabbix部署安装流程
部署配置
zabbix-server:192.168.140.50
zabbix-client:192.168.140.60
注:Zabbix安装需要在LAMP平台上安装,因此第一步是部署LAMP架构
2.1、服务器端关闭防火墙,安装依赖包
[root@zabbix-server ~]# systemctl stop firewalld
[root@zabbix-server ~]# setenforce 0
[root@zabbix-server ~]# yum install -y httpd mariadb-server mariadb php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlrpc php-mhash #安装依赖包
2.1.2、修改apache和php配置文件
[root@zabbix-server ~]# ln -s /etc/httpd/conf/httpd.conf /etc/ #创建软连接
[root@zabbix-server ~]# vim /etc/httpd.conf
[root@zabbix-server ~]# vim /etc/php.ini #yum安装,所以默认在etc下
2.1.3、开启apache和mariadb
[root@zabbix-server ~]# systemctl start httpd
[root@zabbix-server ~]# systemctl start mariadb
[root@zabbix-server ~]# netstat -anpt | grep 3306
[root@zabbix-server ~]# netstat -anpt | grep 80
2.2、初始化数据库
[root@zabbix-server ~]# mysql_secure_installation
[root@zabbix-server ~]# mysql -uroot -p123456 #登录数据库