线上服务器是阿里云的,所以zabbix安装在阿里云上面
公司内网有几台服务器,需要使用zabbix监控。因为公司带宽是拨号上网的,没有固定IP,所以zabbix服务器无法直接访问到内网,那么这个时候就需要使用zabbix-proxy了
Zabbix proxy工作原理:
1.工作原理:
Zabbixproxy是一个监控代理服务器,它收集监控到的数据,先存放在缓冲区,保存的时间可以通过配置文件设定,然后再传送到zabbix_server;监控代理需要一个单独的数据库。
Zabbix proxy的好处:
远程监控
当监控的位置通信不便时
当监控上千的设备时
简化维护分布式监控,降低zabbix_server的负载
下面主要介绍zabbix_proxy的安装
先安装数据库,因为zabbix_proxy的数据库要独立
安装组件
yum -y install ncurses-devel cmake
创建用户和用户组
groupadd mysql
useradd -g mysql mysql
usermod -s /sbin/nologin mysql
创建目录
mkdir -p /data/3306/data /data/3306/logs
解压编译
tar zxvf mysql-5.6.23.tar.gz -C /usr/src
cd /usr/src/mysql-5.6.23
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/3306/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/data/3306/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_SSL=bundled \
-DWITH_DEBUG=0 \
-DENABLE_DOWNLOADS=1
安装
make
make install
初始化
/usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/data/3306/data \
--user=mysql
备份配置文件
cd /usr/local/mysql
cp my.cnf my.cnf.bak
修改配置文件
vi my.cnf
修改部分如下:
basedir = /usr/local/mysql
datadir = /data/3306/data
port = 3306
server_id = 2
socket = /data/3306/mysqld.sock
pid-file = /data/3306/mysql.pid
max_allowed_packet=16M
log-error = /data/3306/logs/error.log
设置权限
chown mysql:mysql -R /data/3306
chown mysql:mysql -R /usr/local/mysql
复制启动脚本,设置开机自启动
cp /usr/src/mysql-5.6.23/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 2345 mysqld on
编辑环境变量
vi /etc/profile
最后一行添加
PATH=$PATH:/usr/local/mysql/bin
加载环境变量
source /etc/profile
启动数据库
/etc/init.d/mysqld start
创建zabbix用户
groupadd zabbix
useradd -g zabbix -M -s /sbin/nologin zabbix
安装组件
yum -y install mysql-devel curl curl-devel net-snmp net-snmp-devel
安装zabbix-proxy
tar zxvf zabbix-3.0.2.tar.gz
cd /usr/src/zabbix-3.0.2
./configure --prefix=/usr/local/zabbix-proxy --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl
make && make install
备份配置文件,编辑配置文件
cd /usr/local/zabbix-proxy/etc/
mv zabbix_proxy.conf zabbix_proxy.conf.bak
vi zabbix_proxy.conf
内容如下:
ProxyMode=0
##zabbix server 地址
Server=120.x.x.x
ServerPort=10051
##主机名,这个配置和该机器实际的主机名没有关系,但必须和zabbix server中添加该机器的时候的主机名一致,否则zabbix server获取不到信息
Hostname=intranet
LogFile=/tmp/zabbix_proxy.log
PidFile=/tmp/zabbix_proxy.pid
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix_proxy
DBPassword=123456
ConfigFrequency=300
DataSenderFrequency=60
进入数据库
mysql -u root
创建数据库
CREATE DATABASE zabbix_proxy DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
创建数据库账户
grant all privileges on zabbix_proxy.* to zabbix_proxy@localhost identified by '123456';
#导入数据库
use zabbix_proxy;
source /usr/src/zabbix-3.0.2/database/mysql/schema.sql;
启动
/usr/local/zabbix-proxy/sbin/zabbix_proxy -c /usr/local/zabbix-proxy/etc/zabbix_proxy.conf
查看日志,是否有错误
tail -f /tmp/zabbix_proxy.log
如果出现:
Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
1990:20160504:163219.166 database is down: reconnecting in 10 seconds
解决方法:
mkdir -p /var/lib/mysql
ln -s /data/3306/mysqld.sock /var/lib/mysql/mysql.sock
zabbix_proxy的操作到这里就结束了
那么zabbix_agent的配置文件zabbix_agentd.conf,其中2行配置的IP,指向zabbix_proxy的IP
并重启zabbix_agent
Server=192.168.1.154
ServerActive=192.168.1.154
进入zabbix_server的网页后台
点击管理->agent代理程序->创建代理
名称就是zabbix_proxy.conf中Hostname参数指定的名字,必须一致
选择主动式,填写描述,点击添加
添加内网的一台主机
注意选择代理程序intranet
有代理和无代理的主机,是有区别的。
名称会显示代理程序名:主机名
等待几分钟,查看图形是否有数据