實戰 zabbix-3.4.11 安裝,配置,部署全過程
系統環境:CentOS Linux release 7.4.1708 (Core), 3.10.0-693.el7.x86_64
安裝順序:
1) nginx:nginx-1.15.1 - 源碼安裝方式
2) MySQL:MySQL 5.7.22-1.el7 - yum安裝方式, 先要下載該yum源
3) php:php-7.2.3 - 源碼安裝方式
4) zabbix server: zabbix-3.4.11 - 源碼安裝方式
5) zabbix agent: zabbix-agent-3.4.11 - rpm 安裝方式
6) zabbix web GUI:在zabbix 源碼包中 frontends/php目錄下
說明:
- 所有的源碼包、壓縮包和解壓包都放置在 /snow/zabbix/ 目錄下
- 所有組件的安裝都安裝在 /usr/local/ 目錄下,用yum方式安裝的除外
步驟:
-
安裝必要的依賴庫等組件
yum -y install zlib pcre pcre-devel openssl openssl-devel
-
創建www用戶
useradd -s /sbin/nologin www
-
下載nginx源碼包, 版本:nginx-1.15.1
wget http://nginx.org/download/nginx-1.15.1.tar.gz
-
解壓nginx源碼包
tar -zxvf nginx-1.15.1.tar.gz
-
下載openssl源碼包,版本:openssl-1.0.2o
wget https://www.openssl.org/source/openssl-1.0.2o.tar.gz
-
解壓openssl源碼包
tar -zxvf openssl-1.0.2o.tar.gz
- 進入解壓後的nginx目錄,開始編譯
./configure \
--user=www \
--group=www \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/lock/subsys/nginx \
--with-openssl=/snow/zabbix/openssl-1.0.2o \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module \
--with-pcre
-
執行 make
make
-
執行 make install
make install
-
刪除系統默認安裝的mariadb數據庫
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
-
通過yum源的方式安裝MySQL5.7
-
下載MySQL yum源:
wget http://repo.mysql.com/mysql57-community-release-el7.rpm
-
安裝yum源:
rpm -ivh mysql57-community-release-el7.rpm
-
驗證yum源已安裝:確認有兩個源:mysql-community.repo 和mysql-community-source.repo
ll /etc/yum.repos.d/ | grep mysql
-
安裝MySQL5.7
yum install mysql-server mysql mysql-devel
- 驗證MySQL5.7安裝成功
rpm -qa | grep mysql
-
啟動MySQL服務
systemctl start mysqld
- 驗證MySQL啟動成功
ps -ef | grep mysqld
- 獲取初次安裝MySQL後的root的臨時密碼:
grep "password" /var/log/mysqld.log
- 通過臨時密碼登錄MySQL數據庫後後,必須要修改密碼,否則無法進行相關數據庫的操作。
-
註意新密碼要符合密碼復雜性要求:最小8位,包含字母大小寫,數字和特殊字符
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘Your_New_Password‘;
-
重新用修改後的密碼登錄數據庫驗證密碼無誤。
- 查看數據庫密碼策略
SHOW VARIABLES LIKE "validate_password%";
-
源碼安裝php, 先安裝php依賴庫
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
-
獲取php源碼包:
wget http://am1.php.net/distributions/php-7.2.3.tar.gz
-
解壓php源碼包
tar -zxvf php-7.2.3.tar.gz
- 切換到php解壓好的目錄下,開始編譯配置PHP
./configure \
--prefix=/usr/local/php7 \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo -enable-tokenizer \
--enable-zip
-
執行php make 操作
make
-
執行php make install 操作
make install
-
拷貝兩個文件到相關的目錄
cp php.ini-production /usr/local/php7/lib/php.ini
cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ - 修改nginx配置文件,添加php-fpm的整合配置,如截圖:
vim /usr/local/nginx/conf/nginx.conf
-
進入安裝好的php7 的目錄執行下面命令
cp /usr/local/php7/etc/php-fpm.conf.default php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf -
啟動php服務
systemctl start php-fpm.service
-
驗證php-fpm的啟動端口是否為9000
netstat -antlp | grep php
- 測試nginx是否能正常啟動,結果如圖能夠通過檢測
/usr/local/nginx/sbin/nginx -t
-
啟動nginx
/usr/local/nginx/sbin/nginx
-
驗證PHP,創建info.php文件
echo ‘<?php phpinfo(); ?>‘ > /usr/local/nginx/html/info.php
- 在客戶端輸入服務器的IP/info.php,如果網頁能打卡正常,說明配置正確
-
如果客戶端不能訪問網頁,關閉服務器防火墻,然後就能打開網頁
systemctl stop firewalld
- 網頁打開效果如圖
-
php配置優化,配置完後重啟php-fpm服務
vim /usr/local/php7/lib/php.ini
-
具體配置參數如下
post_max_size = 16M
max_execution_time = 300
memory_limit = 128M
max_input_time = 300
date.timezone = Asia/Shanghai -
源碼安裝zabbix server, 先安裝其依賴庫和插件
yum install net-snmp net-snmp-devel curl curl-devel libxml2 libevent libevent-devel
-
創建啟動zabbix的守護進程的普通用戶
groupadd zabbix
useradd -g zabbix zabbix -
獲取Zabbix源碼包,版本:zabbix-3.4.11
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.4.11/zabbix-3.4.11.tar.gz
-
解壓zabbix源碼包
tar zxvf zabbix-3.4.11.tar.gz
- 進入解壓好的zabbix目錄,執行編譯
-
說明:該zabbix目錄包含zabbix server端和web前端 (frontends目錄)
./configure --prefix=/usr/local/zabbix --with-mysql --with-net-snmp --with-libcurl --enable-server --enable-agent --enable-proxy --with-libxml2
-
執行 zabbix make 和 make install 操作,確保沒有報錯信息
make
make install - zabbix啟動腳本路徑默認指向的是/usr/local/sbin路徑,而zabbix的安裝路是/usr/local/zabbix,因此,需要提前創建如下軟鏈接
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
- 登錄MySQL數據庫,創建zabbix數據庫和zabbix的數據庫用戶
-
密碼要符合當前數據庫密碼策略
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by ‘Zabbix@Pwd‘; - 退出數據庫連接, 進入zabbix源碼包中 database/mysql/ 目錄下,再重新登入mysql,再在mysql命令行模式下,按順序執行以下命令來導入sql
use zabbix;
source schema.sql;
source images.sql;
source data.sql;
- 配置zabbix server, 編輯 /usr/local/zabbix/etc/zabbix_server.conf,修改以下配置項
-
拷貝 zabbix_server和zabbix_agentd兩個管理腳本,到/etc/init.d目錄下
cp /snow/zabbix/zabbix-3.4.11/misc/init.d/fedora/core/* /etc/init.d/
chmod +x zabbix_server
chmod +x zabbix_agentd -
讓這兩個服務開機自動啟動
chkconfig zabbix_server on
chkconfig zabbix_agentd on - 啟動zabbix server
/etc/init.d/zabbix_server start
或者
systemctl start zabbix_server
-
添加相應的zabbix服務和端口到系統配置文件中
vim /etc/services
- 添加下面內容
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper
- 在被監控的服務器端安裝和配置 zabbix agent,版本 zabbix-agent-3.4.11
- 註意:服務器端和客戶端的zabbix版本最好一致,這裏都是3.4.11的版本
-
獲取zabbix agent rpm 包
wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.11-1.el7.x86_64.rpm
-
安裝zabbix agent
rpm -ivh zabbix-agent-3.4.11-1.el7.x86_64.rpm
- 安裝完成後,生成 /etc/zabbix目錄和相關配置文件
-
修改zabbix agent的配置文件zabbix_agentd.conf, 主要項目如下:
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=xxx.xxx.xxx.xxx # zabbix server IP 地址
StartAgents=3
ServerActive=xxx.xxx.xxx.xxx # zabbix server IP 地址
Hostname=xxx.xxx.xxx.xxx # zabbix agent 端IP
Include=/etc/zabbix/zabbix_agentd.d/
UnsafeUserParameters=1 -
啟動zabbix agent服務
systemctl start zabbix-agent.service
- zabbix server端 安裝 zabbix web GUI
- zabbix web GUI:在zabbix 源碼包中 frontends/php目錄下
- 拷貝php目錄到zabbix安裝目錄下/usr/local/nginx/html/,並重命名為zabbix
cp -r /snow/zabbix/zabbix-3.4.11/frontends/php /usr/local/nginx/html/zabbix
-
最後確保 mysqld, nginx, zabbix_server, zabbix_agentd 和 php-fpm 這些服務已經正常啟動運行。
- 測試 zabbix server 監控是否生效,命令中XXX表示zabbix server IP 地址,如果結果返回一串數字表示測試成功。數字的意思是客戶端在線時間時長,單位是:秒
/usr/local/zabbix/bin/zabbix_get -s XXX.XXX.XXX.XXX -p 10050 -k "system.uptime"
- 添加在之前完成PHP的安裝後缺少的四個功能模塊:bcmath,sockets, LDAP和gettext
-
這裏對bcmath 模塊進行配置添加作為例子,其它三個模塊配置步驟完全一樣,記住一點對哪個模塊進行配置就在哪個模塊下的目錄進行操作。
cd /snow/zabbix/php-7.2.3/ext/bcmath
/usr/local/php7/bin/phpize上面命令執行完成後,在當前目錄下生成bcmath的configure文件,再執行下面操作
./configure --with-php-config=/usr/local/php7/bin/php-config
make
make install
vim /usr/local/php7/lib/php.ini把下面代碼添加到php.ini文件中
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718"
extension = bcmath.so - 把這四個模塊都完成編譯配置後,最終php.ini裏添加的內容如下圖
- 註意:PHP編譯配置生成的模塊放置於下面的目錄
/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/
- 如果在編譯配置LDAP的過程中遇到如下圖錯誤,說明還缺少ldap包,執行下面命令解決該錯誤,然後再次執行對LDAP的編譯配置
yum install openldap openldap-devel
cp -frp /usr/lib64/libldap* /usr/lib/
-
重啟php-fpm服務器,對php.ini所做的配置生效
systemctl restart php-fpm.service
- 打開瀏覽器,輸入地址,然後就能進入Zabbix 3.4的web管理配置界面
xxx.xxx.xxx.xxx/zabbix # xxx.xxx.xxx.xxx 是zabbix server的IP地址
- 在WEB 界面中,點擊 Next Step 按鈕,進入如下界面,並輸入正確的信息,連接數據庫
-
填寫zabbix server 的相關信息
-
預覽最終配置
- 最後一步有個報錯,按照提示,先下載配置文件zabbix.conf.php,然後保存到下面目錄。
/usr/local/nginx/html/zabbix/conf/
- 刷新web頁面後,顯示成功完成web的前端配置。
- 點擊finish按鈕成功進入界面。輸入zabbix的用戶名和密碼
初始用戶名 :Admin
初始密碼:zabbix
- 最後成功進入zabbix web GUI 界面!!!
實戰 zabbix-3.4.11 安裝,配置,部署全過程