1. 程式人生 > >centOS 6.5下Zabbix RPM安裝

centOS 6.5下Zabbix RPM安裝

## 1、安裝環境概述
常用的Zabbix安裝有兩種:rpm安裝和原始碼安裝,本文介紹以rpm安裝,原始碼安裝請參照原始碼安裝文件。
Zabbix常用地址如下:
- Zabbix官網:http://www.zabbix.com
- 官方論壇:http://www.zabbix.com/forum
- 程式碼託管地址:http://sourceforge.net/projects/zabbix/files
- Zabbix社群地址:https://zabbix.org

### 1.1、硬體環境
### 1.2、軟體環境
## 2、Zabbix-Server伺服器端安裝
準備好CentOS 6.5_X64系統,配置IP地址,確保與網際網路連線正常。
首先安裝Zabbix的官方配置源和epel配置源:
# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm
# yum install http://mirror.iprimus.com.au/epel/6/x86_64/epel-release-6-8.noarch.rpm
### 2.1、安裝步驟說明
Zabbix需要有LAMP(Linux+Apache+Mysql+PHP)或LNMP(Linux+Nginx+Mysql+PHP)執行環境,我們這裡選擇的是LAMP環境,所以我們的安裝步驟大致如下:
1. 安裝LAMP環境
2. 安裝配置Zabbix服務端以及客戶端
3. 配置防火牆以及Selinux

建議所有的安裝不要在root下,應該新建一個使用者,然後在此使用者下安裝Zabbix,下面是建立使用者以及使用者組的命令:
```
groupadd zabbix
useradd -g zabbix zabbix
```

### 2.2、安裝MYSQL資料庫服務
#### 2.2.1、解除安裝MYSQL
因為mysql在linux一般都預裝了,但是版本比較低,最好重新安裝一個高版本的mysql。

yum remove mysql

yum -y remove mysql-libs-5.1.73-7.el6.x86_64

rpm -qa | grep mysql
#### 2.2.2、安裝MYSQL服務
下載地址:http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.7/mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar
用tar命令解壓:
# tar -xvf mysql-5.7.14-1.el6.x86_64.rpm-bundle.tar
然後順序執行安裝命令:
# rpm -ivh mysql-community-common-5.7.14-1.el6.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.14-1.el6.x86_64.rpm
# rpm -ivh mysql-community-libs-compat-5.7.14-1.el6.x86_64.rpm
# rpm -ivh mysql-community-devel-5.7.14-1.el6.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.14-1.el6.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.14-1.el6.x86_64.rpm
執行最後一個的時候,如果出現以下錯誤資訊:
```
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.14-1.el6.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-5.7.14-1.el6.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-5.7.14-1.el6.x86_64
libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.14-1.el6.x86_64
```
說明缺少**libaio**和**libnuma**兩個依賴包,執行以下命令,安裝依賴包即可:
# yum -y install libaio numactl
如果錯誤中有perl開頭的,就安裝一下perl的依賴包,命令如下:
# yum -y install perl
安裝完依賴包,再次執行`rpm -ivh mysql-community-server-5.7.14-1.el6.x86_64.rpm`即可成功安裝。
啟動mysql資料庫並配置其開機自啟動
# service mysqld start 或 systemctl start mysqld
# chkconfig mysqld on 或 systemctl enable mysqld

#### 2.2.3、修改MYSQL初始密碼
安裝成功以後MYSQL預設初始密碼是在**/var/log/mysqld.log**檔案中隨機生成的,可以通過命令`grep 'temporary password' /var/log/mysqld.log`檢視。複製密碼,輸入命令`mysql -p`然後貼上剛才複製的密碼,即可登入。
登入以後輸入命令一下命令都可修改密碼(密碼是有策略的,必須包括大小寫字母、數字以及特殊符號,並且長度不能少於8位):
# set password for 'root'@'localhost' = password('!root2Admin');
# SET' PASSWORD = PASSWORD('!root2Admin');
# ALTER USER 'root'@'localhost' IDENTIFIED BY '!root2Admin';
可以通過命令`show variables like '%password%';`來檢視密碼策略相關資訊。
如果不需要密碼策略,在**/etc/my.cnf**檔案新增如下配置禁用即可:
# validate_password = off
使用命令`systemctl restart mysqld` 或者`service mysqld restart`重啟服務即可生效。

