zabbix5.0監控安全配置全過程

第一部分,安裝

此安裝配置為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 //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、瀏覽器上訪問前端,進行初始化安裝

訪問//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

 

 

 

 接着點,觸發器,創建觸發器。

 

 

 

 

 至此完成。

Tags: