該教程是以官網的安裝教程爲基礎進行了的優化,全部提供內容均爲筆者驗證可用。php
提供安裝方式有兩種分別爲:二進制安裝、Docker容器安裝(推薦)前端
什麼是ZABBIX
zabbix是一個基於WEB界面的提供分佈式系統監視以及網絡監視功能的企業級的開源解決方案。java
zabbix能監視各類網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各類問題。mysql
zabbix由2部分構成,zabbix server與可選組件zabbix agent。linux
zabbix server能夠經過SNMP,zabbix agent,ping,端口監視等方法提供對遠程服務器/網絡狀態的監視,數據收集等功能,它能夠運行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平臺上。nginx
準備工做
系統準備(建議|可選)
能夠根據自身系統的要求選擇性的參照此章節,若是是新安裝的CentOS7操做系統建議執行該章節內容。web
-
備份鏡像源sql
# 備份源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
替換鏡像源docker
# 下載阿里雲CentOS.repo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
關閉防火牆shell
# 關閉防火牆 systemctl stop firewalld.service # 撤銷開機啓動 systemctl disable firewalld.service
-
關閉安全加強
# 設置SELinux的運行模式 setenforce 0 # 設置SELINUX=disabled sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
-
安裝EPEL源
yum install -y epel-release
-
安裝開發組件
# 經常使用開發組件 yum groups install -y "Development Tools"
-
重啓系統
reboot
數據庫安裝(可選)
使用MYSQL或者MariaDB數據庫,若是已有現成數據庫則能夠跳過該步驟。
注:Oracle公司收購了MySQL後,有將MySQL閉源的潛在風險。社區採用分支的方式來避開這個風險,所以誕生了MariaDB。部分大型互聯網用戶以及Linux發行商紛紛拋棄MySQL,轉投MariaDB陣營。MariaDB是目前最受關注的MySQL數據庫衍生版,也被視爲開源數據庫MySQL的替代品。
若是打算Docker安裝(推薦)也建議跳過此步驟,Docker有提供容器數據庫安裝。
-
安裝MariaDB
yum install -y mariadb-server
-
啓動MariaDB
# 啓動MariaDB systemctl start mariadb.service # 設置爲開啓啓動 systemctl enable mariadb.service
-
初始化數據庫
mysql_secure_installation
數據庫安裝並初始化完成。
ZABBIX安裝
本文提供安裝方式有兩種分別爲:二進制安裝、容器安裝(強烈推薦)
系統環境——
- 發行版本:CentOS7.5 +
- 內核版本:3.10 +
二進制安裝
-
安裝zabbix5.0鏡像源
# 安裝Zabbix鏡像源 rpm -ivh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all
-
安裝zabbix-server-mysql與zabbix-agent
yum install -y zabbix-server-mysql zabbix-agent
-
安裝zabbix-frontend
開啓Red Hat軟件集合
yum install -y centos-release-scl
編輯
/etc/yum.repos.d/zabbix.repo
文件[zabbix-frontend] ... enabled=1 ...
yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
-
配置zabbix數據庫
# 使用root用戶登陸(密碼自行修改) mysql -uroot -proot # 新建zabbix用戶與數據庫 MariaDB> create database zabbix character set utf8 collate utf8_bin; MariaDB> create user `zabbix`@`%` identified by 'Zabbix@Password'; MariaDB> grant all privileges on zabbix.* to `zabbix`@`%`;
-
初始化數據
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -pZabbix@Password zabbix
-
Zabbix server配置數據庫
編輯配置文件
/etc/zabbix/zabbix_server.conf
DB開頭的參數均爲數據庫參數,根據Mysql|MariaDB的配置修復便可。以下所示——
... DBHost=localhost ... DBPassword=Zabbix@Password ...
-
Zabbix前端配置PHP
編輯配置文件
/etc/opt/rh/rh-php72/php.ini
... max_execution_time = 300 ... post_max_size = 16M ... date.timezone = Asia/Shanghai ...
編輯配置文件
/etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
... listen.acl_users = apache,nginx ... ; php_value[date.timezone] = Asia/Shanghai ...
編輯配置文件
/etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf
# port listen 80; # server_ip_or_name server_name 192.168.1.100;
-
啓動Zabbix server和agent進程
啓動Zabbix server和agent進程,併爲它們設置開機自啓。
# 啓動 systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm # 開機自啓 systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
-
進入UI安裝界面
輸入nginx配置的host跟port,例如http://192.168.1.100進入後須要安裝。
點擊下一步。
這裏是驗證是否知足安裝條件,咱們以前修復改配置所以所有OK,直接下一步。
輸入數據庫信息,以前筆者配置的密碼是
Zabbix@Password
。這裏要注意
Zabbix server
須要與配置保持一致。確認無誤以後直接下一步。
完成安裝。
-
登陸zabbix
帳號/密碼爲
Admin/zabbix
成功登陸後進入zabbix監控頁面。
docker安裝
推薦使用容器化安裝zabbix。
-
安裝mysql
docker run -it --rm \ --privileged=true \ --name mysql-server \ -p 3306:3306 \ -v /opt/docker/zabbix/zabbix-mysql/log:/var/log/mysql \ -v /opt/docker/zabbix/zabbix-mysql/data:/var/lib/mysql \ -v /opt/docker/zabbix/zabbix-mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD="root" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e TZ="Asia/Shanghai" \ -d mysql:5.7 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_bin \ --lower_case_table_names=1
-
安裝zabbix-java-gateway
docker run -it --rm \ --privileged=true \ --name zabbix-java-gateway \ -d zabbix/zabbix-java-gateway:latest
-
安裝zabbix-server
docker run -it --rm \ --privileged=true \ --name zabbix-server-mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e MYSQL_ROOT_PASSWORD="root" \ -e ZBX_JAVAGATEWAY="zabbix-java-gateway" \ --link mysql-server:mysql \ --link zabbix-java-gateway:zabbix-java-gateway \ -p 10051:10051 \ -d zabbix/zabbix-server-mysql:latest
-
安裝zabbix-web
docker run -it --rm \ --privileged=true \ --name zabbix-web-nginx-mysql \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Zabbix@Password" \ -e MYSQL_ROOT_PASSWORD="root" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" \ -e ZBX_SERVER_PORT=10051 \ -e ZBX_POSTMAXSIZE=1024M \ -e PHP_TZ="Asia/Shanghai" \ --link mysql-server:mysql \ --link zabbix-server-mysql:zabbix-server \ -p 18080:8080 \ -p 18443:8443 \ -p 10080:80 \ -d zabbix/zabbix-web-nginx-mysql:latest
-
安裝zabbix-agent
docker run -it --rm \ --privileged=true \ --name zabbix-agent \ -e ZBX_HOSTNAME="Zabbix server" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" \ -p 10050:10050 \ --link zabbix-server-mysql:zabbix-server \ -d zabbix/zabbix-agent:latest
-
修改host地址
注意由於agent是使用容器,所以這裏須要配置容器IP。
# 獲取zabbix-agent的IP地址 docker inspect --format='{{.NetworkSettings.IPAddress}}' zabbix-agent
尾聲
以上就是ZABBIX5.0的安裝流程,後續筆者會介紹ZABBIX的功能模塊與實踐。