#### 2.2.4、配置MYSQL
#####2.2.4.1、新增遠端登入使用者
MYSQL預設只允許root帳戶在本地登入,如果要在其它機器上連線mysql,必須修改root允許遠端連線,或者新增一個允許遠端連線的帳戶,為了安全起見,我新增一個新的帳戶:
# GRANT ALL PRIVILEGES ON *.* TO 'hokai'@'%' IDENTIFIED BY 'hokai' WITH GRANT OPTION;
#####2.2.4.2、配置預設編碼為utf8
修改/etc/my.cnf配置檔案,在[mysqld]下新增編碼配置,如下所示:
```
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
```
重新啟動mysql服務,通過命令`show variables like '%character%';`檢視資料庫編碼資訊。
預設配置檔案路徑:
- 配置檔案:/etc/my.cnf
- 日誌檔案:/var/log//var/log/mysqld.log
- 服務啟動指令碼:/usr/lib/systemd/system/mysqld.service
- socket檔案:/var/run/mysqld/mysqld.pid

#####2.2.4.3、建立Zabbix初始化資料庫
```
shell> mysql -uhokai -phokai
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to [email protected] identified by 'zabbix';
mysql> flush privileges;
mysql> quit;
```
#####2.2.4.4、匯入Zabbix-Server資料庫
- 在目錄**/usr/share/doc/zabbix-server-mysql-3.0.7**下使用命令`gunzip -c create.sql.gz >create.sql`解壓**create.sql.gz**;
- 用**zabbix**使用者進入MYSQL的**zabbix**資料庫,執行命令`source /usr/share/doc/zabbix-server-mysql-3.0.7/create.sql`即可匯入zabbix的資料庫結構以及資料。

### 2.3、安裝配置PHP
#### 2.3.1、安裝PHP
- 檢查是否安裝了PHP包
# yum list installed | grep php
- 如果有且版本低於5,就移除當前PHP包。
# yum remove php5* 或 yum remove php55w*
- 沒有就安裝PHP,需要新增第三方的YUM源,此處用到webtatic
# rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
- 檢視YUM源上能用PHP安裝包
# yum list php* 或 yum list php55w*
- 安裝PHP5.5及需要的擴充套件
# yum install php55w php55w-devel php55w-common php55w-mysql php55w-pdo php55w-opacache php55w-xml php55w-bcmath php55w-gd php55w-mbstring php55w-gettext
- 再次檢視PHP版本,以確認安裝是否成功
# php -v
- 檢視PHP模組命令
# php -m

#### 2.3.2、配置PHP
- php.ini檔案的配置
```
shell# vim /etc/php.ini
date.timezone = Asia/Shanghai
max_execution_time = 300
post_max_size = 16M
max_input_time = 300
memory_limit = 128M
mbstring.func_overload = 0
```

### 2.4、安裝配置Zabbix-Server
#### 2.4.1 安裝Zabbix-Server
由於伺服器也需要監控,所有伺服器上也一併安裝Zabbix-Agent:
#yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
幾個重要的路徑如下:
- /usr/share/zabbix:zabbix的前端php程式碼
- /usr/lib/zabbix:zabbix的指令碼(包括報警指令碼和擴充套件指令碼)
- /etc/zabbix:zabbix的配置檔案

#### 2.4.2、配置zabbix-server
預設DBName和DBUser引數都為zabbix,不需要改,只需要改DBHost和DBPassword即可,其他為效能優化項,可選。
```
# vim /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
StartPollers=5
```
注意:LogFileSize預設為1,0為禁止自動迴圈
啟動Zabbix-Server服務並配置其開機自啟動
# systemctl start zabbix-server 或 service zabbix-server start
# systemctl enable zabbix-server 或 chkconfig zabbix-server on

