1 介绍
zabbix([`zæbiks])是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成,zabbix server与可选组件zabbix agent。
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方式)。
2 工作原理
一个监控系统运行的大概的流程是这样的:
zabbix agent需要安装到被监控的主机上,它负责定期收集各项数据,并发送到zabbix server端,zabbix server将数据存储到数据库中,zabbix web根据数据在前端进行展现和绘图。这里agent收集数据分为主动和被动两种模式:
主动:agent请求server获取主动的监控项列表,并主动将监控项内需要检测的数据提交给server/proxy
被动:server向agent请求获取监控项的数据,agent返回数据
zabbix-agent的安装----官网预编包下载安装。
首先登陆到https://www.zabbix.com/download_agents该网站下面,如下图
下面看一下自己的linux系统,我使用的是centOS 7.6,所以我下载下面的安装包到我的服务器上。
1、创建zabbix用户和组
groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin 新建zabbix用户并将其加入到zabbix组,并将他设置为不可登录的类型的用户。
2、解压zabbix预编译包
tar -zxvf zabbix-3.2.2.tar.gz
bin conf sbin
3 、我们进入到bin目下,看到如下命令。
zabbix_sender zabbix_get /
将这两个命令建立软连接到usr/bin目录下面。
ln -s zabbix_sender zabbix_get /usr/bin
4 、接下来我们进入到sbin目录下。ls可以看到这里面有个zabbix_agentd的可执行文件,这个可执行文件是zabbix 的客户端的可执行文件,agent可以用来获取和监控数据环境。同样建立软连接到usr 下面的sbin目录下。
ln -s zabbix_agentd /usr/sbin/
5、接下来我们进入到conf目录下。cd ../conf这里面有一个zabbix_agentd.conf,这个就是zabbix-agent的配置文件。我们将它copy到/usr/local/etc目录下面。
cp zabbix_agentd.conf /usr/local/etc/
6 、进入到zabbix_agentd.conf进行修改
vim /usr/local/etc/ zabbix_agentd.conf
zabbix_agentd.conf修改如下:
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.14.66 #地址主动模式,填写Server的IP
ServerActive=192.168.14.66 #修改为Server的IP地址
Hostname=Zabbix server #重要:客户端的hostname,不配置则使用主机名
保存退出。
7 创建/var/log/zabbix/并给予权限。
mkdir /var/log/zabbix/
chown zabbix:zabbix /var/log/zabbix/
chmod 777 /var/log/zabbix/
touch /var/log/zabbix/zabbix_agentd.log
chmod 777 /var/log/zabbix/zabbix_agentd.log
8 、在客户端上添加zabbix的监控端口
vim /etc/services
添加如下内容
zabbix_agent 10050/tcp
zabbix_agent 10050/udp
保存退出!
9 、拷贝启动脚本
cp /usr/local /sbin/zabbix_agentd /etc/init.d
拷贝启动脚本到/etc/init.d下
chmod a+x /etc/init.d/zabbix_agentd
为/etc/init.d下的启动添加可执行权限
10、启动zabbix客户端
/etc/init.d/zabbix_agentd
11 、查看进程,确实zabbix客户端是否启动
ps -ef | grep zabbix
如果现在zabbix的服务并没有起来,报没有权限的错误,
12 、建立zabbix_agentd.pid并赋予权限
touch /tmp/zabbix_agentd.pid
chmod 777 /tmp/zabbix_agentd.pid
13 、关闭防火墙
service iptables stop
查看selinux:getenforce 状态是开启,
将它临时关闭:setenforce 0
14 、在启动一下
/etc/init.d/zabbix_agentd
输入ps -ef | grep zabbix 可以看到启动成功了。