安裝Zabbix(多種方式)

weixin_34185364發表於2016-12-12

本次安裝使用的作業系統是CentOS 6.8。
安裝zabbix需要的其他的軟體:

  • 資料庫
  • Apache
  • PHP

1. 安裝基礎環境

1.1 安裝資料庫

此處使用yum安裝預設的MySQL資料庫的5.1.73版本,可以根據需要安裝其他版本的MySQL或者其他的資料庫。zabbix另外還支援Oracle、PostgreSQL、SQLite、IBM DB2等資料庫,可根據實際環境或需要選擇。

# yum安裝MySQL
[root@zabbix ~]# yum -y install mysql*
# 安裝完成,確認資料庫版本
[root@zabbix ~]# mysql -V
# 開機自啟MySQL
[root@zabbix ~]# chkconfig mysqld on
[root@zabbix ~]# chkconfig mysqld --list
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
# 啟動資料庫
[root@zabbix ~]# service mysqld start
# 確認資料庫正在執行
[root@zabbix ~]# service mysqld status
# 設定MySQL資料庫root密碼,password後跟的是密碼(不包括單引號)
[root@zabbix ~]# mysqladmin -u root password 'root'
# 登入MySQL資料庫
[root@zabbix ~]# mysql -uroot -p
# 切換資料庫
mysql> use mysql;
# 刪除用於本機匿名連線的空密碼帳號
mysql> delete from user where password="";

1.2 安裝PHP

注意安裝zabbix 2.4需要PHP 5.3.0及以後版本。

  • 如果使用使用原始碼安裝,注意相應的擴充套件項。
PHP extensions:
gd 2.0 or later PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir).
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 or later php-xml or php5-dom, if provided as a separate package by the distributor.
xmlreader php-xmlreader, if provided as a separate package by the distributor.
xmlwriter php-xmlwriter, if provided as a separate package by the distributor.
session php-session, if provided as a separate package by the distributor.
sockets php-net-socket (--enable-sockets). Required for user script support.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Required for translations to work.
ldap php-ldap. Required only if LDAP authentication is used in the frontend.
ibm_db2 Required if IBM DB2 is used as Zabbix backend database.
mysqli Required if MySQL is used as Zabbix backend database.
oci8 Required if Oracle is used as Zabbix backend database.
pgsql Required if PostgreSQL is used as Zabbix backend database.
sqlite3 Required if SQLite is used as Zabbix backend database.

本實驗使用yum安裝PHP。

# yum 安裝所有php包
[root@zabbix ~]# yum -y install php*

1.3 安裝Apache

一般CentOS預設安裝Apache服務。可以使用rpm -qa httpd命令檢視是否安裝。
若沒有可以使用原始碼或者yum安裝。若已安裝,確保服務開機自啟動。

# 檢視是否安裝Apache服務
[root@zabbix ~]# rpm -qa httpd
# 若沒有安裝,安裝之
[root@zabbix ~]# yum -y install httpd
# 安裝完成,或已安裝服務。開機自啟Apache服務。
[root@zabbix ~]# chkconfig httpd on
[root@zabbix ~]# chkconfig httpd --list
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
# 啟動Apache服務
[root@zabbix ~]# service httpd start
# 確認Apache服務正在執行
[root@zabbix ~]# service httpd status
httpd (pid  4070) is running...

2. 安裝zabbix

安裝前,先在官網下載頁面下載需要的安裝包

  • 原始碼包在Zabbix Sources中選擇需要的版本
    本實驗使用2.4.8版本

2.1 server端安裝zabbix

server端需要同時安裝server和agent服務。安裝zabbix可以使用yum和原始碼兩種方式安裝,但是需要注意的是yum安裝需要確保環境能夠連線網際網路。
本實驗兩種方式都使用安裝,由於最後使用web站點安裝時,兩者步驟都一樣,將合一起。

2.1.1 後臺安裝zabbix

a. yum安裝zabbix

先安裝zabbix的yum倉庫配置檔案。然後安裝zabbix服務即可。

# 安裝yum倉庫配置檔案,根據系統不同下載地址有所不同
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
# 安裝server服務和web前端
[root@zabbix ~]# yum -y install zabbix-server-mysql zabbix-web-mysql
# 安裝agent服務
[root@zabbix ~]# yum -y install zabbix-agent

