简介
zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
zabbix 能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题。
Zabbix 主要特点
安装与配置简单,学习成本低 支持多语言(包括中文) 免费开源 自动发现服务器与网络设备分布式监视以及 WEB 集中管理功能 可以无 agent 监视 用户安全认证和柔软的授权方式 通过 WEB 界面设置或查看监视结果 email 等通知功能
Zabbix主要功能
监控CPU负载、内存使用、磁盘使用、网络状态、端口监视、日志监视、插件开发自定义
Zabbix运行机制
Zabbix Server 和 Zabbix agent
Zabbix Server 可以通过 SNMP,Zabbix agent,Ping,端口监视等你方法提供对远程服务器/网络状态的 监视,数据收集功能,可以在运行 Linux,Solaris,HP-UX,AIX,FreeBSD,OpenBSD,OX X,Windows 多 平台。
Zabbix Agent 安装在需要被监控的目标服务器上,主要完成对硬件信息与操作系统有关的内存,CPU 等你 信息收集。
Zabbix Server 可以单独监视远程服务器的服务状态,同时也可以与 Zabbix Agent 结合。可以轮询 Zabbix Agent 主动接收监视数据(trapping 传递 方式),同时还可以被动接收 Zabbix Agent 发送的数据。
Zabbix运行过程图
Zabbix 支持多种网络方式下的监控,可以通过分布式的部署和安装监控代理 Zabbix,通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置!Agent 监控端口 10050
服务端安装 Zabbix Server 和 Zabbix Agent 两个服务,客户端只安装 Zabbix Agent 一个服务,监控原理 就是 Zabbix Agent 服务将从系统中获取的相关数据传送给 Zabbix Server,然后 Zabbix Server 服务奖数据分 析之后以 PHP 页面展示出来!
整个环境所需要的软件包
php-5.6.13
libmcrypt-2.5.8
mysql-5.6.26
nginx-1.8.0
zabbix-3.4.3
我们需要先构建 LNMP 的环境,因为 Zabbix 通过 PHP 页面展示
搭建 LNMP 的环境,如果有这个环境可以忽略
创建导入zabbix数据库
Zabbix 需要数据库的支持,而且Zabbix 已经自带了数据库结构,images 数据库和表数据等相关内容
mysql -uroot -p123456 #创建 Zabbix 使用数据库
mysql> create database zabbix;
mysql> grant all on zabbix.* to zabbix@test63 identified by 'zabbix'; #zabbix 用户授权
mysql> flush privileges;
mysql> exit
tar xvf zabbix-3.4.3.gz -C /usr/local/src/
cd /usr/local/src/ zabbix-3.4.3/ #导入数据库,注意顺序,否则会报错
mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
[root@test63 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
[root@test63 zabbix-3.4.3]# mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
如果在做分布式的环境中,Proxy 服务器只需要一个数据库 schema,代理者 agent 不需要数据库!Server 必须 三个数据库同时拥有
编译安装 zabbix
[root@test63 ~]# groupadd zabbix
[root@test63 ~]#useradd -s /sbin/nologin -g zabbix zabbix#创建用户
[root@test63zabbix-3.4.3]#
yum install -y net-snmp-devel
yum install libevent libevent-devel -y#解决依赖
[root@test63zabbix-3.4.3]# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/var/lib/mysql/bin/mysql_config--with-net-snmp --with-libcurl
参数说明
–prefix= #指定路径
–enable-server #Server 支持
–enable-agent #支持 Zabbix 客户端
–with-mysql #指定 MySql 库可以选择自定路径 mysql_config,mysql_config 是命令,用于编译 mysql 客户端程序
–with-net-snmp #支持 snmp 协议,需要安装 net-snmp-devel 包
–with-libcurl #支持 CURL 功能,libcurl 主要功能就是用不同的协议连接不同的服务器,
libcurl 当前支持的协议有 http,https,ftp,gopher,telent,dict,file,和 ldap 协议
其他参数:
–enable-proxy 指的是支持 zabbix 代理服务器,zabbix proxy 是一个监控代理服务器,它收集到监控数据,选存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送的 zabbix server。监控代理服务需要一个独立的数据库。
用 zabbix proxy 的好处:进程监控,当监控的位置通信不便时,当通讯上千台设备的时候,使用 zabbix_proxy 可以简化维护分布式监控,降低 zabbix server 的负负载,
看到如下信息,预编译就没有什么问题
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@test63 zabbix-3.4.3]# make install #按上面的提示,没有 make 步骤,直接 make install
[root@test63 ~]# ls /usr/local/zabbix/ //编译成功,产生如下目录
bin etc lib sbin share
配置 zabbix Server
[root@test63~]#vim/usr/local/zabbix/etc/zabbix_server.conf
DBHost=test63 #默认注释掉了,直接取消注释即可
DBName=zabbix #数据库用户,我们授权的用户也是zabbix
DBUser=zabbix #默认是 root,我们授权的用户是 zabbix
DBPassword=zabbix #密码我们授权的也是 zabbix
监控 Zabbix Server 本身
监控本身,意思是本身作为服务器之外,自己也做自己的客户端,也要使用agentd这个代理者 配置文件中,有 agentd 和 agent 两个配置文件,前者是守护进程,后者依赖 xinetd
[root@test63~]#vim /usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1 #默认监控服务器自己,这三行不用改
ServerActive=127.0.0.1
Hostname=Zabbix server
UnsafeUserParameters=1 #允许所有的字符是在用户定义的参数,参数传递,也就是支持自定义脚本
其中 Server 和 ServerActive 都指定 zabbixserver 的 IP 地址,不同的是,前者是被动,后者是主动。也就是说前者允许 127.0.0.1 这个 ip 来我这取数据。而 serverActive 的 127.0.0.1 的意思是,客户端主动提交数据给他。
启动服务
如果 zabbix 用户不存在, 将以 root 运行,新建之后,如果 zabbix 存在,那么直接可以用 zabbix 运行
[root@test63 ~]#/usr/local/zabbix/sbin/zabbix_server
sbin/zabbix_server: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory#如果启动报错解决
[root@test63 zabbix]# vim /etc/ld.so.conf#解决库文件找不到
include ld.so.conf.d/*.conf
/var/lib/mysql/lib/ #根据实际路径添加此行
[root@test63 zabbix]#ldconfig#使库文件生效
[root@test63~]#echo /usr/local/zabbix/sbin/zabbix_server >> /etc/rc.local #开机启动
[root@test63 ~]