1. 程式人生 > >debian8下安裝配置部署zabbix3.0

debian8下安裝配置部署zabbix3.0

一、安裝配置zabbix server

web server伺服器:172.28.0.187

mysql伺服器:172.28.0.237

1、安裝web server(172.28.0.187)

A、官方文件

zabbix官方提供了基於packages和編譯安裝方式的安裝文件

123

這裡server我使用package方式安裝,agent使用原始碼編譯的方式安裝,因為server只有一臺,而agent有很多臺,需要對安裝好的agent修改配置並重新打包,以方便後期批量部署。

zabbix的package中有release包,因為zabbix server需要mysql,apache,php,而release包安裝的方式會自動解決依賴關係。 B、release包下載

4567

[email protected]:~# wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix-release/zabbix-release_3.0-1+jessie_all.deb

C、安裝release倉庫

[email protected]:~# dpkg -i zabbix-release_3.0-1+jessie_all.deb

D、更新apt倉庫

[email protected]:~# aptitude update

E、安裝zabbix-server-mysql和zabbix-frontend-php

安裝過程中請確保連線網際網路,倉庫的源建議用debian官方源,這裡server-mysql會自動解決mysql的依賴關係安裝mysql,frontend-php會解決apache和php的依賴關係

[email protected]:~#aptitude install zabbix-server-mysql
[email protected]:~#aptitude install zabbix-frontend-php

安裝zabbix-server-mysql後會產生一個/usr/share/doc/zabbix-server-mysql/create.sql.gz檔案,這個檔案後面在mysql伺服器中用到

2、配置mysql伺服器(172.28.0.237)

進入mysql伺服器172.28.0.237,這裡需要提前安裝好Mysql,如果是在web server上使用資料庫則配置web server的資料庫

A、進入mysql

這裡因為我們公司的mysql資料庫伺服器是用的專門的mysql使用者,所以需要先切換使用者

[email protected]:~# su - mysql
[email protected]:~# mysql

B、建立zabbix表,編碼為utf8

mysql> create database zabbix character set utf8 collate utf8_bin;

C、建立一個zabbix使用者並給zabbix使用者授權zabbix表

授權範圍為全網,使用者為zabbix密碼為123321qQ

mysql> grant all privileges on zabbix.* to [email protected]'%' identified by '123321qQ'; 授權範圍為本地,使用者為zabbix密碼為123321qQ

mysql> grant all privileges on zabbix.* to [email protected] identified by '123321qQ';

D、重新整理mysql許可權

mysql> flush privileges;

E、將檔案create.sql.gz匯入zabbix表

用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
[email protected]:~# scp /usr/share/doc/zabbix-server-mysql/create.sql.gz [email protected]:/root
[email protected]:~# cp /root/create.sql.gz /home/mysql/create.sql.gz
#切換到mysql使用者匯入表格到zabbix
[email protected]:~# su - mysql
[email protected]:~$ zcat create.sql.gz | mysql -uzabbix -p"123321qQ"    zabbix

如果機子配置低,則匯入時間很長,請耐心等待

3、修改web server配置檔案(172.28.0.187)

A、進入172.20.0.187修改/etc/zabbix/zabbix_server.conf

[email protected]:~#  vi /etc/zabbix/zabbix_server.conf
#修改一下幾項
DBHOST=172.28.0.237    #mysql伺服器地址
DBName=zabbix    #表名
DBUser=zabbix    #使用者名稱
DBPassword=123321qQ    #密碼

B、修改/etc/apache2/conf-enabled/zabbix中的時區

[email protected]:~# vim /etc/apache2/conf-enabled/zabbix.conf
#找到以下行註釋取消,改為如下,因為我這裡是重慶,所以寫的是重慶,如果是其他地方可以用別的
php_value date.timezone Asia/Chongqing

C、設定語言為中文

[email protected]:~# vim /usr/share/zabbix/include/locales.inc.ph
#修改如下行    
'zh_CN' => ['name' => _('Chinese (zh_CN)'),     'display' => true],

D、解決中文亂碼問題

在Windows中開啟執行,輸入fonts

89

不需要重新命名

將檔案上傳到/usr/share/zabbix/fonts/目錄中

10

#檢視字型配置
[email protected]:~# 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');
#確認字型名稱是否可以替換
[email protected]:~# 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');
#執行快捷替換
[email protected]:~# sed -i "s/graphfont/msyh/g" /usr/share/zabbix/include/defines.inc.php
#確認是否替換成功
[email protected]:~# 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');