# 建立zabbix資料庫
[root@zabbix ~]# mysql -uroot -proot

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> quit;

# 匯入zabbix資料庫初始化資料
# proxy端只需匯入schema.sql一張表
[root@zabbix ~]# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create/
[root@zabbix create]# mysql -uroot -proot zabbix < schema.sql
[root@zabbix create]# mysql -uroot -proot zabbix < images.sql
[root@zabbix create]# mysql -uroot -proot zabbix < data.sql

# 編輯zabbix_server配置檔案
[root@zabbix ~]# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

# 啟動server服務
[root@zabbix create]# service zabbix-server start
Starting Zabbix server: [  OK  ]
# 啟動agent服務
[root@zabbix ~]# service zabbix-agent start
Starting Zabbix agent: [  OK  ]

# 設定開機自啟
[root@zabbix ~]# chkconfig zabbix-server on
[root@zabbix ~]# chkconfig zabbix-agent on
[root@zabbix ~]# chkconfig zabbix-server --list
zabbix-server   0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@zabbix ~]# chkconfig zabbix-agent --list
zabbix-agent    0:off   1:off   2:on    3:on    4:on    5:on    6:off

# 編輯PHP中關於zabbix前端的配置
[root@zabbix ~]# vi /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
# php_value date.timezone Europe/Riga
將上面時區的註釋去掉,並改成合適的時區。本實驗中改成"Asia/Shanghai"

# 重啟Apache服務
[root@zabbix ~]# service httpd restart

b. 原始碼安裝zabbix

  • 將從官網下載的原始碼包上傳至伺服器。
  • 已經安裝gcc-c++編譯工具。
    如果沒有安裝,先安裝。
    yum -y install gcc-c++
# 建立安裝資料夾並解壓原始碼包
[root@zabbix ~]# mkdir /usr/local/zabbix
[root@zabbix ~]# cp /tmp/zabbix-2.4.8.tar.gz /usr/local/zabbix/
[root@zabbix ~]# cd /usr/local/zabbix/
[root@zabbix zabbix]# tar zxf zabbix-2.4.8.tar.gz

# 建立zabbix使用者組和使用者。
# zabbix以普通使用者執行時,所有使用者和組為該普通使用者。但若以root使用者執行時,會使用zabbix使用者執行。
# 因此如果想用root使用者執行則zabbix使用者是必須的。如果不用root使用者執行則不建立也是可以的。
# web前端安裝zabbix時不需要特定的使用者或使用者組。
[root@zabbix zabbix]# groupadd zabbix
[root@zabbix zabbix]# useradd -g zabbix zabbix

# 建立zabbix資料庫
[root@zabbix ~]# mysql -uroot -proot

mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> quit;

# 匯入zabbix資料庫初始化資料
# proxy端只需匯入schema.sql一張表
[root@zabbix ~]# cd /usr/local/zabbix/zabbix-2.4.8/database/mysql/
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < images.sql
[root@zabbix mysql]# mysql -uzabbix -pzabbix zabbix < data.sql

# 配置源
# --with-mysql。根據實際安裝的資料庫,選擇相應的配置。本實驗使用的是MySQL。
# --enable-ipv6。支援IPV6協議。
# --with-net-snmp。SNMP的基本功能是:取得,設定和接收代理髮送的意外資訊。所以需要獲得agent發來的意外資訊,必須有該配置。
  使用該選項需要安裝net-snmp-devel庫。
  yum install -y net-snmp-devel
# --with-libcurl。libcurl是一個跨平臺的網路協議庫,所以需要用不同的協議連線和溝通不同的伺服器時需要用到,因此在監控裝置較多且系統版本混雜的情況下必須安裝。一般預設都會啟用該選項。
  使用該選項需要安裝libcurl-devel庫。
  yum install -y libcurl-devel
# --with-libxml2選項是用來監控虛擬機器的。從zabbix2.2.0之後開始支援。使用前確認需要的libxml2庫已安裝。
  yum install -y libxml2*
# --prefix="location"可以指定安裝目錄
# 命令列工具zabbix_get和zabbix_sender在指定--enable-agent時,將會被編譯。
[root@zabbix mysql]# cd /usr/local/zabbix/zabbix-2.4.8
[root@zabbix zabbix-2.4.8]# ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

