zabbix實戰之httpd(一)

一.本人實驗環境

前提是已經安裝好zabbix,能夠在web界面登陸:http://192.168.239.128/zabbix/html

  192.168.239.128 zabbix-serverweb

  192.168.239.141 zabbix-agent(安裝httpd服務,yum install -y httpd,後面要用到因此提早準備好)shell

二.實驗步驟

2.1 在zabbix的web主界面中,點擊Configuration,下面有Hosts,你能夠點擊Create host,把192.168.239.141添加到主機中,也能夠經過自動發現,自動註冊也能夠添加上來。vim

2.2 爲agent主機192.168.239.141添加applications(至關因而item的集合,能夠對監控項進行分類監控),隨後建立Items,以下圖所示。這裏注意的問題是Key很關鍵(附上參考博客https://www.cnblogs.com/losbyday/articles/5836688.html)
服務器

 

2.3 添加觸發器,讓觸發器表達式的最近一次查詢數據爲0時,觸發報警。app

2.4 建立Graph圖形,方便檢測,主要是由於item項key,是布爾值,1表示httpd服務正常,0表示httpd已經中止工具

2.5 由於要發送報警(涉及到Media tyep那種類型,那個用戶User,還有動做),還要設置Media type,這裏我以QQ郵箱爲主,發送報警,還能夠設置爲腳本報警。SMTP server:填QQ的SMTP服務器地址,端口是465,認證選擇爲SSL/TLS,用戶名填寫郵箱地址,Password填寫受權碼,不是本身的郵箱密碼,別填錯了,還要在QQ郵箱開啓那倆個服務,POP3/SMTP服務,IMAP/SMTP服務 。確保已經開啓測試

 

2.6 建立一個新用戶,用以發送郵件,還應該注意權限問題,我就是卡在了權限上,致使郵箱收不到郵件,以後測試過驗證了把權限換成其餘權限,沒法成功發送郵件。spa

2.7 建立動做actions,發送報警郵件,以及故障接觸時發送郵件。.net

 2.8 能夠模擬一個場景,在agent端192.168.239.141機器上,手動把httpd服務停掉,就會觸發報警,等待幾分鐘後,而後又手動重啓。能夠收到兩封郵件。

  出問題是發的郵件

  

  問題解決時發的郵件

  

結束語:到這裏郵件發送就結束了(看你是否能夠發送成功)

還有一個方式是CentOS7 Zabbix郵件報警,經過QQ郵件發送郵件的問題解決方案

第二種方式是以寫腳本的方式發送郵件

如何經過shell腳本實現zabbix發送告警郵件,共有5步

1.設置mailx帳號:是配置mailx的發信帳號
2.zabbix服務器端編寫郵件發送腳本:是增長zabbix的告警方式,增長經過sendmail.sh腳本方式調用mailx工具
3.zabbix後臺配置shell郵件告警方式:是配置zabbix的告警方式,經過郵箱、短信、仍是腳本方式等
4.配置用戶的郵箱地址:是配置誰來接收告警郵件
5.定義action:是達到觸發條件時,誰接收告警郵件、經過怎樣的告警方式

網上都是設置的網易郵箱,我就拿QQ郵箱來實驗,由於在博客上看到說QQ郵箱限制比較大,網上截圖以下:

參考博客:https://blog.csdn.net/liangpingguo/article/details/79804285

我本身親自試過

這是我mail.rc中的添加的幾行

  set nss-config-dir=/etc/pki/nssdb/

  set smtp-user-starttls

  set ssl-verify=ignore
  set from=1165656776@qq.com
  set smtp=smtps://smtp.qq.com:465
  set smtp-auth-user=1165656776@qq.com
  set smtp-auth-password=*******(填你本身生成的驗證碼)
  set smtp-auth=login

試着給本身發下郵件看是否成功

[root@zabbix-server alertscripts]# mail -v -s "theme" 1165656776@qq.com
nihao
eot    ctrl +d鍵結束 

 

EOT

Resolving host smtp.qq.com . . . done.
Connecting to 14.17.57.241:465 . . . connected.
Comparing DNS name: "pop.qq.com"
Comparing DNS name: "dav.qq.com"
Comparing DNS name: "ex.qq.com"
Comparing DNS name: "smtp.qq.com"
SSL parameters: cipher=AES-128, keysize=128, secretkeysize=128,
issuer=CN=GeoTrust RSA CA 2018,OU=www.digicert.com,O=DigiCert Inc,C=US
subject=CN=pop.qq.com,OU=R&D,O=Tencent Technology (Shenzhen) Company Limited,L=Shenzhen,ST=Guangdong,C=CN
220 smtp.qq.com Esmtp QQ Mail Server
>>> EHLO zabbix-server
250-smtp.qq.com
250-PIPELINING
250-SIZE 73400320
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
>>> AUTH LOGIN
334 VXNlcm5hbWU6
>>> MTE2NTY1Njc3NkBxcS5jb20=
334 UGFzc3dvcmQ6
>>> ZXZmenRicnVqeXR4aWVhZw==
235 Authentication successful
>>> MAIL FROM:<1165656776@qq.com>
250 Ok
>>> RCPT TO:<1165656776@qq.com>
250 Ok
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Ok: queued as
>>> QUIT
221 Bye

 成功發送,郵件裏多一封,因此證實能夠實現,很成功。

 

2.寫腳本,首先進入到zabbix默認放腳本的地方 cd  /usr/lib/zabbix/alertscripts

  建立一個shell腳本,名稱爲sendmail.sh,內容可參考上面的博客

 更改屬主及賦予可執行權限

 測試郵件發送腳本

  ok,很完美,成功。

而後在zabbix的文本界面

Administration–>Media types–>Create media type: 
管理–>報警媒介類型–>建立媒體類型 ,建立完成,指定用戶,動做。跟上面同樣。

 

三.遠程執行命令

3.1首先咱們須要在zabbix客戶配置文件開啓對遠程命令的支持,編輯zabbix_agentd.conf,修改

  EnableRemoteCommands=1

  重啓客戶端

  備註:Aive zabbix不支持遠程命令

  確保你的zabbix用戶有執行權限,若是某些命令須要root權限,那麼請使用sudo

  修改zabbix用戶的執行權限

  # visudo或者 vim /etc/sudoers

  zabbix ALL=NOPASSWD:ALL(成功實現)可是由於個人httpd服務是yum安裝的,因此這塊我寫的給它全部的權限。

  zabbix ALL=NOPASSWD:/etc/init.d/httpd start(個人沒有實現,下來我在研究研究),大家能夠試試

  能夠提早在server端能夠測試    

中間出現報錯,百度查了下問題解決。參考博客:https://www.cnblogs.com/cainiaoit/p/8631813.html

大致意思是經過ps -ef | grep zabbix_agentd,查到相關進程,殺掉kill -9 PID號,重啓zabbix_agent服務。ok問題解決,能夠經過zabbix_get 命令測試,看是否能夠查詢到agent的數據。

 

能夠在agent端測試,嘗試手動關閉httpd服務,看是否可使用配置的遠程命令自動啓動起來。

 

在生產環境中,這種案例比較多,能夠先使用遠程命令嘗試啓動服務或者其餘命令,若是問題真的解決不了,能夠發報警,人工干預解決問題。 

相關文章
相關標籤/搜索