?
一、環境準備
1.1 主機規劃
這里先對本次實驗的機器做一個規劃,之后的實驗均通過這兩臺機器完成。
序號 | IP地址 | 主機名 | CPU | 內存 | 硬盤 | 安裝服務 |
1 | 10.0.0.11 | zabbix-server | 1C | 2G | 20GB | zabbix服務端 |
2 | 10.0.0.12 | zabbix-agent | 1C | 1G | 20GB | zabbix客戶端 |
?
1.2 操作系統選擇
操作系統選擇:CentOS7.4,具體下載地址可以參考這篇文章:https://blog.51cto.com/13178102/2115459
虛擬化軟件選擇:Vmware Workstation
系統安裝過程省略。。。
1.3 系統基礎優化
系統安裝完成之后,做一下基本的優化操作:
#1.關閉防火墻 systemctl stop firewalld.service systemctl disable firewalld.service#2.關閉selinux setenforce 0 sed -i '7s#enforcing#disabled#g' /etc/selinux/config#3.安裝基礎軟件 yum -y install vim wget lrzsz nmap tree lsof ntpdate unzip bash-completion#4.設置時間同步 crontab -e */20 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null && hwclock -w
#5.配置/etc/hosts文件
10.0.0.11 zabbix-server
10.0.0.12 zabbix-agent
1.4 硬件資源配置參考
?
規模 | 平臺 | CPU/內存 | 數據庫 | 受監控的主機數量 |
---|---|---|---|---|
小型 | CentOS | Virtual Appliance | MySQL InnoDB | 100 |
中型 | CentOS | 2 CPU cores/2GB | MySQL InnoDB | 500 |
大型 | RedHat Enterprise Linux | 4 CPU cores/8GB | RAID10 MySQL InnoDB 或 PostgreSQL | >1000 |
極大型 | RedHat Enterprise Linux | 8 CPU cores/16GB | Fast RAID10 MySQL InnoDB 或 PostgreSQL | >10000 |
?
二、zabbix版本介紹
1、zabbix已經有2.0、3.0、4.0這三個大版本?
2、大版本號zabbix官方會有5年的技術支持,屬于LTS版本。例如4.0版本會支持到2023年。
3、zabbix是每1.5年更新一次大版本。
4、版本的選擇最好是最近的一次LTS版本,因此本實驗的版本為4.0
三、安裝zabbix server
官方文檔:https://www.zabbix.com/cn/download?zabbix=4.0&os_distribution=red_hat_enterprise_linux&os_version=7&db=mysql
以下步驟在zabbix-server主機上操作,安裝zabbix server服務!
3.1 安裝MySQL數據庫
官網的文檔好像沒有安裝MySQL數據庫的步驟,因此我們需要先裝一個mariadb服務。這里的MySQL只是一個簡單應用,生產環境建議做單獨的MySQL集群。
#安裝MySQL yum -y install mariadb mariadb-server#啟動MySQL systemctl start mariadb.service systemctl enable mariadb.service
#初始化MySQL mysql_secure_installation 回車 Y 123456 123456 Y Y Y Y Y
登陸mariadb后能正常查詢,說明數據庫安裝成功!
3.2 安裝Zabbix Server
- 安裝yum源
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm yum clean all
- 安裝zabbix server,web前端,agent
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
- 創建zabbix數據庫
# mysql -uroot -p password mysql> create database zabbix character set utf8 collate utf8_bin; mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '123456'; mysql> quit;
#注意這里的數據庫密碼,之后zabbix server的配置需要用到。
- 導入數據庫數據(yum安裝時已自動將sql下載)
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
#數據導入完成后可以看到一共有145張表