# 安裝
# 守護程式二進位制檔案 (zabbix_server, zabbix_agentd, zabbix_proxy) 預設安裝在/usr/local/sbin目錄下;
# 客戶端二進位制檔案(zabbix_get, zabbix_sender)預設安裝在/usr/local/bin下;
# 若指定了安裝目錄,則在相應的sbin和bin下。
[root@zabbix zabbix-2.4.8]# make install

# 更改配置檔案
# zabbix agent配置檔案預設是/usr/local/etc/zabbix_agentd.conf。
# zabbix server配置檔案預設是/usr/local/etc/zabbix_server.conf。檔案中必須寫入zabbix資料庫使用者名稱和密碼
[root@zabbix ~]# cd /usr/local/etc/
[root@zabbix etc]# vi zabbix_agentd.conf
Server=127.0.0.1              # zabbix server ip地址
ServerActive=127.0.0.1        # zabbix server ip地址
Hostname=master_db            # agent的hostname

[root@zabbix etc]# vi zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

# 啟動zabbix守護和客戶端程式
[root@zabbix ~]# cd /usr/local/sbin/
[root@zabbix sbin]# zabbix_server 
[root@zabbix sbin]# zabbix_agentd 
# 確認程式已經啟動
[root@zabbix sbin]# ps -ef | grep zabbix

# 設定開機自啟
在`/etc/rc.local`檔案最後新增下面兩行
/usr/local/sbin/zabbix_server start
/usr/local/sbin/zabbix_agentd start 

# 安裝zabbix的web介面
[root@zabbix ~]# cd /usr/local/zabbix/zabbix-2.4.8/frontends/php/
[root@zabbix php]# mkdir /var/www/html/zabbix
[root@zabbix php]# chown -R zabbix:zabbix /var/www/html/zabbix
[root@zabbix php]# cp -a . /var/www/html/zabbix
[root@zabbix php]# cd /var/www/html/zabbix/
[root@zabbix zabbix]# ls

2.1.2 前端安裝zabbix

a. 修改PHP配置檔案引數

一般使用yum安裝的無需修改php檔案引數。
使用原始碼安裝的需要修改/etc/php.ini的引數以滿足zabbix需要的最低要求。
更改完成後重啟Apache服務:
service httpd restart
最低要求見下表,另外需要去掉配置檔案中date.timezone的註釋並新增相應的時區:

Pre-requisite Minimum value Description
PHP version 5.3.0
PHP memory_limit option 128MB In php.ini: memory_limit = 128M
PHP post_max_size option 16MB In php.ini: post_max_size = 16M
PHP upload_max_filesize option 2MB In php.ini: upload_max_filesize = 2M
PHP max_execution_time option 300 seconds In php.ini: max_execution_time = 300
PHP max_input_time option 300 seconds In php.ini: max_input_time = 300
PHP session.auto_start option must be disabled In php.ini: session.auto_start = 0.
Database support One of: IBM DB2, MySQL, Oracle, PostgreSQL, SQLite One of the following modules must be installed: ibm_db2, mysql, oci8, pgsql, sqlite3
bcmath php-bcmath
mbstring php-mbstring
PHP mbstring.func_overload option must be disabled In php.ini: mbstring.func_overload = 0.
PHP always_populate_raw_post_data option must be disabled Required only for PHP versions 5.6.0 or newer. In php.ini: always_populate_raw_post_data = -1
sockets php-net-socket. Required for user script support.
gd 2.0 or higher php-gd. PHP GD extension must support PNG images (--with-png-dir), JPEG (--with-jpeg-dir) images and FreeType 2 (--with-freetype-dir).
libxml 2.6.15 php-xml or php5-dom
xmlwriter php-xmlwriter
xmlreader php-xmlreader
ctype php-ctype
session php-session
gettext php-gettext. Since Zabbix 2.2.1, the PHP gettext extension is not a mandatory requirement for installing Zabbix. If gettext is not installed, the frontend will work as usual, however, the translations will not be available.

