線上服務器是阿里雲的,因此zabbix安裝在阿里雲上面mysql
公司內網有幾臺服務器,須要使用zabbix監控。由於公司帶寬是撥號上網的,沒有固定IP,因此zabbix服務器沒法直接訪問到內網,那麼這個時候就須要使用zabbix-proxy了sql
Zabbix proxy工做原理:數據庫
1.工做原理:服務器
Zabbixproxy是一個監控代理服務器,它收集監控到的數據,先存放在緩衝區,保存的時間能夠經過配置文件設定,而後再傳送到zabbix_server;監控代理須要一個單獨的數據庫。curl
Zabbix proxy的好處:socket
遠程監控分佈式
當監控的位置通訊不便時ide
當監控上千的設備時阿里雲
簡化維護分佈式監控,下降zabbix_server的負載url
下面主要介紹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
有代理和無代理的主機,是有區別的。
名稱會顯示代理程序名:主機名
等待幾分鐘,查看圖形是否有數據