测试环境说明:
1、vmware workstation12 (安装在dell台式机win7系统上)
2、虚拟机操作系统:ubuntu 14.04
4、虚拟机:zabbix proxy 内存 1G vCPU 1 磁盘:20G
安装时间:20161011
一、更新系统
二、安装mysql
root@host-10-1-1-43:~/zabbix-2.2.2# apt-get install mysql-server mysql-client
输入y继续
1、设定mysql 根 root密码 1qaz#EDC
2、确认密码 再次输入1qaz#EDC
三、配置mysql参数
1、编辑配置文件 vim /etc/mysql/my.cnf
max_connections = 50 最大连接数设置,测试用途50足矣
query_cache_limit = 1M 查询缓存限制
query_cache_size = 128M 查询缓存大小
其他的配置项,基本默认配置即可
四、获取zabbix_2.2.15.orig.tar.gz (这里的版本跟server端一致)
1、wget http://repo.zabbix.com/zabbix/2.2/ubuntu/pool/main/z/zabbix/zabbix_2.2.15.orig.tar.gz
2、解压到指定目录
root@zabbix-proxy-01:~# tar -zxvf zabbix_2.2.15.orig.tar.gz -C /usr/local/src/
五、mysql数据库初始化
1、进入database目录
root@zabbix-proxy-01:~# cd /usr/local/src/zabbix-2.2.15/database/
2、创建数据库,数据库名称为zabbix ,密码就是之前安装mysql定义的root密码:1qaz#EDC
语句: mysql -uroot -p -e"create database zabbix;"
3、授权账户zabbix,可以登录到库zabbix
3.1、登入数据库
root@host-10-1-1-43:~/zabbix-2.2.2/database# mysql -uroot –p
3.2、授权操作
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
3.3、执行OK
4、导入zabbix的数据库(注意:如果安装zabbix-proxy,只需要导入schema.sql即可,其它不用导入)
4.1、在导入之前,先看看库zabbix里面有没有表
结果:表是空的
4.2、执行语句: mysql -D zabbix -uzabbix -pzabbix < mysql/schema.sql 进行导入
注意:因为我这里用的是mysql数据库,所以是在mysql目录下,如果安装zabbix-proxy,只导入schema.sql即可,其他两个不用导入。
4.3、导入成功后,再次查看有没有数据
结果:已经有数据了,说明导入成功
六、测试数据库是否初始化成功
测试流程如下:
1、重新启动mysql服务
2、用zabbix账户进入数据库
3、查看数据库zabbix以及表
命令:
目测全部通过!
七、zabbix编译的依赖包安装
root@zabbix-proxy-01:# apt-get install snmp libsnmp-dev snmpd libcurl4-openssl-dev fping libmysqlclient15-dev
八、zabbix开始编译安装
1、定义安装配置信息,如:安装路径,开启代理:–enable-proxy
root@zabbix-proxy-01# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl
如配置成功最后的界面:
2、开始进行编译和编译安装
因我的系统没有安装make工具,所以需要进行安装
root@zabbix-proxy-01#apt-get install make
3、接着进行编译
root@zabbix-proxy-01# make
4、开始编译安装
root@zabbix-proxy-01# make install
九、修改zabbix_proxy.conf文件
1、进入到zabbix安装目录
root@zabbix-proxy-01:/usr/local/src/zabbix-2.2.15# cd /usr/local/zabbix/etc/
2、对zabbix_proxy.conf配置文件备份一下(搞砸了好恢复呀)
cp -a zabbix_proxy.conf zabbix_proxy.conf.bak
3、编辑zabbix_proxy.conf配置文件
sudo vim zabbix_proxy.conf
#更改如下内容:
Server=192.168.216.3 #zabbix server的IP地址
Hostname= zabbix proxy #主机名,这个配置和该机器实际的主机名没有关系,但必须和 zabbix server中添加该机器的时候的主机名一致,否则zabbix server获取不到信息
ServerPort=10051
LogFile=/tmp/zabbix_proxy.log 日志文件
LogFileSize=0 日志文件大小
PidFile=/tmp/zabbix_proxy.pid
DBHost=127.0.0.1 数据库地址(本地)
DBName=zabbix 数据库名称
DBUser=zabbix 数据库账户
DBPassword=zabbix 数据库登录密码
ConfigFrequency=60 配置频率
DataSenderFrequency=5 数据发送方频率
DBSocket=/var/run/mysqld/mysqld.sock
4、启动zabbix的proxy服务
root@zabbix-proxy-01:#/usr/local/zabbix/sbin/zabbix_proxy -c /usr/local/zabbix/etc/zabbix_proxy.conf
红色箭头处为启动的错误信息:
zabbix zabbix_proxy[22420]:用户不存在
zabbix_proxy[22420]:不能作为根用户运行!
解决办法:添加用户zabbix
root@zabbix-proxy-01:~# groupadd zabbix
root@zabbix-proxy-01:~# useradd -g zabbix zabbix
再次重试启动操作
成功启动!!!
友情提示:
1、内网和外网之间通信端口是否开放,zabbix proxy的10051默认端口
十、proxy服务器启动agent(也加入监控)
1、编辑zabbix_agentd.conf配置文件
root@zabbix-proxy-01:#cd /usr/local/zabbix/
root@zabbix-proxy-01:/usr/local/zabbix/etc#vim zabbix_agentd.conf
3、修改如下内容(注意:proxy服务器只负责采集client客户端的数据,这台proxy服务器如果也要被监控起来,那么也指向主server)
Server=192.168.216.3 被动模式
ServerActive=192.168.216.3 主动模式
Hostname=zabbix-proxy-01
2、启动zabbix_agent服务:
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
注意:需要确定被监控端的zabbix_agentd.conf里面的 Hostname=" zabbix-proxy-01", 服务端Zabbix server页面的上的机器名一致, 否则有可能导致服务端不知道把数据保存在哪一台 ...
十一、在server端添加代理服务器
1、在zabbix配置web页面操作:添加一个zabbix proxy
点save 创建一个名为zabbix-proxy-01的代理,使用active的代理方式!
2、增加发现并添加主机功能
附:Zabbix proxy工作原理,本段摘抄于茫茫网络之中。
1.工作原理:
Zabbixproxy是一个监控代理服务器,它收集监控到的数据,先存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送到Zabbixserver;监控代理需要一个单独的数据库。
Zabbix proxy的好处:
远程监控
当监控的位置通信不便时
当监控上千的设备时
简化维护分布式监控,降低zabbixserver的负载
zabbixproxy的配置总结:
1 2 3 |
1.代理服务器只是起到一个数据收集器的作用,它把收集到的数据按一定的频率传送给zabbix服务 2.有主动模式和被动模式两种,主动与被动是针对zabbix proxy而言的,我在这用的是主动模式,只需配置zabbix proxy的配置文件即可,在zabbix server端不做任何配置。 3.关键是在zabbix server的前端创建代理节点的名字时,该名字应和zabbix代理配置文件中指定的Hostname值相同 .配置zabbixproxy的配置文件zabbix_proxy.conf,该文件中有两个重要的参数: ConfigFrequency=60 #zabbix proxy 向服务器检索配置数据信息的频率,在被动模式下该参数将被忽略 DataSenderFrequency=60 #zabbix proxy发送收集的数据给zabbix server的频率 |
[root@localhost zabbix-2.0.2]# vi /usr/local/zabbix/etc/zabbix_proxy.conf
Server=192.168.1.13 #zabbix server的ip地址或者域名
Hostname=proxy_bj #proxy主机名,在zabbix web会以这个名字为准
#DB 设定档
DBName=zabbix
DBUser=zabbix
DBPassword=111111
ProxyLocalBuffer=0 #设定为0小时,除非有其他第三方应用和插件需要调用
ProxyOfflineBuffer=1 #proxy或者server无法连接时,保留离线的监控数据的时间,单位小时
ConfigFrequency=600 #server和proxy配置修改同步时间间隔,设定5-10分钟即可。
DataSenderFrequency=10 #数据发送时间间隔,10-30s;
#网络传输质量越好,可以设定间隔时间越短,监控效果也越迅速;
StartPollers=10 #开启多线程数,一般不要超过30个;
StartPollersUnreachable=1 #该线程用来单独监控无法连接的主机,1个即可;
StartTrappers=10 #trapper线程数
StartPingers=1 #fping线程数
CacheSize=64M #用来保存监控数据的缓存数,根据监控主机数量适当调整;
Timeout=10 #超时时间,设定不要超过30s,不然会拖慢其他监控数据抓取时间;
TrapperTimeout=30 #同上
FpingLocation=/usr/sbin/fping #配合simple check icmp检测使用,如不需要可关闭;
其他配置默认即可;
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1861402