一.Zabbix的简介
一个监控系统运行的大概的流程是这样的:
agentd需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agentd收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据。
【主动监测】通信过程如下:
zabbix首先向ServerActive配置的IP请求获取active items,获取并提交active tiems数据值server或者proxy。很多人会提出疑问:zabbix多久获取一次active items?它会根据配置文件中的RefreshActiveChecks的频率进行,如果获取失败,那么将会在60秒之后重试。分两个部分:
获取ACTIVE ITEMS列表
- Agent打开TCP连接(主动检测变成Agent打开)
- Agent请求items检测列表
- Server返回items列表
- Agent 处理响应
- 关闭TCP连接
- Agent开始收集数据
主动检测提交数据过程如下:
- Agent建立TCP连接
- Agent提交items列表收集的数据
- Server处理数据,并返回响应状态
- 关闭TCP连接
【被动监测】通信过程如下:
- Server打开一个TCP连接
- Server发送请求agent.ping
- Agent接收到请求并且响应<HEADER><DATALEN>1
- Server处理接收到的数据1
- 关闭TCP连接
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制(如,微信、邮件通知)以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
Zabbix 无agent模式:
如果我们需要监控打印机、路由器、UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件的,还好他们一般都支持SNMP协议,这样我可以使用SNMP来监控他们.如果你希望使用SNMP agent来获取这些设备的信息,那么在安装zabbix server的时候你需要增加snmp的支持.
二.Zabbix的特点
zabbix的主要特点:
- 安装与配置简单,学习成本低 - 支持多语言(包括中文) - 免费开源 - 自动发现服务器与网络设备 - 分布式监视以及WEB集中管理功能 - 可以无agent监视 - 用户安全认证和柔软的授权方式 - 通过WEB界面设置或查看监视结果 - email等通知功能等等
Zabbix主要功能:
- CPU负荷 - 内存使用 -磁盘使用 - 网络状况 - 端口监视 - 日志监视。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集。zabbix agent可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD, OS X, Tru64/OSF1, Windows NT4.0, Windows (2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)
Zabbix的系统组成:
Zabbix Server:负责接收Agent发送的报告信息,组织所有配置、数据和操作。
Database Storage:存储配置信息以及收集到的数据。
Web Interface:Zabbix的GUI 接口,通常与Server运行在同一台机器上。
Proxy:可选组件,常用于分布式监控环境中。
Agent:部署在被监控主机上,负责收集数据发送给Server。
三.配置安装Zabbix
1.实验环境
172.25.254.1 Zabbix server server1
172.25.254.2 Zabbix agent server2
2.安装Zabbix所需要的软件
ls
zabbix-server-mysql-4.0.5-1.el7.x86_64.rpm zabbix-web-mysql-4.0.5-1.el7.noarch.rpm zabbix-web-4.0.5-1.el7.noarch.rpm zabbix-agent-4.0.5-1.el7.x86_64.rpm php-bcmath-5.4.16-42.el7.x86_64.rpm php-mbstring-5.4.16-42.el7.x86_64.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm
yum install -y *
3.安装并配置数据库
yum install -y mariadb-server
systemctl start mariadb
mysql_secure_installation ##给数据库进行初始化操作
mysql -p
Enter password:
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin; ##进入到数据库中使用utf-8编码并对用户授权
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'westos'; ##给zabbix的用户授予全部的权力
zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -uzabbix -p zabbix ##导入zabbix数据库
登陆数据库查看导入的数据库是否成功? show databases; show tables;
4.编辑zabbix的配置文件,修改数据库密码,修改时区
vim /etc/zabbix/zabbix_server.conf
116 DBUser=zabbix
124 DBPassword=westos ##这里的密码是zabbix用户的密码,不是数据库的登陆密码
vim /etc/httpd/conf.d/zabbix.conf ##修改时区
php_value date.timezone Asia/Shanghai
5.启动 zabbix server、zabbix agent、httpd
systemctl start zabbix-server
systemctl start zabbix-agent
systemctl start httpd
6.浏览器输入172.25.254.1/zabbix/,进行zabbix的web界面配置
7.Zabbix登录界面
8.Zabbix平台内部的界面 (进入zabbix平台后,可以修改监控语言和登陆密码(点击右上方的人头标志,开始修改密码和语言))
9.添加agent主机 (在被监控端,安装相应的agent软件)
ls
zabbix-agent-4.0.5-1.el7.x86_64.rpm
rpm -ivh zabbix-agent-4.0.5-1.el7.x86_64.rpm
10.在server端上有三种添加监控的方式
(1)手动添加 (在agent端安装相应的agent的应用软件,然后将agent主机添加到相应的server的监控中)
添加完后,ZBX为灰色:
编译agent的配置文件:
vim /etc/zabbix/zabbix_agentd.conf ##开启agent服务器
98 Server=172.25.19.1
139 ServerActive=172.25.19.1
150 Hostname=server2
systemctl start zabbix-agent
然后刷新网页的页面:返现ZBX从灰色变成了绿色,手动添加agent成功。
2.自动发现
设置自动发现的前提是:将上面设置的手动发现的配置和已添加的agent用户一起删除
配置完成之后,就可以测试了。 点击 监测中->自动发现 可以看到新发现的主机
点击 配置->主机 可以看到新发现的主机
3.自动注册
设置自动注册的条件是:先删除之前添加好的server2,然后将上面设置的自动发现禁用
自动注册配置完成之后,需要重启 server2上的 agent 服务。
systemctl restart zabbix-agent
刷新网页的页面,就会显示出自动注册的server2的信息。