E、啟動zabbix-server重啟apache

[email protected]:~# service zabbix-server start
[email protected]:~# service apache2 restart

4、進入web介面初始化設定

開啟http://172.28.0.187/zabbix,預設的使用者名稱為Admin,密碼為zabbix,【注意大小寫】

11

二、編譯安裝agent,配置後重新打包

1、下載原始碼包

zabbix官網給出的原始碼包將server、agent、proxy都放在了一個包中,所以安裝的時候得注意

在download中找到sources,選擇3.0的原始碼包進行下載

12

2、安裝前準備

這裡我要編譯安裝並打包agent,所以要做一些準備工作,因為是第一臺編譯安裝,所以最好選擇沒有使用過的debian8主機

A、安裝gcc

[email protected]:~/zabbix-3.0.2# apt-get install gcc

B、安裝make

[email protected]:~/zabbix-3.0.2# apt-get install make

C、更改ruby源安裝fpm,這裡安裝fpm是為了後續製作deb包做準備

[email protected]:~# apt-get install ruby-dev rubygems
[email protected]:~# gem sources -a https://ruby.taobao.org/
[email protected]:~# gem sources -r https://rubygems.org/
[email protected]:~# gem sources -l
[email protected]:~# gem install fpm

3、解壓並進行安裝和打包前配置

A、解壓原始碼包

[email protected]:~# tar -xzvf zabbix-3.0.2.tar.gz

B、安裝前配置

[email protected]:~/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

C、打包前配置,這裡因為公司的標準化要求,所以agent都安裝到/tmp/installdir中

#建立臨時目錄
[email protected]:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/init.d/
[email protected]:~/zabbix-3.0.2# mkdir -p /tmp/installdir/etc/profile.d/

#將編譯後的原始碼包的zabbix-agent檔案複製出來
[email protected]:~/zabbix-3.0.2# cp -a /root/zabbix-3.0.2/misc/init.d/debian/zabbix-agent /tmp/installdir/etc/init.d/zabbix_agentd

#修改啟動指令碼
[email protected]:~/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

#建立環境變數指令碼
[email protected]:~# vim /tmp/installdir/etc/profile.d/zabbix.sh
# zabbix init
export PATH=$PATH:/usr/local/zabbix/bin:/usr/local/zabbix/sbin

#建立安裝後腳本,此指令碼會在安裝時自動新增zabbix使用者,自動新增開機啟動,前提是你得裝了chkconfig
[email protected]:~#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使用者刪除沒有寫進去,有需要的自己寫
[email protected]:~#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

4、編譯安裝和修改配置檔案

A、編譯安裝到指定目錄

[email protected]:~#cd /root/zabbix-3.0.2
[email protected]:~/zabbix-3.0.2#  make install DESTDIR=/tmp/installdir/

B、修改配置檔案

[email protected]:~/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

5、使用fpm打包

[email protected]:/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解除安裝包之前執行的指令碼

6、將打包好的deb檔案部署在需要監控的主機上

#安裝
[email protected]:~# dpkg -i zabbix-agentd_3.0.2-1+wheezy_amd64.deb
#啟動agentd
[email protected]:~# service zabbix_agentd start

這裡需要注意的是,你用來編譯安裝並打包的伺服器如果agent沒有啟動,請先解除安裝再用你打包好的deb檔案安裝一遍,因為在編譯的那臺伺服器上並沒有執行剛才我們寫的安裝前指令碼,所以沒有zabbix使用者,也沒有設定開機啟動,所以建議最好用deb包重灌一遍。

批量部署agent包,建議使用ansible。

三、建立模版並應用到主機

1、建立主機

131415

2、建立主機組

16

主機組中放入了2臺主機,一臺是web server本身一臺是mysql

1718

3、建立模版

19

也可以將網上的模版匯入修改,這裡我手動建立一個

20

4、建立應用集

21222324

5、建立監控項

252627282930313233

6、建立觸發器

3435363738

這個表示式的意思是iowait的值在30分鐘內大於30%,就報警

394041

7、建立圖形

424344

由於數量很多,我只建立了2個做事例

45

這樣就把zabbix的web server和mysql的剩餘磁碟和cpu iowait監控起來了

4647

可以看到剛才建立的模版已經成功應用了。