b. 開始安裝web站點

  1. 瀏覽器開啟zabbix網址:
    http://<server_ip_or_name>/zabbix
    1889127-a5bcf9ec63530694.png
    1.png
  2. 確認安裝條件都符合


    1889127-0adcf625c4bb333c.png
    2.png
  3. 輸入連線zabbix資料庫的資訊


    1889127-02bc27137cfa4f2b.png
    3.png
  4. 輸入zabbix server具體資訊


    1889127-fff9c0de51fd712d.png
    4.png
  5. 檢視資訊是否有誤


    1889127-6f6224c64fe09d99.png
    5.png
  6. zabbix如果沒有Apache資料夾下的寫入許可權,需要下載配置檔案並放入/var/www/html/zabbix/conf/目錄下


    1889127-cb7331e72cdd9369.png
    6.png
  7. 完成安裝


    1889127-0733c4a9c8cb1fe2.png
    7.png
  8. 前端安裝完成。預設使用者Admin,密碼zabbix
    1889127-64e4d6fcc1d3db56.png
    8.png

2.2 zabbix的agent端安裝

Windows系統和Linux系統均可以安裝zabbix的agent端。
Linux有三種方式安裝agent,分別為預編譯包、yum和原始碼安裝。
Windows只有一種方式。

2.2.1 Windows安裝agent端

安裝前,先在官網下載頁面下載需要的安裝包

  • Windows安裝包在Zabbix pre-compiled agents中選擇需要的版本
    本實驗使用2.4.4版本zabbix_agents_2.4.4.win.zip
1. 新建安裝目錄,比如"C:\zabbix"。將下載的安裝包解壓後,拷貝至該目錄內。

2. 修改配置檔案"zabbix_agentd.conf"。
Server=192.168.186.250          # zabbix server ip地址
ServerActive=192.168.186.250    # zabbix server ip地址
Hostname=agent                  # agent的hostname

3. 以管理員身份,在cmd命令列中執行以下命令。資料夾路徑根據實際情況自行更改。
C:\zabbix\bin\win64\zabbix_agentd.exe -c C:\zabbix\conf\zabbix_agentd.win.conf -i
# -c表示需要讀取的配置檔案 -i表示安裝

4. 開始 > 執行 > services.msc
將zabbix_agent服務啟動,並將啟動型別設為“自動”。

5. server新增agent機
瀏覽器開啟http://server IP/zabbix,輸入使用者名稱密碼登入
選擇Configuration - Hosts - Create Host,輸入agent相關資訊並儲存
Availability顯示一個綠顏色的Z,表示成功連線。

2.2.2 Linux安裝agent端

Linux安裝agent端的方式不盡相同。本實驗以CentOS為例。

a. 預編譯包安裝agent

安裝前,先在官網下載頁面下載需要的安裝包

  • 預編譯包在Zabbix pre-compiled agents中選擇需要的版本
    本實驗使用2.4.6版本zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
# 建立安裝目錄
[root@master_db ~]# mkdir /usr/local/zabbix
[root@master_db ~]# cp /tmp/zabbix_agents_2.4.4.linux2_6.amd64.tar.gz /usr/local/zabbix/
[root@master_db ~]# cd /usr/local/zabbix/
[root@master_db zabbix]# tar zxf zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
[root@master_db zabbix]# rm -f zabbix_agents_2.4.4.linux2_6.amd64.tar.gz
[root@master_db zabbix]# ls
bin  conf  sbin

# 新增zabbix使用者和組
[root@master_db zabbix]# groupadd zabbix
[root@master_db zabbix]# useradd -g zabbix zabbix

# 先檢視服務埠是否存在,若存在則無需新增。若不存在則需手動新增。
[root@master_db zabbix]# cat /etc/services | grep zabbix
# 新增服務埠
echo 'zabbix-agent    10050/tcp               # Zabbix Agent' >> /etc/services
echo 'zabbix-agent    10050/udp               # Zabbix Agent' >> /etc/services
echo 'zabbix-trapper  10051/tcp               # Zabbix Trapper' >> /etc/services
echo 'zabbix-trapper  10051/udp               # Zabbix Trapper' >> /etc/services

# 修改配置檔案
[root@master_db zabbix]# cd /usr/local/zabbix/conf/
[root@master_db conf]# ls
zabbix_agent.conf  zabbix_agentd  zabbix_agentd.conf
[root@master_db conf]# vi zabbix_agentd.conf 
Server=192.168.186.250 # zabbix server ip地址
ServerActive=192.168.186.250 # zabbix server ip地址
Hostname=master_db # agent的hostname

# 啟動agent
[root@master_db conf]# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf &
[1] 2961

# 新增開機自啟動
echo '/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf &' >> /etc/rc.local

