Zabbix3.4從入門到精通

zabbix-基礎

第1章 關於zabbix

1.1 爲何要使用監控

1.對系統不間斷實時監控
2.實時反饋系統當前狀態
3.保證服務可靠性安全性
4.保證業務持續穩定運行
php

1.2 如何進行監控

好比咱們須要監控磁盤的使用率
1.如何查看磁盤使用率df -h
2.監控磁盤的那些指標block、inode
3.如何獲取具體的信息df -h|awk'//$/{print $(NF-1)}'
4.獲取的數值到達多少報警 80%
前端

1.3 流行的監控工具

1.cacti、Nagios、Zabbix、
2.Lepus(天兔)數據庫監控系統
3.Open-Falcon 小米
4.Prometheus(普羅米修斯,Docker、K8s)
node

1.4 到一家新公司,如何入手監控

1.硬件監控 路由器、交換機、防火牆
2.系統監控 CPU、內存、磁盤、網絡、進程、TCP
3.服務監控 nginx、php、tomcat、redis、memcache、mysql
4.WEB監控 請求時間、響應時間、加載時間、
5.日誌監控 ELk(收集、存儲、分析、展現)日誌易
6.安全監控 Firewalld、WAF(Nginx+lua)、安全寶、牛盾雲、安全狗
7.網絡監控 smokeping 多機房
8.業務監控
python

第2章 zabbix部署

2.1 基礎環境劃分

主機名 IP地址 功能
zabbix 172.16.1.71 zabbix服務端
web01 172.16.1.7 zabbix客戶端 nginx
web02 172.16.1.8 zabbix客戶端 nginx
db01 172.16.1.51 數據庫

2.2 安裝zabbix

Zabbix-Server,是一個C/S和B/S結構
1.安裝Zabbix-servermysql

