zabbix监控系统进阶专题篇(企业微信报警,邮箱报警,电话报警,监控数据库,监控磁盘性能)
生活随笔
收集整理的這篇文章主要介紹了
zabbix监控系统进阶专题篇(企业微信报警,邮箱报警,电话报警,监控数据库,监控磁盘性能)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一:zabbix配置文件詳解
1. zabbix-server配置文件
Zabbix 日志
默認用文件記錄,也可以發送給我們的 rsyslog 日志記錄系統,如果我們 選擇默認,則日志存放在LogFile=/var/log/zabbix/zabbix_server.log 中,也可以自己設置。日志的滾動
默認值為1,表示滾動。我們設為0則表示不滾動。當數據特別多的時候,我們 也可以設置成為1,然后在 Maximum size of log file in MB 設置當數據 文件最大到多少時會自動滾動。日志的級別
一共有6個級別。我們可以根據自己的需要來設置級別。其中0表示輸出最少的信息, 5表示輸出最詳細的信息,默認值為3,設置為3的話就表示,0、1、2、3四個級別 都顯示。考慮到生產系統中的壓力時,這里的信息,如果沒有必要的話,越簡單 越好,只要在出錯的時候,我們可以依據其進行排錯即可。數據庫相關的設置
DBHost=192.168.37.111 #數據庫對外的主機 DBName=zabbix #數據庫名稱 DBUser=zabbix #數據庫用戶 DBPassword=keer #數據庫密碼 DBPort=3306 #數據庫啟動端口zabbix監控圖形中出現亂碼解決方案
[root@zabbix-server zabbix]# cd /usr/share/zabbix/assets/fonts/ [root@zabbix-server fonts]# mv graphfont.ttf graphfont.ttf.bak 上傳新的字符集文件 [root@zabbix-server fonts]# mv simkai.ttf graphfont.ttf監控網絡流量注意的事項
監控項:
二:用戶參數(zabbix-agent)
1. 介紹
自定義用戶參數,也就是自定義key,有時,你可能想要運行一個代理檢查, 而不是Zabbix的預定義,你可以編寫一個命令來檢索需要的數據,并將其 包含在代理配置文件("UserParameter"配置參數)的用戶參數中。2. 語法格式
UserParameter=<key>,<command> A user parameter also contains a key 一個用戶參數也包含一個鍵 The key will be necessary when configuring an item 在配置監控項時, key是必需的 Note: Need to restart the agent 注意:需要重新啟動agent 服務3. 使用方法
自己需要查找的參數的命令,獲得使用的內存值 [root@zabbix-agent ~]# free | awk '/^Mem/{print $3}' 修改配置文件,把查找參數的命令設為用戶參數 [root@zabbix-agent ~]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent zabbix_agentd.d]# cat memory_usage.conf UserParameter=memory.used,free | awk '/^Mem/{print $3}' 重啟agent 服務 [root@zabbix-agent ~]# systemctl restart zabbix-agent 在zabbix-server端使用命令查詢 [root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "memory.used" 153828在監控上,設置一個item監控項,使用這個用戶參數
配置–>主機–>agent–>監控項–>創建監控項
4.用法升級
① 命令行查詢參數的命令 ② 修改配置文件,把查找參數的命令設為用戶參數 [root@zabbix-agent zabbix_agentd.d]# ls memory_usage.conf [root@zabbix-agent zabbix_agentd.d]# vim memory_usage.conf UserParameter=memory.stats[*],cat /proc/meminfo | awk '/^$1/{print $$2}' 重啟服務 [root@zabbix-agent zabbix_agentd.d]# systemctl restart zabbix-agent 注意:$$2:表示不是前邊位置參數的$1,而是awk 的參數$2 注意:$1是調用前邊的[*],位置參數,第一個參數 在zabbix-server 端,查詢使用這個用戶參數的key 傳參: [root@zabbix-server ~]#yum -y install zabbix-get [root@zabbix-server ~]#cat /proc/meminfo [root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[MemTotal]" 995684 [root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[MemFree]" 233732 [root@zabbix-server ~]# zabbix_get -s 192.168.182.129 -p 10050 -k "memory.stats[Buffers]" 2104 在監控上,設置一個item監控項,使用這個用戶參數 ① 添加Memory Total 的item監控項,使memory.stats[MemTotal]的用戶參數 ②添加Memory Free 的item監控項,使用memory.stats[MemFreel]的用戶參數 上面2個監控項的graph 圖形① memory total
② memory free
三:zabbix監控php-fpm
1. 下載安裝php-fpm
[root@zabbix-agent ~]# yum -y install php-fpm php2. php-fpm進行配置,(修改一下內容)
[root@zabbix-agent ~]# vim /etc/php-fpm.d/www.conf user = nginx 39行 group = nginx 41行 pm.status_path = /php-fpm-status #php-fpm的狀態監測頁,121行 也可以是/status ping.path = /ping #ping 接口,存活狀態是否ok,133行 ping.response = pong #響應內容pong,138行3. 啟動php-fpm
[root@zabbix-agent ~]# systemctl start php-fpm4. 安裝nginx并修改nginx配置文件,將以下的內容添加到配置文件
[root@zabbix-agent ~]# yum -y install nginx [root@zabbix-agent ~]#cd /etc/nginx [root@zabbix-agent ~]#rm -rf nginx.conf [root@zabbix-agent ~]#cp nginx.conf.default nginx.conf 打開php相關的配置,并增加一個PHP的配置 [root@zabbix-agent ~]# vim /etc/nginx/nginx.conf location ~ \.php$ {root html;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;} location ~* /(php-fpm-status|ping) {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;include fastcgi_params;access_log off;}5. 啟動nginx
[root@zabbix-agent ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [root@zabbix-agent ~]# systemctl restart nginx或者nginx -s reload6.查詢
[root@zabbix-agent nginx]# curl 192.168.182.131/php-fpm-status pool: www process manager: dynamic start time: 27/Sep/2020:16:46:32 +0800 start since: 5 accepted conn: 1 listen queue: 0 max listen queue: 0 listen queue len: 128 idle processes: 4 active processes: 1 total processes: 5 max active processes: 1 max children reached: 0 slow requests: 0 注意: pool – fpm池子名稱,大多數為www process manager – 進程管理方式,值:static, dynamic or ondemand. dynamic start time – 啟動日期,如果reload了php-fpm,時間會更新 start since – 運行時長 accepted conn – 當前池子接受的請求數 listen queue – 請求等待隊列,如果這個值不為0,要增加FPM的進程數量 max listen queue – 請求等待隊列最高的數量 listen queue len – socket等待隊列長度 idle processes – 空閑進程數量 active processes – 活躍進程數量 total processes – 總進程數量 max active processes – 最大的活躍進程數量(FPM啟動開始算) max children reached - 進程最大數量限制的次數,如果這個數量不為0,那說明你的最大進程數量太小了,請改大一點。 slow requests – 啟用了php-fpm slow-log,緩慢請求的數量7. 設置用戶參數
[root@zabbix-agent nginx]# cd /etc/zabbix/zabbix_agentd.d/ [root@zabbix-agent zabbix_agentd.d]# vim php.conf UserParameter=php_status[*],curl -s http://192.168.182.131/php-fpm-status | awk '/$1/{print $$NF}' [root@zabbix-agent zabbix_agentd.d]# systemctl restart zabbix-agent8. 在zabbix-server 端,查詢使用這個用戶參數的key
[root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "php_status[idle]" 4 [root@zabbix-server ~]# zabbix_get -s 192.168.182.131 -p 10050 -k "php_status[max active]" 19. zabbix-server的web界面展示
可以直接使用模板: http://www.blackmed.cn/zabbix/xingdian-export_templates-PHP.xml 也可以直接去進行監控項的創建四:微信報警
創建報警媒介---創建用戶---用戶關聯報警媒介---創建動作 企業微信部署---下載企業微信---創建企業---創建企業應用1. 注冊企業微信
注冊完成企業微信后,自己創建一個企業,并邀請員工到企業
2.創建部門,并在部門內添加員工
3.創建企業應用
4.搜集部門ID企業ID應用ID和秘鑰等信息(修改到下面的腳本中)
部門id=2 機器人應用id= 1000003 機器人Secret= hFHyq-dtbMGYaufaYT6fkcWW5BUp22krs_iXZRjaWRM 企業ID:ww59af41a61e5bfcf2 帳號:ChenShuai5. 準備微信腳本
把腳本放在zabbix-server服務器上,/usr/lib/zabbix/alertscripts/wechat.py#!/usr/bin/env python # -*- coding: utf-8 -*-import urllib,urllib2,json import sys reload(sys) sys.setdefaultencoding( "utf-8" ) class WeChat(object):__token_id = ''# init attributedef __init__(self,url):self.__url = url.rstrip('/')self.__corpid = 'wwf59d011ead30f194'(修改企業id)self.__secret = '4kO-TrciubxGuKfJG-WsynbGDhnjRwGX3LdZWSGN'(修改機器人secret)# Get TokenIDdef authID(self):params = {'corpid':self.__corpid, 'corpsecret':self.__secret}data = urllib.urlencode(params)content = self.getToken(data)try:self.__token_id = content['access_token']# print content['access_token']except KeyError:raise KeyError# Establish a connectiondef getToken(self,data,url_prefix='/'):url = self.__url + url_prefix + 'gettoken?'try:response = urllib2.Request(url + data)except KeyError:raise KeyErrorresult = urllib2.urlopen(response)content = json.loads(result.read())return content# Get sendmessage urldef postData(self,data,url_prefix='/'):url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_idrequest = urllib2.Request(url,data)try:result = urllib2.urlopen(request)except urllib2.HTTPError as e:if hasattr(e,'reason'):print 'reason',e.reasonelif hasattr(e,'code'):print 'code',e.codereturn 0else:content = json.loads(result.read())result.close()return content# send messagedef sendMessage(self,touser,message):self.authID()data = json.dumps({'touser':touser,'toparty':11,(修改部門id)'msgtype':"text",'agentid':"1000002",(修改機器人應用id)'text':{'content':message},'safe':"0"},ensure_ascii=False)response = self.postData(data)print responseif __name__ == '__main__':a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')a.sendMessage(sys.argv[1],sys.argv[3])6. 修改權限
[root@xingdian ~]# chmod 777 /usr/lib/zabbix/alertscripts/wechat.py [root@xingdian ~]# chown zabbix.zabbix /usr/lib/zabbix/alertscripts/wechat.py7. 測試腳本
[root@xingdian ~]# /usr/lib/zabbix/alertscripts/wechat.py ZhuangYao test test {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok. Warning: wrong json format. '} 注意:ZhuangYao是在企業微信中的用戶名,手機上收到信息說明腳本正常使用。8.在zabbix-server的dashborad界面上創建報警媒介
9.在管理員中戶中添加報警媒介
10. 創建動作,微信報警
定義操作
五:郵件報警
1.在zabbix-server端安裝軟件:
mailx (yum -y install mailx)2.配置 /etc/mail.rc
(在最后添加)注意修改自己的相關信息,復制不能有空格 set from= chen1366526727@163.com (郵箱地址) set smtp=smtp.163.com SMTP服務器 set smtp-auth-user= chen1366526727@163.com (郵箱地址) set smtp-auth-password= KGURAWFHASVHSNXY (郵箱地址授權密碼) set smtp-auth=login3.測試
方式1:mailx -s "郵件標題" 收件箱Email < 包含正文的文件 [root@zabbix-server ~]# mailx -s "ceshi" chen1366526727@163.com < /etc/passwd 方式2:cat 包含正文的文件 | mailx -s "郵件標題" 收件箱Email [root@zabbix-server ~]# cat /etc/passwd |mailx -s "hello" chen1366526727@163.com 方式3:echo "正文內容" | mailx -s "郵件標題" 收件箱Email [root@zabbix-server ~]# echo "word" | mailx -s "haha" chen1366526727@163.com4.在zabbix-server上創建發送腳本(sendmail.sh)網易郵箱的腳本
[root@zabbix-server]# cd /usr/lib/zabbix/alertscripts [root@zabbix-server alertscripts]# vim sendmail.sh echo “$3” |sed s/’\r’//g | mailx -s “$2” $1 $3是文件的正文內容,sed替換,將’\r’替換為空,$2是郵件主題,$1是郵箱地址 [root@zabbix-server alertscripts]# chmod 777 sendmail.sh [root@zabbix-server alertscripts]# chown zabbix.zabbix sendmail.sh5.在zabbix-server的web界面創建對應的報警媒介(跟企業微信一樣,就是腳本換了)
6.創建動作,讓動作關聯觸發器(觸發器需要事先創建)
7.創建用戶,讓用戶關聯報警媒介(默認我們admin用戶)
8.根據觸發器對應的監控項模擬故障產生
Systemctl stop nginx六,zabbix關聯睿象云,電話報警
1、免費注冊一個睿象云賬號,首次注冊會送幾次免費語音通話此數。
2、選擇zabbix
3、創建分派策略和通知策略
我們隨便創建一個監控項,觸發器,模擬報警產生,就會有電話通知我們產生了報警。
六:自動發現(Network Discovery )
1.介紹
網絡發現:zabbix server掃描指定網絡范圍內的主機; 網絡發現是zabbix 最具特色的功能之一,它能夠根據用戶事先定義的規則自動添加監控的 主機或服務等。2. 優點
加快Zabbix部署 簡化管理 在快速變化的環境中使用Zabbix,而不需要過度管理3. 發現方式
ip地址范圍; 可用服務(ftp, ssh, http, ...) zabbix_agent的響應;4. 網絡發現通常包含兩個階段
① discovery: Zabbix定期掃描網絡發現規則中定義的IP范圍; ② actions:網絡發現中的事件可以觸發action,從而自動執行指定的操作, 把discvery events當作前提條件; 添加/刪除主機 啟用/禁用host 向組中添加主機 移除組中的主機 從模板鏈接主機或取消鏈接5. 部署自動發現
注意:新機器 ① 安裝agent 段的包 yum -y install zabbix-agent zabbix-sender ② 設置agent 配置,可以把之前設置好的none1的配置傳過來 vim /etc/zabbix/zabbix_agentd.conf Hostname=chenshuai #只需修改hostname zabbix用戶提權 [root@zabbix-agent-none2 ~]# visudo #修改sudo的配置,添加如下信息 #Defaults !visiblepw root ALL=(ALL) ALL 92行 zabbix ALL=(ALL) NOPASSWD: ALL 93行 重啟服務 [root@zabbix-agent-none2 ~]# systemctl restart zabbix-agent設置自動發現規則discovery
配置--自動發現--創建自動發現規則 注釋:在zabbix-server端 [root@zabbix-server ~]#zabbix_get -s 192.168.182.131 -p 10050 -k "system.hostname" zabbix-agent6.自動發現成功(在檢測中查看)
7. 設置自動發現discovery 的動作action
① 設置A條件,自動發現規則=test net ② 設置B條件,自動發現狀態=up8. 添加主機到監控
c) 配置action 完成,默認是disabled 停用的,如果不是停用的,也需要 再次選擇啟動,激活一下。 d) 啟用動作,查看效果,確實已經生效,添加主機成功,模板鏈接成功 注意: 如果自己需要添加的主機已經掃描添加完成,就可以關閉網絡掃描了,因為 太耗資源。9,部署總結
1.在新服務器上部署(安裝agent sender;agent配置) 2.在zabbix-server的web界面添加自動發現規則 3.驗證,在檢測-自動發現中查看是否發現新主機 利用自動發現功能,實現對主機的監控(利用自動發現發現的主機) zabbix-server的web界面配置 1.模板: 創建一個空白模板(添加監控項,觸發器,圖形...) A:關聯已有的模板 B:手動在該模板中添加數據 2動作:條件 (IP地址,自動發現檢測) 操作:主機 主機群組 關聯模板 注意:在新的服務器(被監控的服務器)上安裝nginx(因為監控項中有對80端口的監控),安裝完成后啟動。總結 (zabbix的監控 監控內容的獲取)https://www.zabbix.com/documentation/5.0/zh/manual 基本監控流程: 主機群組--主機(自動發現)--監控項(監控項模板[官方文檔https://www.zabbix.com/]、自定義key[zabbix-agent配置])--觸發器[官方文檔https://www.zabbix.com/]--圖形 模板:系統自帶 手動創建 (平時也可使用模板對主機進行監控) 告警機制: 主機群組--主機--監控項--觸發器--報警媒介--用戶--動作 (順序可以變化,只要做到相互關聯即可) 企業微信 郵件報警 電話報警 Trigger actions:配置告警,當觸發觸發器的時候,通過配置動作,告知我們管理員,使用那種媒介都可以 Discovery actions:自動發現功能相關聯 配置了自動發現后,可以使用該動作,來完成發現主機后的操作(發送消息、添加主機、添加主機群組、發送命令、關聯模板)自動發現: 主機群組--自動發現主機--模板--動作(Discovery actions)--報警媒介--用戶--動作(Trigger actions) 能夠將自動發現的主機發送故障后,通知管理員 監控的內容: 監控訪問延遲 監控服務存活狀態(nginx、php、tomcat、es、kibana、mysql....) cpu mem disk 監控mysql主從狀態 disk I/O ..... 在企業中我們只監控有意義的數據,(怎樣去獲取監控內容)因為有自定義key 【騰訊文檔】zabbix監控數據庫mysql實戰 https://docs.qq.com/doc/DSmNRQU1qUFlPVlJw 【騰訊文檔】zabbix監控磁盤性能實戰 https://docs.qq.com/doc/DSkFGTG9Gd3d1TUtv總結
以上是生活随笔為你收集整理的zabbix监控系统进阶专题篇(企业微信报警,邮箱报警,电话报警,监控数据库,监控磁盘性能)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蚂蚁区块链平台BaaS技术解析与实践
- 下一篇: Windows10 LTSC 2021