# server新增agent機
瀏覽器開啟http://server IP/zabbix,輸入使用者名稱密碼登入
選擇Configuration - Hosts - Create Host,輸入agent相關資訊並儲存
Availability顯示一個綠顏色的Z,表示成功連線。

b. yum安裝agent

先安裝zabbix的yum倉庫配置檔案。然後安裝agent即可。

# 安裝yum倉庫配置檔案,根據系統不同下載地址有所不同
[root@agent ~]# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch.rpm
# 安裝agent服務
[root@agent ~]# yum -y install zabbix-agent

# 編輯agent配置檔案
[root@agent ~]# vi /etc/zabbix/zabbix_agentd.conf
Server=192.168.186.250          # zabbix server ip地址
ServerActive=192.168.186.250    # zabbix server ip地址
Hostname=agent                  # agent的hostname

# 啟動agent服務
[root@agent ~]# service zabbix-agent start
Starting Zabbix agent: [  OK  ]

# 設定開機自啟
[root@agent ~]# chkconfig zabbix-agent on
[root@agent ~]# chkconfig zabbix-agent --list
zabbix-agent    0:off   1:off   2:on    3:on    4:on    5:on    6:off

# server新增agent機
瀏覽器開啟http://server IP/zabbix,輸入使用者名稱密碼登入
選擇Configuration - Hosts - Create Host,輸入agent相關資訊並儲存
Availability顯示一個綠顏色的Z,表示成功連線。

c. 原始碼安裝agent

  • 先在官網下載頁面下載需要的安裝包
    原始碼包在Zabbix Sources中選擇需要的版本
    本實驗使用2.4.8版本
  • 將從官網下載的原始碼包上傳至伺服器。
  • 已經安裝gcc-c++編譯工具。
    如果沒有安裝,先安裝。
    yum -y install gcc-c++
# 建立安裝資料夾並解壓原始碼包
[root@master_db ~]# mkdir /usr/local/zabbix
[root@master_db ~]# cp /tmp/zabbix-2.4.8.tar.gz /usr/local/zabbix/
[root@master_db ~]# cd /usr/local/zabbix/
[root@master_db zabbix]# tar zxf zabbix-2.4.8.tar.gz 

# 建立zabbix使用者組和使用者。
# zabbix以普通使用者執行時,所有使用者和組為該普通使用者。但若已root使用者執行時,會使用zabbix使用者執行。
# 因此如果想用root使用者執行則zabbix使用者是必須的。如果不用root使用者執行則不建立也是可以的。
[root@master_db zabbix]# groupadd zabbix
[root@master_db zabbix]# useradd -g zabbix zabbix

# 配置源
[root@master_db zabbix]# cd /usr/local/zabbix/zabbix-2.4.8
[root@master_db zabbix-2.4.8]# ./configure --enable-agent

# 安裝
# 守護程式二進位制檔案 (zabbix_agentd) 預設安裝在/usr/local/sbin目錄下,客戶端二進位制檔案(zabbix_get, zabbix_sender)預設安裝在/usr/local/bin下。若指定了安裝目錄,則在相應的sbin和bin下。
[root@master_db zabbix-2.4.8]# make install

# 更改配置檔案
# zabbix agent配置檔案預設是/usr/local/etc/zabbix_agentd.conf。
[root@master_db ~]# cd /usr/local/etc/
[root@master_db etc]# vi zabbix_agentd.conf
Server=192.168.186.250          # zabbix server ip地址
ServerActive=192.168.186.250    # zabbix server ip地址
Hostname=agent                  # agent的hostname

# 啟動zabbix守護和客戶端程式
[root@master_db etc]# cd /usr/local/sbin/
[root@master_db sbin]# zabbix_agentd 
# 確認程式已經啟動
[root@master_db sbin]# ps -ef | grep zabbix

# 設定開機自啟
在`/etc/rc.local`檔案最後新增下面一行
/usr/local/sbin/zabbix_agentd start 
或者執行以下命令
echo '/usr/local/sbin/zabbix_agentd start' >> /etc/rc.local

# server新增agent機
瀏覽器開啟http://server IP/zabbix,輸入使用者名稱密碼登入
選擇Configuration - Hosts - Create Host,輸入agent相關資訊並儲存
Availability顯示一個綠顏色的Z,表示成功連線。