业务需求
因为公司需要监控远程客户机,但server端无法主动连接agent端,客户端可以连接公司ip
公司有固定ip,可以开放某个端口给zabbixserver,客户机agent端可以主动通过外网连接公司服务器,但没有固定ip
查过资料,zabbix可以提供以下几种解决方案:
1、agent(active) 采集模式(create item)
2、trapper 采集模式(create item),需要安装zabbix-sender,使用脚本启动命令,执行sender
3、安装proxy,此次使用proxy的方式
基础环境
zabbix-server -->zabbix-proxy -->zabbix-agent
主机 | IP地址 |
---|---|
zabbix-server | 10.0.0.1 |
zabbix-proxy | 192.168.40.130 |
zabbix-agent | 192.168.10.1 |
...... | ...... |
安装与配置
默认已存在zabbix-server,此处略去zabbix-server的安装步骤
- 安装zabbix-proxy
配置源并修改源地址
curl -o zabbix-release-4.0-1.el7.noarch.rpm https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm
sed -i 's#http://repo.zabbix.com#https://mirror.tuna.tsinghua.edu.cn/zabbix#g' /etc/yum.repos.d/zabbix.repo
直接yum安装
注意zabbix-proxy与server都需要数据库,不能安装在一台机器内,数据会出现冲突,而且proxy本身也有为server减压的作用,放在一起更增添server机器的负担
yum install -y zabbix-proxy zabbix-proxy-mysql zabbix-agent
##这里直接也把agent也安装了,毕竟proxy自身也需要监控
- 配置数据库
mysql> create database zabbix_proxy character set utf8; # 创建数据库
mysql> grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix'; # 创建授权用户
mysql> use proxydb;
mysql> show tables;
导入数据
mysql -uzabbix -pzabbix zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-*/schema.sql
出现报错:
[root@localhost ~]# mysql -uzabbix -pzabbix zabbix_proxy < /usr/share/doc/zabbix-proxy-mysql-/create/schema.sql-bash: /usr/share/doc/zabbix-proxy-mysql-/create/schema.sql: 没有那个文件或目录
进入目录
cd /usr/share/doc/zabbix-proxy-mysql-4.0.20/发现是一个压缩包
-rw-r--r--. 1 root root 13224 4月 27 20:59 schema.sql.gz
解决办法:
要么解压然后导入,要么使用zcat导入
1.zcat /usr/share/doc/zabbix-proxy-mysql-4.0.20/schema.sql.gz | mysql -uzabbix -p zabbix #未实践使用,可能会有其他报错,但很好解决,这里不演示
2.先解压gunzip schema.sql.gz,进入数据库导入
MariaDB [zabbix_proxy]> use zabbix_proxy
MariaDB [zabbix_proxy]> source /usr/share/doc/zabbix-proxy-mysql-4.0.20/schema.sql;
- 修改配置文件
vim /etc/zabbix/zabbix_proxy.conf
[root@zdzc ~]# cat /etc/zabbix/zabbix_proxy.conf |egrep -v "^$|^#"
Server=10.0.0.1 #server地址
Hostname=proxy #proxy的hostname,在web端网页配置时需要用到
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost #数据库,使用本地,也可以使用ip
DBName=zabbix_proxy #数据库名称,创建zabbix-proxy的mysql的数据库名称
DBUser=zabbix #数据库用户
DBPassword=zabbix #数据密码
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
启动并设置开机自启
systemctl start zabbix-proxy
systemctl enable zabbix-proxy
-
web端配置
完成添加,然后再创建主机,创建主机时选择自己设置的proxy地址