web server服務器:172.28.0.187
mysql服務器:172.28.0.237
zabbix官方提供了基於packages和編譯安裝方式的安裝文檔
這裡server我使用package方式安裝,agent使用源碼編譯的方式安裝,因為server只有一台,而agent有很多台,需要對安裝好的agent修改配置並重新打包,以方便後期批量部署。
zabbix的package中有release包,因為zabbix server需要mysql,apache,php,而release包安裝的方式會自動解決依賴關系。
root@demo:~# wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix-release/zabbix-release_3.0-1+jessie_all.deb
root@demo:~# dpkg -i zabbix-release_3.0-1+jessie_all.deb
root@demo:~# aptitude update
安裝過程中請確保連接互聯網,倉庫的源建議用debian官方源,這裡server-mysql會自動解決mysql的依賴關系安裝mysql,frontend-php會解決apache和php的依賴關系
root@demo:~#aptitude install zabbix-server-mysql root@demo:~#aptitude install zabbix-frontend-php
安裝zabbix-server-mysql後會產生一個/usr/share/doc/zabbix-server-mysql/create.sql.gz文件,這個文件後面在mysql服務器中用到
進入mysql服務器172.28.0.237,這裡需要提前安裝好Mysql,如果是在web server上使用數據庫則配置web server的數據庫
這裡因為我們公司的mysql數據庫服務器是用的專門的mysql用戶,所以需要先切換用戶
root@demo:~# su - mysql root@demo:~# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
授權范圍為全網,用戶為zabbix密碼為123321qQ
mysql> grant all privileges on zabbix.* to zabbix@'%' identified by '123321qQ';
授權范圍為本地,用戶為zabbix密碼為123321qQ
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123321qQ';
mysql> flush privileges;
用release方式安裝生成的zabbix表不是schema.sql和images.sql和data.sql這三張表,而是集中在create.sql中,如果是這三張表的請把這三張表導入剛才創建的zabbix表中
因為我這裡的create.sq.gz是放在web server上的,所以需要復制過來
#將172.28.0.187下的/usr/share/doc/zabbix-server-mysql/create.sql.gz傳給172.28.0.237 root@demo:~# scp /usr/share/doc/zabbix-server-mysql/create.sql.gz [email protected]:/root root@demo:~# cp /root/create.sql.gz /home/mysql/create.sql.gz
#切換到mysql用戶導入表格到zabbix root@demo:~# su - mysql mysql@demo:~$ zcat create.sql.gz | mysql -uzabbix -p"123321qQ" zabbix
如果機子配置低,則導入時間很長,請耐心等待
root@demo:~# vi /etc/zabbix/zabbix_server.conf #修改一下幾項 DBHOST=172.28.0.237 #mysql服務器地址 DBName=zabbix #表名 DBUser=zabbix #用戶名 DBPassword=123321qQ #密碼
root@demo:~# vim /etc/apache2/conf-enabled/zabbix.conf #找到以下行注釋取消,改為如下,因為我這裡是重慶,所以寫的是重慶,如果是其他地方可以用別的 php_value date.timezone Asia/Chongqing
root@demo:~# vim /usr/share/zabbix/include/locales.inc.ph #修改如下行 'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
在Windows中打開運行,輸入fonts
不需要重命名
將文件上傳到/usr/share/zabbix/fonts/目錄中
#查看字體配置 root@demo:~# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php -n 45:define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name 93:define('ZBX_FONT_NAME', 'graphfont'); #確認字體名稱是否可以替換 root@demo:~# grep graphfont /usr/share/zabbix/include/defines.inc.php -n 45:define('ZBX_GRAPH_FONT_NAME', 'graphfont'); // font file name 93:define('ZBX_FONT_NAME', 'graphfont'); #執行快捷替換 root@demo:~# sed -i "s/graphfont/msyh/g" /usr/share/zabbix/include/defines.inc.php #確認是否替換成功 root@demo:~# grep FONT_NAME /usr/share/zabbix/include/defines.inc.php -n 45:define('ZBX_GRAPH_FONT_NAME', 'msyh'); // font file name 93:define('ZBX_FONT_NAME', 'msyh');
root@demo:~# service zabbix-server start root@demo:~# service apache2 restart
打開http://172.28.0.187/zabbix,默認的用戶名為Admin,密碼為zabbix,【注意大小寫】
zabbix官網給出的源碼包將server、agent、proxy都放在了一個包中,所以安裝的時候得注意
在download中找到sources,選擇3.0的源碼包進行下載
這裡我要編譯安裝並打包agent,所以要做一些准備工作,因為是第一台編譯安裝,所以最好選擇沒有使用過的debian8主機
root@demo:~/zabbix-3.0.2# apt-get install gcc
root@demo:~/zabbix-3.0.2# apt-get install make
root@demo:~# apt-get install ruby-dev rubygems root@demo:~# gem sources -a https://ruby.taobao.org/ root@demo:~# gem sources -r https://rubygems.org/ root@demo:~# gem sources -l root@demo:~# gem install fpm
root@demo:~# tar -xzvf zabbix-3.0.2.tar.gz
root@demo:~/zabbix-3.0.2# ./configure --prefix=/usr/local/zabbix --sysconfdir=/usr/local/etc --enable-agent --disable-server --disable-proxy #--prefix= 安裝目錄 #--sysconfdir= 配置文件目錄 #--enable-agent --disable-server --disable-proxy 安裝agent不安裝server和proxy
#創建臨時目錄 root@demo:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/init.d/ root@demo:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/profile.d/ #將編譯後的源碼包的zabbix-agent文件復制出來 root@demo:~/zabbix-3.0.2# cp -a /root/zabbix-3.0.2/misc/init.d/debian/zabbix-agent /tmp/installdir/etc/init.d/zabbix_agentd #修改啟動腳本 root@demo:~/zabbix-3.0.2# vim /tmp/installdir/etc/init.d/zabbix_agentd NAME=zabbix_agentd DAEMON=/usr/local/zabbix/sbin/${NAME} DESC="Zabbix agentd" PID=/tmp/$NAME.pid #創建環境變量腳本 root@demo:~# vim /tmp/installdir/etc/profile.d/zabbix.sh # zabbix init export PATH=$PATH:/usr/local/zabbix/bin:/usr/local/zabbix/sbin #創建安裝後腳本,此腳本會在安裝時自動添加zabbix用戶,自動添加開機啟動,前提是你得裝了chkconfig root@demo:~#vim /tmp/install_after.sh #!/bin/bash useradd -m -d /home/zabbix -s /bin/bash zabbix echo 'zabbix ALL=(ALL:ALL) NOPASSWD:ALL' >> /etc/sudoers host=`hostname` sed -i "s%^Hostname=.*$%Hostname=$host%g" /usr/local/etc/zabbix_agentd.conf source /etc/profile.d/zabbix.sh chkconfig --add zabbix_agentd chkconfig --level 35 zabbix_agentd on exit 0 #創建卸載前腳本,此腳本會在卸載時清楚殘留的腳本,zabbix用戶刪除沒有寫進去,有需要的自己寫 root@demo:~#vim /tmp/remove_after.sh #!/bin/bash rm -rf /etc/init.d/zabbix_agentd rm -rf /etc/profile.d/zabbix.sh rm -rf /var/lib/dpkg/info/zabbix-agentd* source /etc/profile exit 0
root@demo:~#cd /root/zabbix-3.0.2 root@demo:~/zabbix-3.0.2# make install DESTDIR=/tmp/installdir/
root@demo:~/zabbix-3.0.2# vim /tmp/installdir/usr/local/etc/zabbix_agentd.conf #修改一下幾項 Server=172.28.0.187 #web server服務器地址 ServerActive=172.28.0.187 #這裡再次填入web server服務器地址,為了以後主動上傳 HostnameItem=system.hostname #因為是要批量部署,所以這裡一定要修改以獲取主機名, Include=/usr/local/etc/zabbix_agentd.conf.d/ #這裡用於放置自定義的key UnsafeUserParameters=1 #這裡改成1才會啟動自定義key
root@demo:/tmp# fpm -s dir -t deb -n zabbix_agentd -v 3.0.2 --iteration 1+wheezy -C /tmp/installdir/ -p /root/ --description 'zabbix_agentd deb' --post-install /tmp/install_after.sh --post-uninstall /tmp/remove_after.sh #-s指定源類型 #-C指定打包路徑 #-p指定包輸出路徑 #--description包描述 #--post-install安裝包完成後運行的腳本 #--post-uninstall卸載包之前運行的腳本
#安裝 root@demo:~# dpkg -i zabbix-agentd_3.0.2-1+wheezy_amd64.deb #啟動agentd root@demo:~# service zabbix_agentd start
這裡需要注意的是,你用來編譯安裝並打包的服務器如果agent沒有啟動,請先卸載再用你打包好的deb文件安裝一遍,因為在編譯的那台服務器上並沒有運行剛才我們寫的安裝前腳本,所以沒有zabbix用戶,也沒有設置開機啟動,所以建議最好用deb包重裝一遍。
批量部署agent包,建議使用ansible。
主機組中放入了2台主機,一台是web server本身一台是mysql
也可以將網上的模版導入修改,這裡我手動創建一個
這個表達式的意思是iowait的值在30分鐘內大於30%,就報警
由於數量很多,我只創建了2個做事例
這樣就把zabbix的web server和mysql的剩余磁盤和cpu iowait監控起來了
可以看到剛才創建的模版已經成功應用了。