第一部分,安裝
此安裝配置為yum方式安裝zabbix5.0
系統版本:CentOS Linux release 7.5.1804 (Core)
zabbix版本:rpm -qa | grep zabbix
[root@es3 script]# rpm -qa | grep zabbix zabbix-web-5.0.19-1.el7.noarch zabbix-web-deps-scl-5.0.19-1.el7.noarch zabbix-agent-5.0.19-1.el7.x86_64 zabbix-release-5.0-1.el7.noarch zabbix-server-mysql-5.0.19-1.el7.x86_64 zabbix-web-mysql-scl-5.0.19-1.el7.noarch zabbix-apache-conf-scl-5.0.19-1.el7.noarch zabbix-get-5.0.19-1.el7.x86_64
MySQL版本:5.7.32 glibc
安裝:
zabbix 安裝過程
1、安裝配置zabbix專用yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm yum clean all yum makecache fast
2、安裝zabbix服務端元件
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get
# 安裝過程可能會報錯,zabbix版本衝突,是因為epel源裡也有zabbix,我的做法是將epel源先改名。
Transaction check error:
file /usr/bin/zabbix_get conflicts between attempted installs of zabbix-get-5.0.19-1.el7.x86_64 and zabbix40-4.0.36-1.el7.x86_64
file /usr/share/man/man1/zabbix_get.1.gz conflicts between attempted installs of zabbix-get-5.0.19-1.el7.x86_64 and zabbix40-4.0.36-1.el7.x86_64
Error Summary
cd /etc/yum.repos.d/ mv epel.repo epel-bak
然後再安裝
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-get
3、安裝zabbix前端元件
yum -y install centos-release-scl
編輯配置檔案 /etc/yum.repos.d/zabbix.repo,找到下圖所示欄位,並設定為1(1-啟用;0-不啟用)啟
用前端,儲存並退出檔案
vi /etc/yum.repos.d/zabbix.repo [zabbix] name=Zabbix Official Repository - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-frontend] name=Zabbix Official Repository frontend - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/frontend enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 [zabbix-debuginfo] name=Zabbix Official Repository debuginfo - $basearch baseurl=http://repo.zabbix.com/zabbix/5.0/rhel/7/$basearch/debuginfo/ enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591 gpgcheck=1 [zabbix-non-supported] name=Zabbix Official Repository non-supported - $basearch baseurl=http://repo.zabbix.com/non-supported/rhel/7/$basearch/ enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX gpgcheck=1
4、安裝zabbix前端頁面、初始資料庫、PHP及httpd元件
yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl
三、安裝並配置MySQL資料庫(我用的二進位制方式安裝mysql)
1、安裝yum源
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
2、安裝MySQL資料庫元件。
yum -y install yum-utils yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community yum install mysql-community-server -y
# 二進位制安裝MySQL
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz -C /data/server/
cd /data/server/
mv mysql-5.7.32-linux-glibc2.12-x86_64/ mysql-57
cd mysql-57
bin/mysqld --initialize --user=mysql --basedir=/data/server/mysql-57 --datadir=/data/server/mysql-57/data
#這一步需記住列印的臨時密碼
cp support-files/mysql.server /etc/init.d/mysqld-57 -r
vim /data/server/mysql-57/my.cnf
[mysqld]
datadir=/data/server/mysql-57/data
basedir=/data/server/mysql-57
user=mysql
socket=/data/server/mysql-57/var/mysql.sock
## Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
## instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
log-error=/data/server/mysql-57/var/log/mysql/mysql.log
pid-file=/data/server/mysql-57/var/run/mysql/mysql.pid
[client]
port=3306
socket=/data/server/mysql-57/var/mysql.sock
3、啟動
/etc/init.d/mysqld-57 restart
4、登入
根據提示輸入臨時密碼,登入資料庫
5、修改密碼,授權
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //單引號內為需要設定的
MySQL超級管理員root密碼,自行設定即可
create database zabbix character set utf8 collate utf8_bin; //建立zabbix資料
庫
create user zabbix@localhost identified by 'Zabbix'; //建立zabbix資料庫使用者,並設定密碼(單引號內修改為自己設定的密碼)
grant all privileges on zabbix.* to zabbix@localhost; //設定zabbix使用者對zabbix資料庫具有本地管理許可權
quit
6、匯入zabbix初始資料庫
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p'Zabbix' zabbix
四、zabbix配置初始化
1、配置資料庫連線資訊
編輯配置檔案 /etc/zabbix/zabbix_server.conf,找到以下欄位,去掉前面的#號,填入正確的zabbix數
據庫連線資訊,儲存並退出檔案
LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Zabbix DBPort=3306 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000 StatsAllowedIP=127.0.0.1
2、配置時區資訊
ll /usr/share/zoneinfo/Asia/Shanghai
編輯配置檔案 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf,找到php_value[date.timezone] = 欄位,去掉前面的分號,並填入對應時區
3、配置字型,避免前臺監控圖形中文亂碼
yum -y install wqy-microhei-fonts mv /usr/share/fonts/dejavu/DejaVuSans.ttf /usr/share/fonts/dejavu/DejaVuSans.ttf.bak cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
4、啟動zabbix相關服務並設定開機自啟動
systemctl restart zabbix-server httpd rh-php72-php-fpm
systemctl enable zabbix-server httpd rh-php72-php-fpm
5、瀏覽器上訪問前端,進行初始化安裝
訪問http://IP/zabbix,進入初始化安裝介面
這一步結束後,初始化完成,並進入登入介面,預設使用者名稱是Admin,密碼是zabbix,登入後請及時修改密碼
四、客戶端安裝及配置
1、安裝
yum install zabbix-agent -y cd /etc/zabbix/
2、配置
vim zabbix_agentd.conf PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 DenyKey=system.run[*] Server=172.16.5.53 ListenPort=10050 # StartAgents=3 #ServerActive=10.0.0.11 #Hostname=client Include=/etc/zabbix/zabbix_agentd.d/*.conf #UnsafeUserParameters=1 #UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1
3、啟動
systemctl start zabbix-agent.service
4、進一步配置,載入自定義監控指令碼
[root@es3 script]# cat /etc/zabbix/zabbix_agentd.d/check_jar_status.conf UnsafeUserParameters=1 UserParameter=check_jar_status[*],/etc/zabbix/zabbix_agentd.d/scripts/check_jar_status.sh $1
[root@es3 script]# cat /etc/zabbix/zabbix_agentd.d/scripts/check_jar_status.sh
#/bin/bash #zabbix鍵值傳過來的第一個引數,jar包名 JARNAME=$1 #zhabbix鍵值傳過來的第二個引數,埠號 #PORT=$2 #統計這個jar包程式的數量 #JARTSTATUS=`ps -ef |grep -v grep | grep "$JARNAME" | grep java |wc -l` JARTSTATUS=$(ps aux | grep ${JARNAME} | grep -v grep | grep java | grep -v $0 | wc -l) #ps aux | grep ${JARNAME} #echo "==============1=======================" #ps aux | grep ${JARNAME} |grep -v grep | grep java | wc -l #統計這個jar包監聽埠的數量 #PORTSTATUS=`netstat -antlp |grep LISTEN | grep -w "$PORT" |grep -v grep |grep dddddd | wc -l` #如果jar包數量和監聽埠數量都是1,則返回1,不然返回0 #if [[ "$JARTSTATUS" -eq "1" && "$PORTSTATUS" -eq "1" ]]; if [[ "$JARTSTATUS" -eq "1" ]]; then echo "1" else echo "0" fi
至此安裝完成,進入配置過程 。
第二部分 配置
一、從郵箱開始
1、登入郵箱後臺找到郵箱的授權碼,用於配置zabbix報警郵箱,163郵箱方式是,設定-POP3/SMTP/IMAP,點進去後下邊授權密碼管理。加一下授權碼,需複製下來儲存,只顯示一次。
Zabbix配置郵箱
然後到管理-使用者,點Admin使用者
配置-動作,按優先順序選擇
custom messege 部分:
{TRIGGER.STATUS}: {TRIGGER.NAME}
故障:{TRIGGER.STATUS},伺服器:{HOSTNAME1}發生:{TRIGGER.NAME}故障! 告警主機:{HOSTNAME1},IP地址:{HOST.CONN} 告警時間:{EVENT.DATE}--{EVENT.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊:{TRIGGER.NAME} 告警專案:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
如需重複報警,上邊的步驟裡,把1-1改成1-3,就是同一事件報警3次,0表示無數次。
恢復操作:
{TRIGGER.STATUS}: {TRIGGER.NAME}
恢復:{TRIGGER.STATUS},伺服器:{TRIGGER.NAME} 已經恢復! 告警主機:{HOSTNAME1} ,IP地址:{HOST.CONN} 告警時間:{EVENT.DATE}---{EVENT.TIME} 恢復時間:{EVENT.DATE}---{EVENT.RECOVERY.TIME} 告警等級:{TRIGGER.SEVERITY} 告警資訊:{TRIGGER.NAME} 告警專案:{TRIGGER.KEY1} 問題詳情:{ITEM.NAME}:{ITEM.VALUE} 當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1} 事件ID:{EVENT.ID}
二、自定義監控項,指令碼監控。用到上邊配置客戶端時的配置檔案。
1、建模板
2、建立監控項
3、建觸發器
可以通過上邊的選擇那裡建立出來表示式
{java service active newpay-hktest:check_jar_status[1-java].last()}=0
最後將要建的模板加入相應的主機。
方法:
加入後:
三、web監控及tcp監控
1、web監控
點主機,之後點想要建web頁面監控的主機
然後同一頁面,點步驟
我的是http:172.16.5.53:90
下一步建立模板,用於報警
觸發器
這裡邊選擇完主機會出現剛才的web場景的選項
然後把模板應用於主機
至此完成web頁面狀態碼監控,注意這裡只能監測到返回200以外的錯誤,像網頁檔案打不開這種404等之類的,而nginx掛了的超時並不會報錯。可以用前邊的程式監控,也可以利用nginx狀態模組監控,也可以用下邊的埠監控,當然nginx只監聽一個埠時可以,多個埠建議用程式或狀態模組。
2、埠監控
點進去後建立監控項
我這裡是172.16.5.53:90
接著點,觸發器,建立觸發器。
至此完成。