#### 2.4.3、配置zabbix-agent
必須指定zabbix server的IP地址,其他host的連線都否認。
```
# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=127.0.0.1
```
啟動Zabbix-Agent服務並配置其開機自啟動
# systemctl start zabbix-agnet 或 service zabbix-agent start
# systemctl enable zabbix-agent 或 chkconfig zabbix-agent on

### 2.5、防火牆、Selinux和許可權的設定
#### 2.5.1 防火牆設定
修改防火牆配置檔案,在最後位置新增以下規則過濾:
```
shell# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 10050:10051 -j ACCEPT
-A OUTPUT -m state --state NEW -m tcp -p tcp --dport 10051 -j ACCEPT
```
上述埠中,80指的是Apache的web監聽埠,10050是Agent埠,Agent採用被動方式,Server主動連線Agent的10050埠;10051是Server的埠,Agent採用主動或Trapper的方式連線Server的10051埠。~10050是Agent埠,10051是Server埠~
#### 2.5.2 Selinux設定
因為大部分人對Selinux不是特別熟悉,可以選擇關閉Selinux。在實際的生產環境中,大部分是選擇關閉Selinux的。
這裡有兩個輔助命令:
# setenforce 0 #設定為警告模式,只給出提示,不會阻止操作,不用重啟伺服器既可生效
# getenforce #檢視Selinux的狀態[Enforcing|Permissive|Disabled]
如果想要直接關閉Selinux,可以直接編輯Selinux的配置檔案:
```
shell# vim /etc/selinux/config
SELINUX=disabled
```
#### 2.5.3、apache配置以及許可權配置
由於apache是系統預設已經裝過的,所有我們這裡沒有安裝,如果系統本身沒有安裝或者想升級,可以百度自行安裝。
apache的預設訪問的程式目錄為`/var/www/html`下。
將zabbix的前端程式拷貝到apache的程式目錄下,然後修改兩個地方的許可權,程式碼如下:
# cp -r /usr/share/zabbix /var/www/html/zabbix
# chown -R root.root /var/www/html/zabbix
# chown -R root.root /etc/zabbix/web
如果想修改WEB監聽埠,可以修改httpd配置檔案:
```
shell# vim /etc/httpd/conf/httpd.conf
Port 9000
ServerName 192.168.1.47:9000
```
啟動Apache服務並配置其開機自啟動
# systemctl start httpd 或 service httpd start
# systemctl enable httpd 或 chkconfig httpd on


### 2.6、配置WEB介面
開啟瀏覽器,輸入`http://zabbix-frontend-hostname/zabbix` (e.g. `http://localhost/zabbix`)出現前臺安裝介面配置。
- 安裝步驟總共6步,分別是:
1.歡迎介面、2.php需求檢查、3.MySQL配置、4.zabbix服務端詳細資訊、5.zabbix安裝前資訊列表、6.安裝完成
如果有哪些配置不對或不符合最低要求,會在這6步中給出錯誤提示,去配置檔案中修改相應配置檔案然後重啟httpd服務即可。
- 最後一步可能會提示錯誤**Cannot create the configuration file.**這時候下面會給出解決方案:
*Alternatively, you can install it manually:
1.Download the configuration file
2.Save it as "/etc/zabbix/web/zabbix.conf.php"*
意思是你可以自己手動安裝此檔案,首先下載配置檔案,然後將它放到`/etc/zabbix/web/`下,然後修改檔案許可權,使用命令`chmod 755 /etc/zabbix/web/zabbix.conf.php`。最後回到WEB介面上點選Finish即可。
- Finish完成以後會出現登陸介面,預設使用者名稱和密碼為:**Admin:zabbix**
- Zabbix是支援多語言的,可以為每個使用者配置不同的語言環境。單機選單欄Administration->Users->User name->Language修改使用者的語言。雖然Zabbix支援中文,但是不建議使用中文介面,因為中文介面的翻譯不準確,會誤導我們,建議使用英文介面。