Zabbix安裝部署

哈哈哈hh發表於2022-01-06

映象下載、域名解析、時間同步請點選  阿里雲開源映象站

zabbix監控內容:

1.硬體監控。 通過SNMP來進行路由器交換機的監控(這些可以跟一些廠商溝通來了解如何做)、 伺服器的溫度以及其他,可以通過IPMI來實現。當然如果沒有硬體全都是雲,直接跳過這一步驟。

2.系統監控。 如CPU的負載,上下文切換、記憶體使用率、磁碟讀寫、磁碟使用率、磁碟inode節點。 當然這些都是需要配置觸發器,因為預設太低會頻繁報警。

3.服務監控。 比如公司用LNMP nginx自帶Status模組、PHP也有相關的Status、 MySQL的話可以通過percona來進行監控。Redis這些通過自身的info獲資訊進行過濾等。 方法都類似。要麼服務自帶。要麼通過指令碼來實現想監控的內容,以及報警和圖形功能。

4.網路監控。 如果是雲主機又不是跨機房,那麼可以選擇不監控網路。當然你說我們是跨機房以及如何如何。 推薦使用smokeping來做網路相關的監控。或者直接交給你們的網路工程師來做。因為術業有專攻。

5.安全監控。 如果是雲主機可以考慮使用自帶的安全防護。當然也可以使用iptables。 如果是硬體,那麼推薦使用硬體防火牆。使用雲可以購買防DDOS,避免出現故障導致down機一天。 如果是系統,那麼許可權、密碼、備份、恢復基礎的方案要做好。 web同時也可以使用nginx+waf來實現一個web層面的防火牆。當然也可以使用整合好的openresty。

6.Web監控。 web監控的話題其實還是很多。比如可以使用自帶的web監控來監控頁面相關的延遲、 js響應時間、下載時間、等等。這裡我推薦使用專業的商業軟體, 聽雲來做這一塊。畢竟人家全國各地都有機房。 (如果本身是多機房那就另說了)

7.日誌監控。 如果是web的話可以使用監控Nginx的500x日誌。 PHP的ERROR日誌。其實這些需求無非是,收集、儲存、查詢、 展示,我們其實可以使用開源的ELKstack來實現。ogstash(收集)、 elasticsearch(儲存+搜尋)、kibana(展示)

8.業務監控。 我們上面做了那麼多,其實最終還是保證業務的執行。 這樣我們做的監控才有意義。所以業務層面這塊的監控需要和開發以及總監開會討論, 監控比較重要,如API、等。(需要開會確認)然後通過簡單的指令碼就可以實現, 最後設定觸發器即可

9.流量分析。 平時我們分析日誌都是拿awk sed xxx一堆工具來實現。 這樣對我們統計ip、pv、uv不是很方便。那麼可以使用百度統計、 google統計、商業,讓開發嵌入程式碼即可。當然避免隱私也可以使用 piwiki來做相關的流量分析。

10.視覺化。 通過screen以及引入一 些第三方的庫來美化介面,同時我們也需要知道、訂單量突然增加、 突然減少。或者說突然來了一大波流量,這流量從哪兒來,是不是推廣了, 還是被攻擊了。可以結合監控平來來梳理各個系統之間的業務關係。

11.自動化監控。 如上我們做了那麼多的工作,當然不能是一臺一臺的來加key實現。 可以通過Zabbix的主動模式以及被動模式來實現。當然最好還是通過API來實現。

file

zabbix-server安裝部署

1.關閉selinux和firewall

準備:兩個centos7虛擬機器,一個作為zabbix-server,另一個作為zabbix-agent
需要安裝:Apache+MySQL+Php+zabbix-server、zabbix-agent等

#vim /etc/selinux/config   #將SELINUX=enforcing改為SELINUX=disabled
#或使用:
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
#getenforce    #Disabled 為關閉(臨時關閉)
#setenforce 0  #設定SELinux 成為enforcing模式(永久關閉)
#systemctl stop firewalld.service 停止防火牆
#systemctl disable firewalld.service禁止firewall開機啟動

2.更改yum源為阿里源

