应用场景
生产环境中,当监控服务器数量过多或者存在网络不能直达,只能够通过跳板机访问时,zabbix-proxy分布式提供了解决方法。
本例出现的IP分别为:
zabbix-server:192.168.1.1
zabbix-proxy:192.168.1.2
zabbix-agent:192.168.1.3
下载
百度网盘链接:https://pan.baidu.com/s/13oOy4yueKCVAZMi0Ad06zA 密码:svvh
一、proxy端
1. mysql安装
1.1 上传tar包
cd /usr/local
rz mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.14-linux-glibc2.5-x86_64 mysql
1.2 创建目录和用户
mkdir -p /data/mysql_data
mkdir -p /data/mysql_log
mkdir -p /data/log-bin
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
chown -R mysql.mysql /data/mysql* /data/log-bin
chown -R mysql.mysql /usr/local/mysql
1.3 创建/etc/my.cnf配置文件
mv /etc/my.cnf /etc/my.cnf_bak
vim /etc/my.cnf
–以下内容直接复制
[mysqld]
explicit_defaults_for_timestamp=true
#GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /data/mysql_data/mysql.sock
pid-file = /data/mysql_data/mysql.pid
port = 3306
#MyISAM #
key_buffer_size = 1344M
myisam_recover = FORCE,BACKUP
#SAFETY #
max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve
#DATA STORAGE #
datadir = /data/mysql_data/
long_query_time = 1
#BINARY LOGGING #
log-bin = /data/log-bin/mysql-bin
expire-logs-days = 14
sync-binlog = 1
server-id = 1
max_binlog_size = 500M
#REPLICATION #
relay-log = /data/log-bin/relay-bin
slave-net-timeout = 60
#CACHES AND LIMITS #
tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096
#INNODB #
innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_lock_wait_timeout = 50
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 8G
#LOGGING #
log-error = /data/mysql_log/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow.log
1.4 修改/etc/init.d/mysqld配置文件
cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
vi /etc/init.d/mysqld
--需要逐个比对
basedir=/usr/local/mysql
datadir=/data/mysql_data
1.5 其他配置
--创建mysql自启动
chmod a+x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list |grep mysqld
--目录授权以及初始化安装mysql
rm -f /usr/local/mysql/my.cnf
cp /etc/my.cnf /usr/local/mysql/
chown -R mysql.mysql /usr/local/mysql
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --datadir=/data/mysql_data/
--创建快捷链接
rm -rf /usr/bin/mysql && ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /data/mysql_data/mysql.sock /tmp/mysql.sock
1.6 创建用户密码
service mysqld start
mysql -uroot
–以下是数据库操作,密码可按需修改
mysql> delete from mysql.user where user='';
mysql> update mysql.user set password=PASSWORD('数据库密码') where user='root';
mysql>flush privileges;
mysql>exit
2. zabbix-proxy安装
2.1 安装
cd /usr/local/
rz zabbix-3.2.4.tar.gz
tar -xvf zabbix-3.2.4.tar.gz
cd zabbix-3.2.4/
./configure --prefix=/usr/local/zabbix/ --enable-proxy --with-mysql=/usr/local/mysql/bin/mysql_config --with-libcurl --with-net-snmp
make && make install
2.2 数据库操作
mysql -uroot -p数据库密码
mysql>create database zabbix_proxy default charset utf8;
mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'root'@'localhost' IDENTIFIED BY '数据库密码';
mysql>GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'root'@'192.168.1.2' IDENTIFIED BY '数据库密码';
mysql>FLUSH PRIVILEGES;
mysql>exit
#导入sql
mysql -uroot -p数据库密码 zabbix_proxy /usr/local/zabbix-3.2.4/database/mysql/schema.sql
2.3 修改zabbix_proxy.conf
vi /usr/local/zabbix/etc/zabbix_proxy.conf
Server=192.168.1.1 #zabbix-server的IP
Hostname=zabbix-proxy1 #页面配置时填写的proxy名称,可自定义
DBHost=localhost
DBName=zabbix_proxy
DBUser=root
DBPassword=数据库密码 #数据库密码
DBPort=3306
ConfigFrequency=60 #从server读取配置频率
2.4 启动proxy
#启动
/usr/local/zabbix/sbin/zabbix_proxy
#停止
ps -ef|grep zabbix_proxy |grep -v 'grep'|xargs kill -9
#查看启动情况
netstat -nultp |grep zabbix
二、agent端
修改zabbix_agentd.conf的server指向
vi /usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.1.2,127.0.0.1 #zabbix-proxy的ip,
ActiveServer=192.168.1.2 #被动模式下需修改为zabbix-proxy的ip
Hostname=localhost #zabbix-agent端的主机名
重启zabbix_agentd
service zabbix_agentd restart
三、server端
点击添加即可