- 為zabbix配置數據庫
編輯配置文件:/etc/zabbix/zabbix_server.conf
DBPassword=123456
- 為zabbix前端配置PHP
編輯配置文件:/etc/httpd/conf.d/zabbix.conf將: # php_value date.timezone Europe/Riga 修改為: php_value date.timezone Asia/Shanghai
- 啟動zabbix server和agent進程
systemctl start zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
zabbix的基本安裝到此完畢,已經可以登陸前端進行配置!這里再做一下https的配置,之后均通過https來訪問。
http前端訪問地址:http://10.0.0.11/zabbix
3.3 安全設置
Zabbix的功能不依賴于此處的實踐,但建議用他們提高系統的安全性。
3.3.1 agent的安全用戶
在默認的配置中,Zabbix server 和 Zabbix agent 進程共享一個“zabbix”用戶。 如果您希望確保 Zabbix agent 無法訪問 Zabbix server 配置中的敏感詳細信息(例如,數據庫登錄信息),則應以不同的用戶身份運行 Zabbix agent:
- 創建一個安全用戶;
- 在 Zabbix agent 的?配置文件?中指定此用戶(修改 'User' parameter);
- 以擁有管理員權限的用戶重啟 Zabbix agent。之后,此權限將賦予給先前指定的用戶。
3.3.2 為zabbix前端設置SSL
目前很多的http服務都在往更安全的https,考慮到安全的因素,通過https來訪問是一個不錯的選擇。
- 安裝mod_ssl
yum install mod_ssl
- 為SSL keys創建目錄
mkdir -p /etc/httpd/ssl/private chmod 700 /etc/httpd/ssl/private
- 創建SSL證書
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/private/apache-selfsigned.key -out /etc/httpd/ssl/apache-selfsigned.crt
#需要填寫如下內容
Country Name (兩個字母) [XX]:CN State or Province Name (全名) []:SICHUAN Locality Name (eg, city) [默認的城市]:CHENGDU Organization Name (eg, company) [默認的公司名]:HTHX Organizational Unit Name (eg, section) []:HTHX Common Name (eg, your name or your server's hostname) []:zabbix-server Email Address []:
- 編輯Apache SSL配置
編輯配置文件:/etc/httpd/conf.d/ssl.confDocumentRoot "/usr/share/zabbix" ServerName zabbix-server:443 SSLCertificateFile /etc/httpd/ssl/apache-selfsigned.crt SSLCertificateKeyFile /etc/httpd/ssl/private/apache-selfsigned.key
- 重啟Apache服務
systemctl restart httpd.service
?3.3.3 在URL根目錄啟用Zabbix
完成了上面的過程后,可以通過http和https兩種方式訪問,還應該將http的請求跳轉到https,不讓其通過http訪問。
配置文件:/etc/httpd/conf/httpd.conf#在第80行處添加如下內容<VirtualHost *:*>ServerName zabbix-serverRedirect permanent / http://zabbix-server </VirtualHost>
完成之后再重啟http服務
systemctl restart httpd.servic
https訪問地址:https://10.0.0.11
注意:最好通過Chrome瀏覽器來進行訪問,其他瀏覽器(如IE)可能會攔截不安全的https鏈接
3.3.4 其他優化(可選)
- 禁用曝光的web服務器信息
配置文件:/etc/httpd/conf/httpd.conf
插入如下兩行:
ServerSignature Off
ServerTokens Prod
配置文件:/etc/php.ini 修改:
expose_php = Off
- 刪除Wen測試頁面
刪除根目錄下的index.html文件
?四、前端配置
官方文檔:https://www.zabbix.com/documentation/4.0/zh/manual/installation/install
- 第一步
打開瀏覽器鏈接:https://10.0.0.11,可以看到安裝向導的第一個頁面
- 第二步
確認滿足所有軟件的安裝前置條件,所有的狀態都需要是OK
- 第三步
確認數據庫信息,數據庫必須提前創建完成
- 第四步
輸入Zabbix server的詳細信息
?
- 第五步
查看設置摘要
- 第六步
完成安裝
- 第七步
Zabbix前端已經就緒,可以登陸系統。
默認用戶名:Admin
默認密碼:zabbix
登陸后的監控界面如下所示:
?五、頁面調整
5.1 調整中文顯示
zabbix默認為英文顯示,由于本人的英文水平較差,因此需要將其調整為中文顯示。當然喜歡看英文的同學可以不調整。
- 第一步
單擊右上角的小人圖標
- 第二步
在彈出來的Language選項框中將語言修改為中文
- 第三步
單機下方的update按鈕,即可完成中文的切換。切換后效果如下:
?5.2 中文狀態下圖形亂碼問題解決
在中文狀態下,我們查看某一監控圖形的時候,會出現如下這種亂碼的問題。這是由于字符集導致的,我們只需要替換一下系統里面的字符集即可矯正這個問題。
- 亂碼現象
- 第一步
備份系統中原有的字符集文件。默認文件為:/usr/share/fonts/dejavu/DejaVuSans.ttf
#備份原文件 cp /usr/share/fonts/dejavu/DejaVuSans.ttf{,.bak}
- 第二步
從我們的windows主機中,復制出字符集文件出來。最好能復制我們比較常用的微軟雅黑的文件。
可以通過控制面板--字體來找到該文件
- 第三步
復制出來后應該有三個文件
msyh.ttc:目標文件
msyhbd.ttc:粗體格式文件,不用它
msyhl.ttc:細體格式文件,也不要它
將mtsh.tty文件上傳到/usr/share/fonts/dejavu目錄,并將其重命名為DejaVuSans.ttf
cd /usr/share/fonts/dejavu/ rz 文件mv msyh.ttc DejaVuSans.ttf
#修改后無需重啟任何服務
- 結果如下
?5.3 修改Admin用戶密碼
修改Admin用戶的默認密碼是必須的工作,可以通過如下幾個步驟完成。
- 第一步
單擊右上角的小人圖標
- 第二步
單擊修改密碼選項
- 第三步
填寫新密碼并單擊更新。注意Admin用戶的密碼需要妥善保管。
?
?到這里server端的基本安裝工作已經完成了,接下來就是具體的配置了~~
?下一篇接著寫通過SNMP對服務器或者其他設備進行監控!
?