清空/etc/yum.repos.d/*,下載阿里雲的centos7映象和epel映象

file

#yum install wget -y
#rm -rf /etc/yum.repos.d/*
#wget -O /etc/yum.repos.d/Centos_Base.repo 
#wget -O /etc/yum.repos.d/epel-7 
#yum clean all  清空快取
#yum makecache   生成快取

3.安裝httpd

#yum install httpd -y
#systemctl start httpd 
#systemctl  status httpd
#systemctl enable httpd

驗證apache服務是否安裝成功:
在瀏覽器中輸入虛擬機器的ip地址,出現下圖為成功

file

4.安裝php

#yum install php -y  重啟apache服務
#systemctl restart httpd  
#vim /var/www/html/hell.php  檢視php是否安裝成功
 < h1>hello world</h1>
 < h1>hi</h1>
 this is a....

file

5.安裝mysql–yum安裝

yum安裝方式可能會比較慢,可使用其他安裝方法
(1)解除安裝舊的mysql版本

#rpm -qa|grep mysql  檢視之前安裝的mysq
#rpm -e xxxx  解除安裝所有mysql服務
#yum list installed | grep mysql  也可嘗試使用yum命令解除安裝舊版本
#yum remove mysql
#find / -name mysql  檢視殘留mysql檔案
#rm -rf 檔案

(2)下載mysql的yum源

#wget 下載到當前路徑,下載完成可以在當前目錄檢視到
#rpm -ivh mysql80-community-release-el7-4.noarch.rpm
#yum repolist enable|grep mysql 檢視mysql的yum源是否安裝成功
#yum install mysql-server -y

(3)開啟mysql服務

#systemctl start mysqld
#systemctl status mysqld
#systemctl enable mysqld

安裝完成後,在/var/log/mysqld.log檔案中給root生成了一個預設密碼,通過下面的方式找到root預設密碼,然後登入mysql進行修改:

#grep "temporary password" /var/log/mysqld.log

file

#mysql -uroot -p
mysql>alter user ‘root’@‘localhost’ identified by ‘新密碼’;
報錯error:You must reset your password using ALTER USER statement before executing this statement

file

解決方法如下:

mysql>alter user user() identified by  'abCD@1234';

密碼要符合密碼規則,否則會報錯Your password does not satisfy the current policy requirements

file

如果想要修改成“123456”這種簡單的密碼,參考文章https://blog.csdn.net/zhanaolu4821/article/details/93622812

#yum -y  install php-mysql   將php和mysql關聯
#yum -y install php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel  安裝常用的php模組
#systemctl restart httpd  重啟apache服務

6.安裝部署zabbix環境

#獲取下載源

#rpm -Uvh 

#檢視下載的repo檔案(zabbix.repo)

[root@localhost ~]# ls /etc/yum.repos.d/
Centos-L.repo.bak      CentOS-x86_64-kernel.repo
CentOS-Media.repo.bak  zabbix.repo

#檢視源地址檔案內容

[root@localhost ~]# cat /etc/yum.repos.d/zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-ZABBIX-A14FE591

#更換源地址(sed -i替換,使用#做分隔符,替換檔案內源地址指向地址)

[root@localhost ~]# sed -i 's#

#清理並重新構建yum快取

#yum clean all
#yum makecache

#yum安裝zabbix server和agent

[root@localhost ~]# yum -y install zabbix-server-mysql zabbix-agent
[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo

file

Software Collections,便於後續安裝高版本的php,預設yum安裝的php版本為5.4過低。

SCL(Software Collections)可以讓你在同一個作業系統上安裝和使用多個版本的軟體,而不會影響整個系統的安裝包。

軟體包會安裝在/opt/rh目錄下
為了避免系統廣泛衝突,/opt/rh包安裝在目錄中,例如,這允許你在 Centos7機器上安裝Python3.5,而不會刪除或干擾Python2.7

/etc/opt/rh/軟體包的所有配置檔案都儲存在目錄中相應的目錄中,SCL包提供了定義使用所包含應用程式所需的環境變數的shell指令碼,例如:PATH等

[root@localhost ~]# yum -y install centos-release-scl

#前提是安裝SCL,-scl會安裝到/etc/opt/rh件夾不會跟系統應用衝突

[root@localhost ~]# yum -y install zabbix-web-mysql-scl zabbix-apache-conf-scl

#建立一個zabbix資料庫,character set utf8(設定字元編碼為utf8),collate utf8_bin(支援utf8)

mysql> create database zabbix character set utf8 collate utf8_bin;

#建立一個zabbix使用者,zabbix@localhost(使用者名稱為zabbix允許localhost登入),密碼為abCD@1234

mysql> create user zabbix@localhost identified by 'abCD@1234';

#給zabbix使用者授權,grant all privileges(授予所有許可權權),
zabbix.*(授予zabbix資料庫裡的所有表的許可權),zabbix@localhost(授予的使用者是zabbix)

mysql> grant all privileges on zabbix.* to zabbix@localhost;

#重新整理授權表

mysql> flush privileges;
mysql>exit

#使用zabbix-mysql,匯入資料庫資訊(使用zcat檢視壓縮檔案內容匯入到資料庫)

[root@localhost ~]# zcat /usr/share/doc/zabbix-server-mysql-*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password:輸入資料庫root密碼

#登入資料庫,檢視zabbix資料庫內容

[root@localhost ~]# mysql -uroot -pabCD@1234
mysql>  use zabbix;
mysql> show tables;  #檢視庫內的表

#修改zabbix server配置檔案裡改資料庫的密碼(找到DBPasswd的行,去掉註釋,修改密碼為資料庫裡zabbix使用者的密碼)

[root@localhost ~]# vim /etc/zabbix/zabbix_server.conf

file

#修改zabbix的PHP配置檔案,修改時區為上海,並去掉前面註釋符號“;”

[root@localhost ~]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

file

#grep驗證時區已經更改為亞洲/上海
[root@localhost ~]# grep ‘timezone’ /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf

啟動zabbix:

#啟動server端、agent端、apache服務、啟動php程式(zabbix前端是交給PHp解析的)

[root@localhost ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

[root@localhost ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

預設訪問ip的80埠是apache的測試頁面,需要加上/zabbix字尾

file
file
file

報錯:cannot connect to the database.the server requested authentication method unknown to the client.
經檢查,zabbix-server服務啟動失敗,重啟服務仍失敗

file

檢視日誌:

#tailf /var/log/zabbix/zabbix_server.log

報錯:[Z3001]connection to database ‘zabbix’ failed:[2059] authentication plugin ‘caching_sha2_password’ cannot be loaded

file

解決方法:修改zabbix賬號

mysql>ALTER USER 'zabbix'@'localhost' IDENTIFIED WITH mysql_native_password BY 'zabbix';
#systemctl restart zabbix-server

因為mysql8.0 引入了新特性 caching_sha2_password;這種密碼加密方式客戶端不支援;客戶端支援的是mysql_native_password 這種加密方式;
參考https://www.cnblogs.com/Sherry-XRJ/p/11754077.html

多次點選next step
到登入介面,預設賬號Admin,密碼zabbix

點選使用者設定可更改預設密碼和介面語言、風格等:

file
file

圖形化亂碼問題:

zabbix預設檢測了服務端本身,但是編碼有問題

file

服務端安裝字型(需要之前配置的zabbix源):

#yum -y install wqy-microhei-fonts
#alias  #系統預設的別名cp=cp -i,在cp前加\就可以還原命令的本意
alias cp='cp -i'

#用剛安裝的wqf的.ttc檔案,覆蓋原來的檔案

#\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

重新整理,亂碼問題解決

file

zabbix-agent安裝部署

客戶端和服務端安裝ntpdate同步時間,時區統一,關閉防火牆

#yum -y install ntpdate
#ntpdate  -u ntp.aliyun.com   #同步時間:
#mv /etc/localtime{,.bak}
#ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime  #時區統一:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
systemctl disable --now firewalld
getenforce #檢視防火牆狀態
setenforce 0 #更改防火牆狀態
iptables -L  #檢視iptables規則   #關閉防火牆:

#獲取下載源

rpm -Uvh 

#檢視下載的repo檔案(zabbix.repo)

[root@localhost ~]# ls /etc/yum.repos.d/
Centos-L.repo.bak      CentOS-x86_64-kernel.repo
CentOS-Media.repo.bak  zabbix.repo

#檢視源地址檔案內容

[root@localhost ~]# vim /etc/yum.repos.d/zabbix.repo

#更換源地址(sed -i替換,使用#做分隔符,替換檔案內源地址指向地址)

[root@localhost ~]# sed -i 's#

#清理並重新構建yum快取

#yum clean all
#yum makecache

安裝agent2

#yum -y install zabbix-agent2

#配置檔案和啟動檔案

/etc/zabbix/zabbix_agent2.conf #配置檔案

/usr/sbin/zabbix_agent2 #啟動檔案

設定開機自啟並啟動

#systemctl enable --now zabbix-agent2
[root@c4-node3 ~]# netstat -tpln | grep zabbix  #檢查埠是否被啟用(安裝net-tools)
tcp6       0      0 :::10050                :::*                    LISTEN      3327/zabbix_agent2

配置檔案(修改主機名,服務端地址)

#grep -Ev '^#|^$' /etc/zabbix/zabbix_agent2.conf  #過濾註釋行和空行
PidFile=/var/run/zabbix/zabbix_agent2.pid  #pid檔案
LogFile=/var/log/zabbix/zabbix_agent2.log  #日誌檔案
LogFileSize=0                #日誌大小,預設0無限制
Server=192.168.86.148         #服務端地址(server地址,這裡改為130)
ServerActive=192.168.86.148   #改為服務端地址
Hostname=zabbix_server           #建議改為機器的主機名
Include=/etc/zabbix/zabbix_agent2.d/*.conf 
#使用Include語法,“.d”目錄裡面所有以.conf結尾的檔案都會被識別為配置檔案
ControlSocket=/tmp/agent.sock

#修改完成後重啟服務

systemctl restart zabbix-agent2

驗證客戶端連通性:

在服務端上通過命令主動獲取資料

#yum -y install zabbix-get   #安裝工具
#zabbix_get -s '192.168.86.131' -p 10050 -k 'system.hostname' #-s地址(zabbix_agent地址),-p埠,-k命令
zabbix_agent      #收集到了主機名連線成功

新增agent主機:
點選‘配置’大框裡的‘主機’就可以看到預設監控的server端本機,點選‘建立主機’來新增要監控的主機

file
填入相關資訊(主機名-顯示的名字-群組linux servers-ip地址埠),然後點新增:

file

新增完成後,已經可以顯示在主機列表裡了,但是沒有監控項, 點選主機名配置監控項
很多監控項不需要一個個手動定義的, 可以選擇’模板’,預設為空輸入linux可以看到輸入推薦,選擇 ‘Template OS linux by zabbix agent’,點選更新就可以看到模板裡定義的監控項已經新增進去了,等到zbx亮了之後就可以監控了

file
file

本文轉自:https://blog.csdn.net/hiolb/article/details/122246222


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70003733/viewspace-2850912/,如需轉載,請註明出處,否則將追究法律責任。

相關文章