[root@zabbix ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
[root@zabbix ~]# yum install -yzabbix-server-mysql zabbix-web-mysql zabbix-agent mariadb-server

2.建立Zabbix數據庫以及用戶
#啓動數據庫,加入開機自啓ios

[root@zabbix ~]# systemctl enable mariadb
[root@zabbix ~]# systemctl start mariadb

建立數據庫並受權

[root@zabbix ~]# mysql -uroot -p
MariaDB [(none)]> create database zabbixcharacter set utf8 collate utf8_bin;   
MariaDB [(none)]> grant all privileges on zabbix.*to zabbix@localhost identified by 'zabbix';
MariaDB [(none)]> exit

3.導入基礎架構和數據nginx

[root@zabbix ~]# cd/usr/share/doc/zabbix-server-mysql-3.4.14/
進入這個目錄可能不報錯 目錄不存在 大可能是由於版本不一樣 致使目錄名稱改變
[root@zabbix zabbix-server-mysql-3.4.14]# ll
total 2112
-rw-r--r-- 1 root root      98 Sep 14 04:04 AUTHORS
-rw-r--r-- 1 root root  857849 Sep 14 04:04 ChangeLog
-rw-r--r-- 1 root root   17990 Sep 14 04:04 COPYING
-rw-r--r-- 1 root root 1267039 Sep 14 04:09create.sql.gz
-rw-r--r-- 1 root root      52 Sep 14 04:04 NEWS
-rw-r--r-- 1 root root     188 Sep 14 04:04 README
[root@zabbix zabbix-server-mysql-3.4.14]#  zcat create.sql.gz |mysql -uroot zabbix
[root@zabbix zabbix-server-mysql-3.4.14]# mysql-uroot -p    進入數據庫確認一下是否導入成功
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;
140 rows in set (0.00 sec)  #因內容過多此處只粘貼總數

4.啓動Zabbix Server進程,在zabbix_server.conf中編輯數據庫配置git

[root@m01 ~]# vi/etc/zabbix/zabbix_server.conf  #如下四處須要更改
如下四處大部分起初都被註釋 應該把註釋取消  如下是須要修改的內容所在行 
DBHost=localhost                         #91行
DBName=zabbix                            #101行
DBUser=zabbix                            #117行
DBPassword=zabbix                        #126行
# 啓動ZabbixServer進程
[root@zabbix ~]# systemctl enable zabbix-server
[root@zabbix ~]# systemctl start zabbix-server

5.編輯Zabbix前端的PHP配置,Zabbix前端的Apache配置文件位於 /etc/httpd/conf.d/zabbix.conf。一些PHP設置已經完成了配置。github

[root@zabbix ~]# vim /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
# php_value date.timezone Asia/Shanghai              #20行
依據所在時區,取消 「date.timezone」 設置的註釋,並正確配置(Asia/Shanghai)。在配置文件更改後,須要重啓ApacheWeb服務器。

6.啓動httpd服務web

[root@zabbix ~]#systemctl enable httpd
[root@zabbix ~]#systemctl start httpd

2.3 網頁配置zabbix-web界面

配置完以上內容後 網頁輸入10.0.0.71/zabbix進入zabbix安裝界面、
歡迎界面, 直接下一步便可

檢查依賴項是否不存在任何異常

配置zabbixWeb鏈接數據庫(若是直接選用遠程數據庫 能夠在此處修改)

配置ZabbixServer服務器的主機名或主機IP地址和端口號, 以及安裝的名稱(可選)

安裝前摘要,檢查配置參數。若是一切都正確,請按"下一步"按鈕或"後退"按鈕來更改配置參數。

提示已成功地安裝了Zabbix前端。配置文件/etc/zabbix/web/zabbix.conf.php被建立。

至此Zabbix已經安裝完畢
默認登錄ZabbixWeb的用戶名Admin,密碼zabbix

第3章 zabbix-web界面優化

3.1 修改成中文字體



點擊update後即爲中文字體
(修改成中文字體後可能有些界面會產生亂碼 咱們還應該修改下字符集,防止產生亂碼)

3.2 調整字符集

1.先搜索zabbix-web包對應字符存放的目錄

[root@zabbix ~]# rpm -ql zabbix-web|grep fonts
/usr/share/zabbix/fonts

2.進入對應字體目錄,發現字體是一個軟連接

[root@zabbix ~]# cd /usr/share/zabbix/fonts/
[root@zabbix fonts]# ll
lrwxrwxrwx 1 root root 33 Oct 11 03:20graphfont.ttf -> /etc/alternatives/zabbix-web-font

3.進入軟連接對應的目錄,發現仍是軟連接

[root@zabbix fonts]# cd /etc/alternatives/
[root@zabbix alternatives]# ll
lrwxrwxrwx1 root root 38 Oct 11 03:20 zabbix-web-font ->/usr/share/fonts/dejavu/DejaVuSans.ttf

4.進入最終字體存放的目錄

[root@zabbix alternatives]# cd/usr/share/fonts/dejavu/

5.將默認字體進行更名

[root@zabbix-server alternatives]# mvDejaVuSans.ttf DejaVuSans.ttf_bak

6.上傳本身準備好的字體,字體能夠經過windows電腦獲取

(c:\windows\fonts)

7.最後將新上傳的字體進行更名

[root@zabbix dejavu]# mv simkai.ttf DejaVuSans.ttf

注意:若是字體是ttc,修改成ttf也行。

3.3 調整web界面窗口位置

該操做能夠不執行
爲了之後方便咱們觀察 因此咱們修改下 web界面的窗口安排
圖片所示是默認的  點擊編輯儀表盤 即可以拖動各個小窗口

將以下圖四欄 往上提便可而後保存
目的是方便往後查看

第4章 監控內容部署

4.1 配置一臺主機

1.      在客戶端安裝zabbix-agent

[root@web01 ~]# rpm -ivhhttps://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm

2.配置修改/etc/zabbix/zabbix_agentd.conf內容

[root@web03 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.16.1.71  #97行 指向Zabbix-Server
Timeout=30 #238行 此處默認是註釋3或4 能夠取消註釋修改爲30

3.啓動服務並檢查

[root@web01 ~]# systemctl start zabbix-agent
[root@web01 ~]# systemctl enable zabbix-agent
[root@web01 ~]# netstat -lntp
Active Internet connections (only servers)  
tcp0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      981/zabbix_agentd

以上確認配置完成後 進入web界面網頁配置
點擊建立主機


配置完以上內容後 不要直接點擊添加
點擊模板->選擇鏈接指示器->選擇->搜索Linux->點擊小按鈕添加->最後添加


Template OS Linux 是必添加的監控
添加完成後 點擊主機(若是等幾分鐘 顯示ZBX則爲添加成功 沒有問題)

4.2 自定義監控TCP

TCP的12種狀態

tcp[ESTABLISHED]
tcp[SYN_SENT]
tcp[SYN_RECV]
tcp[FIN_WAIT1]
tcp[FIN_WAIT2]
tcp[TIME_WAIT]
tcp[CLOSE]
tcp[CLOSE_WAIT]
tcp[LAST_ACK]
tcp[LISTEN]
tcp[CLOSING]
tcp[UNKNOWN]

1.在對應的主機上編寫自定義監控TCP的11中狀態[在本地進行取值,web01]

[root@web01 ~]# vim/etc/zabbix/zabbix_agentd.d/tcp.conf
UserParameter=tcp[*],netstat -ntal | awk'NR>1{print $NF}'| grep -i "$1" | wc -l

2.在server上使用zabbix_get獲取對應主機的值

[root@zabbix ~]# yum install zabbix-get -y
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -ktcp[estab]

確認無誤後再添加
網頁配置內容
先添加一個模板 在模板裏建立監控項這樣之後就不用再次建立
由於模板支持導出導入


建立完模板 點擊監控項

點擊建立監控項

而後開始建立
建立時 名稱只是讓人看的鍵值是最關鍵的 不能更改
添加完一個後  就可使用這個來克隆其餘的
須要注意的是 要確保每一個鍵值都正常

克隆完後的 每一個都要啓用默認建立完就是啓用的

添加完成後 咱們要把模板加入到web01這臺主機上進行監控
按照一開始添加模板 將TCP這個模板加入便可
 

檢查是否成功
若是有數據更新即爲成功

4.3 自定義監控內存

1.在Agent的/etc/zabbix/zabbix_agentd.d/*.conf自定義監控項, 使用UserParameter=KEY,shell command,目的是便於zabbixServer獲取ZabbixAgent對應監控項的數據

[root@web01 zabbix_agentd.d]# vim mem.conf 
UserParameter=Mem.Num,free -m |awk '/^Mem/{print$NF/$2*100}'
UserParameter=Swap.Num,free -m|awk '/^Swap/{print$3/$2*100}'
  1. 使用zabbix_agentd -p | grep KEY,若是獲取到值則正常
[root@web01 zabbix_agentd.d]# zabbix_agentd -p|grep-i Mem_Num
Mem_Num[t|38.501]
  1. 在ZabbixServer端測試獲取ZabbixAgent端自定義的監控項是否正常zabbix_get -s IP_addr -k KEY
[root@zabbix ~]# zabbix_get -s 172.16.1.7 -k Mem.Num
38.7064

而後開始網頁配置


將 Swap.Num 和 Mem.Num 都添加上

添加完成後 查看最新數據

配置完成

第5章 配置觸發器

5.1 配置單條件觸發器

ESTAB超過500就報警



檢查是否添加成功

5.2 多條件觸發器


內存使用剩餘不足百分之30且swap使用超過1%就報警

檢查

5.3 登陸用戶超過兩我的就報警


第6章 配置報警

6.1 配置web界面報警



6.2 配置郵件報警

將動做裏的觸發器的狀態設置爲已啓動(點一下已中止便可)
注意界面右上角 選擇爲觸發器否則顯示內容不一樣

6.2.1 更改報警郵件信息

而後咱們點擊名稱 進入配置界面(更改報警郵件發送的信息)
將默認的信息刪除 覆蓋掉
故障!!!: {TRIGGER.NAME}
報警主機:{HOST.NAME1}
報警服務: {ITEM.NAME1}
報警Key1: {ITEM.KEY1}:{ITEM.VALUE1}
報警Key2: {ITEM.KEY2}:{ITEM.VALUE2}
嚴重級別: {TRIGGER.SEVERITY}

恢復: {TRIGGER.NAME}
恢復主機:{HOST.NAME1}
恢復服務: {ITEM.NAME1}
恢復Key1:{ITEM.KEY1}:{ITEM.VALUE1}
恢復Key2: {ITEM.KEY2}:{ITEM.VALUE2}
恢復的內容也要修改

6.2.2 修改報警媒介類型

image.png

6.2.3 添加報警媒介


image.png
添加後 點擊更新 至此 郵件配置完成

6.3 企業微信報警

1.準備微信報警腳本, 腳本怎麼寫->腳本放在哪【至關於配置好了發件人】

[root@zabbix ~]# yum install python-pip -y
[root@zabbix ~]# pip install requests
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts

報警腳本內容

[root@zabbix alertscripts]# vim weixin.py 
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信報警腳本
 
import requests
import sys
import os
import json
import logging
 
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#author: bgx
#date: 2018
#comment: zabbix接入微信報警腳本
 
import requests
import sys
import os
import json
import logging
 
logging.basicConfig(level = logging.DEBUG, format= '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
datefmt = '%a, %d %b %Y %H:%M:%S',
filename = os.path.join('/tmp','weixin.log'),
filemode = 'a')
 
 
corpid='wwabcf092986138a4f'
appsecret='47r80t2cfYbQfrOs8mRXUx84H44RdFTJ9BMvVaeQUVQ'
agentid=1000002
#獲取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid='+ corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']
 
#發送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='+ accesstoken
 
touser=sys.argv[1]
subject=sys.argv[2]
#toparty='3|4|5|6'
message=sys.argv[2] + "\n\n"+sys.argv[3]
 
params={
"touser": touser,
#"toparty": toparty,
"msgtype": "text",
"agentid": agentid,
"text": {
"content": message
        },
"safe":0
}
 
req=requests.post(msgsend_url,data=json.dumps(params))
 
logging.info('sendto:' + touser + ';;subject:' +subject + ';;message:' + message)

給腳本增長執行權限並測試

[root@zabbix alertscripts]# chmod +x weixin.py
[root@zabbix alertscripts]# ./weixin.py  nfsnobodySubject Messages  #測試
[root@zabbix alertscripts]# rm -f /tmp/weixin.log   #刪除這個文件否則會報錯

開始web界面配置

下圖須要增長的內容(注意不要有空格  否則會報錯 很難發現)
{ALERT.SENDTO}#發給誰
{ALERT.SUBJECT}#發送的主題
{ALERT.MESSAGE}#發送的內容   
腳本名稱 直接填寫腳本的名稱便可
但要注意  腳本必須放在server端的/usr/lib/zabbix/alertscripts目錄下

添加完報警媒介類型後 在報警媒介新增 微信的報警資料  (添加完後不要忘記點擊更新)
image.png

6.4 配置報警升級

先建立兩個用戶組


增長報警媒介
image.png
修改用戶的權限 只有管理員才能接收信息

點擊配置--動做

將已經存在的一項更新一下

而後添加一個新的

添加完成後 點擊更新此處只添加了兩個用戶  三個用戶 依次往下便可

第7章 快速配置新主機

7.1 配置zabbix本地

server端是zabbix本地服務器  配置和其餘服務器略有不一樣
下載zabbix-agent

[root@zabbix ~]# rpm -ivhhttps://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm
[root@zabbix ~]# vim/etc/zabbix/zabbix_agentd.conf

Timeout=30  #238行  把這個取消註釋 改爲30便可  server端的 agent不須要修改server
要注意的是 server端要使用zabbix-get測試  -s 後的地址要寫127.0.0.1

[root@zabbix ~]# systemctl enablezabbix-agent.service 
[root@zabbix ~]# systemctl startzabbix-agent.service

網頁配置(server端有zabbix配置好的 只須要啓用便可)

server端有已經配好的兩個模板 只須要把TCP和內存的模板套用便可
(還須要把agent的conf文件從web服務器拉過來)


把agent裏的conf配置文件都拉過來

[root@zabbix ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/

重啓一下agent服務

[root@zabbix ~]# systemctl restartzabbix-agent.service

7.2 其餘agent端

以db01配置爲例  (其實除server端 其餘配置除了IP地址都是同樣的)

[root@db01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.14-1.el7.x86_64.rpm

修改agent配置文件  server指向的IP地址是必需要修改的

[root@db01 ~]# vim /etc/zabbix/zabbix_agentd.conf    #如下是修改後的內容
Server=172.16.1.71    
Timeout=30

啓動服務並加入開機自啓動

[root@db01 ~]# systemctl enablezabbix-agent.service 
[root@db01 ~]# systemctl startzabbix-agent.service

而後進入網頁添加

添加模板  直接套用 (這就是建立模板的好處之一  能夠直接套用)

把配置文件拉過來  而後重啓agent

[root@db01 ~]# scp -rproot@172.16.1.7:/etc/zabbix/zabbix_agentd.d/* /etc/zabbix/zabbix_agentd.d/
[root@db01 ~]# systemctl restartzabbix-agent.service

檢查如圖兩處 能夠看出是否有錯誤 下圖已配置完成

第8章 自定義圖形配置

8.1 聚合圖形配置

聚合圖形有助於觀察

點擊名稱 能夠進入編輯或查看

點擊編輯 增長圖片

此處就像是表格 增長行和列 點擊更改就能夠增長圖片

點擊圖片能夠選擇圖片  右上角能夠選擇羣組(羣組就是主機)

下圖就是增長完的內容  修改已存在的圖片也是點擊更改新增也同樣

8.2 幻燈片配置

幻燈片通常是在聚合圖形的基礎上配置
將聚合圖形改成幻燈片便可編輯幻燈片

若是隻有一個聚合圖形 是不須要幻燈片的

點擊添加便可  延遲時間就是圖片更改時間

8.3 安裝圖形樹

1.安裝graphtree

[root@zabbix ~]# cd /usr/share/zabbix
[root@zabbix zabbix]# wget https://raw.githubusercontent.com/OneOaaS/graphtrees/master/graphtree3.0.4.patch

2.導入補丁包

[root@zabbix zabbix]# yum install -y patch
[root@zabbix zabbix]# patch  -Np0 <graphtree3.0.4.patch
[root@zabbix zabbix]# chown -R apache.apacheoneoaas

3.新增Apache配置文件

[root@zabbix zabbix]# vim/etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix
Alias /oneoaas /usr/share/zabbix/oneoaas

4.重啓httpd服務

[root@zabbix zabbix]# systemctl restart httpd

第9章 拆分數據庫

9.1 拆分配置過程

LAP+MySQL架構(修改以下兩個文件中鏈接數據庫的配置信息)
將zabbix數據庫拆分到db01上
要修改如下兩個文件的內容

[root@zabbix ~]#  ll /etc/zabbix/zabbix_server.conf
[root@zabbix ~]#  ll /etc/zabbix/web/zabbix.conf.php

1.在新的數據庫上建立zabbix庫

[root@db01 ~]# mysql -uroot -pNfsnobody123.com
mysql> create database zabbix character setutf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* tozabbix@'%' identified by 'Nfsnobody123.com'; 
#到此處會提示權限過大 不用理會

2.在舊的zabbix服務器上備份數據庫文件,而後倒至新的數據庫

[root@zabbix ~]#  mysqldump -uroot \
--databases zabbix \
--single-transaction > `date +%F%H`-zabbix.sql
[root@zabbix ~]#  cat 2018-08-2017-zabbix.sql |mysql -h10.0.0.51 -uzabbix -pNfsnobody123.com zabbix

3.修改zabbixServer的數據庫鏈接信息

[root@zabbix ~]#  vim /etc/zabbix/zabbix_server.conf   這是修改後的內容
DBHost=172.16.1.51
DBName=zabbix
DBUser=zabbix
DBPassword=Nfsnobody123.com
[root@m01 ~]# systemctl restart zabbix-server    修改後須要重啓

4.修改zabbixWeb鏈接數據庫信息   

[root@m01 ~]# vim /etc/zabbix/web/zabbix.conf.php   修改後以下圖
$DB['TYPE']= 'MYSQL';
$DB['SERVER']= '172.16.1.51';
$DB['PORT']= '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'Nfsnobody123.com';
[root@m01 ~]# systemctl restart httpd

9.2 錯誤案例

如出現以下錯誤:請檢查數據庫是否容許遠程鏈接,對應的帳戶和密碼是否配置錯誤

[root@m01 ~]# tail -f/var/log/zabbix/zabbix_server.log
 2189:20180820:173636.941 [Z3001] connection todatabase 'zabbix' failed: [2003] Can't connect to MySQL server on '172.16.1.51'(111)
相關文章
相關標籤/搜索