設為首頁 收藏本站

運維網

查看: 81|回復: 0
打印 上一主題 下一主題

[經驗分享] zabbix--遠程執行命令

[復制鏈接]

累計簽到:2 天
連續簽到:1 天
跳轉到指定樓層
1#
發表于 2019-9-26 22:08:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
zabbix 遠程執行命令 重啟應用 服務器
使用遠程執行命令可以在某些時候幫我做一些事情,達到輕量級的自動化,比如當 nginx、mysql、php、redis、tomcat、等等應用掛掉時幫我們自動重啟并告警。再比如當磁盤空間滿了,自動幫我們清理垃圾日志文件等。看下官網的描述:
使用遠程命令,您可以定義在某些情況下,監視的主機上會自動執行某個預定義的命令。
在功能最明顯的用途中,您可以嘗試:
  • 如果沒有響應,則自動重新啟動某些應用程序(Web服務器,中間件,CRM)
  • 如果不響應請求,請使用IPMI“reboot”命令重新啟動一些遠程服務器
  • 如果磁盤空間不足,可自動釋放磁盤空間(刪除較舊的文件,清理/tmp)
  • 根據CPU負載,將VM從一個物理機移植到另一個物理機
  • 在CPU(磁盤,內存,任何資源)不足的情況下,將新節點添加到云環境中

遠程命令限制為255個字符。可以通過將多個命令放置在新行上來執行多個命令。遠程命令可能包含宏。
  • 如果沒有響應,則自動重新啟動某些應用程序(Web服務器,中間件,CRM)
  • 如果不響應請求,請使用IPMI“reboot”命令重新啟動一些遠程服務器
  • 如果磁盤空間不足,可自動釋放磁盤空間(刪除較舊的文件,清理/ tmp)
  • 根據CPU負載,將VM從一個物理盒移植到另一個物理盒
  • 在CPU(磁盤,內存,任何資源)不足的情況下,將新節點添加到云環境中

實戰
描述:該實戰是完全創建一個新的模板,用于專們管理日常的一些服務等,在新建的模板上面創建對應服務的監控項、觸發器、動作等。
具體步驟:
zabbix-agent端
1)根據官網提示 首先打開zabbix-agent上的 EnableRemoteCommands 參數
# vim /etc/zabbix/zabbix_agentd.confEnableRemoteCommands=1
2)創建一個腳本存放路徑
# mkdir /etc/zabbix/script
3)創建一個新的腳本
# vim /etc/zabbix/script/service_status.sh#!/bin/bash #Desc:zabbix 遠程執行命令、重啟應用 nginx、mysql、php、等#Date:2019-5-8#by:Lee-YJcase $1 in    Nginx)        result=`pidof nginx  |wc -l`        echo $result        ;;    Php)        result=`pidof php-fpm  |wc -l`        echo $result        ;;    Mysql)        result=`pidof mysqld  |wc -l`        echo $result        ;;    *)        echo "Usage:$0(Nginx|Php|Mysql)"        ;;esac
"pidof nginx  |wc -l" 這條命令用于判斷nginx進程是否存在,如果存在則返回1,不存在返回0
腳本補充說明

4)賦予腳本執行權限
# chmod +x /etc/zabbix/script/service_status.sh
5)創建一個新的專門用于服務監控的子配置文件
# cd /etc/zabbix/zabbix_agentd.d# vim userparameter_service.conf# 獲取服務運行狀態UserParameter=service.status
  • ,/etc/zabbix/script/service_status.sh $1
    6)重啟 zabbix-agent
    # service zabbix-agent restart
    7)在 zabbix-server 端用命令進行測試
    # zabbix_get -s 47.104.xx.xx -k "service.status[Nginx]"1# zabbix_get -s 47.104.xx.xx -k "service.status[Mysql]"1# zabbix_get -s 47.104.xx.xx -k "service.status[Php]"1
    當返回1時表示客戶端服務正常,當返回0時表示客戶端服務不正常(根據上面腳本內容所得)
    測試結果補充說明

    zabbix-server Web端
    1)創建一個模板 Check Service (自定義名字)
    創建完成后里面什么東西都沒有(應用集、監控項、觸發器、圖形等)
    2)創建一個應用集 service (自定義名字)
    3)創建監控項(鍵值說明,這里我們得根據配置文件里面定義的來進行配置;service.status[Nginx])
    4)創建觸發器(最新的t值說明:根據前面的命令結果判斷,pidof vsftpd  |wc -l ,如果nginx處于運行狀態該值為1,反正為0則為掛了,所以這里觸發器判斷是否為0)
    5)給監控的主機鏈接上 Check Service 模板
    6)測試;在配監控的主機上停掉nginx,后觀察儀表盤

    從上面可以看到當nginx掛掉后會第一時間發送郵件告知相關人員;但是我們更多的是希望能夠幫我們自動重啟nginx;那么接下來配置自動重啟
    7)配置動作(遠程執行命令、恢復操作等)
    進入:配置 -> 動作 -> 創建動作
    配置操作:配置操作時執行重啟命令,(注意:因為zabbix 進程是使用zabbix用戶來維護的,所以它沒有權限去執行重啟nginx命令,這里需要先在 zabbix-agent 上授權)
    # chmod 640 /etc/sudoers# vim /etc/sudoers    //編輯sudo文件,添加如下兩行# Allow 'zabbix' user to restart nginx without passwordzabbix  ALL=NOPASSWD: /etc/init.d/nginx restart
    添加恢復操作:
    到這里就配置完成了,當我在 zabbix-agent 上面停掉 nginx,便會自動幫我們重啟并發送郵件
    至此,zabbix遠程執行命令就配置完成了。

    附zabbix-agent端上的配置腳本(只針對當前配置里面的nginx、mysql、php)
    #!/bin/bash #Desc:用于配置zabbix遠程執行命令,zabbix-agent端上面的操作(包括nginx、mysql、php)#Date:2019-5-8#by:Lee-YJmkdir /etc/zabbix/script -pcat >>/etc/zabbix/script/service_status.sh<<EOF#!/bin/bash #Desc:zabbix 遠程執行命令、重啟應用 nginx、mysql、php、等#Date:2019-5-8#by:Lee-YJcase \$1 in    Nginx)        result=\`pidof nginx  |wc -l\`        echo \$result        ;;    Php)        result=\`pidof php-fpm  |wc -l\`        echo \$result        ;;    Mysql)        result=\`pidof mysqld  |wc -l\`        echo \$result        ;;    *)        echo "Usage:\$0(Nginx|Php|Mysql)"        ;;esacEOFchmod +x /etc/zabbix/script/service_status.shsed -i 's/# EnableRemoteCommands=0/EnableRemoteCommands=1/' /etc/zabbix/zabbix_agentd.confcat >/etc/zabbix/zabbix_agentd.d/userparameter_service.conf<<EOF# 獲取服務運行狀態UserParameter=service.status
  • ,/etc/zabbix/script/service_status.sh \$1EOFservice zabbix-agent restartchmod 640 /etc/sudoersecho "zabbix  ALL=NOPASSWD: /etc/init.d/nginx restart" >> /etc/sudoersecho "zabbix  ALL=NOPASSWD: /etc/init.d/mysqld restart" >> /etc/sudoersecho "zabbix  ALL=NOPASSWD: /etc/init.d/php-fpm restart" >> /etc/sudoers
    zabbix-agent_config.sh


  • +1 0

    運維網聲明 1、歡迎大家加入本站運維交流群:群②:197202523 群⑤:202807635 群⑦870801961 群⑧679858003 群⑨230483671
    2、本站所有主題由該帖子作者發表,該帖子作者與運維網享有帖子相關版權
    3、所有作品的著作權均歸原作者享有,請您和我們一樣尊重他人的著作權等合法權益。如果您對作品感到滿意,請購買正版
    4、禁止制作、復制、發布和傳播具有反動、淫穢、色情、暴力、兇殺等內容的信息,一經發現立即刪除。若您因此觸犯法律,一切后果自負,我們對此不承擔任何責任
    5、所有資源均系網友上傳或者通過網絡收集,我們僅提供一個展示、介紹、觀摩學習的平臺,我們不對其內容的準確性、可靠性、正當性、安全性、合法性等負責,亦不承擔任何法律責任
    6、所有作品僅供您個人學習、研究或欣賞,不得用于商業或者其他用途,否則,一切后果均由您自己承擔,我們對此不承擔任何法律責任
    7、如涉及侵犯版權等問題,請您及時通知我們,我們將立即采取措施予以解決
    8、聯系人Email:[email protected] 網址:www.jwvyzv.live

    所有資源均系網友上傳或者通過網絡收集,我們僅提供一個展示、介紹、觀摩學習的平臺,我們不對其承擔任何法律責任,如涉及侵犯版權等問題,請您及時通知我們,我們將立即處理,聯系人Email:[email protected],QQ:1061981298 本貼地址:http://www.jwvyzv.live/thread-977383-1-1.html 上篇帖子: zabbix微信告警配置流程 下篇帖子: 沒有了
    點擊關注更多內容
    您需要登錄后才可以回帖 登錄 | 立即注冊  

    本版積分規則  允許回帖郵件提醒樓主

    掃碼加入運維網微信交流群X

    掃碼加入運維網微信交流群

    掃描二維碼加入運維網微信交流群,最新一手資源盡在官方微信交流群!快快加入我們吧...

    掃描微信二維碼查看詳情

    客服 E-mail:[email protected]

    本站由青云提供云計算服務

    運維網--中國最專業的運維工程師交流社區

    京ICP備14039699號-1 Copyright ? 2012-2020

    使用手機軟件掃描微信二維碼

    關注我們可獲取更多熱點資訊

    Good good study day day up


    客服E-mail:[email protected] 在線客服QQ:點擊這里給我發消息


    提醒:禁止發布任何違反國家法律、法規的言論與圖片等內容;本站內容均來自個人觀點與網絡等信息,非本站認同之觀點.


    本站大部分資源是網友從網上搜集分享而來,其版權均歸原作者及其網站所有,我們尊重他人的合法權益,如有內容侵犯您的合法權益,請及時與我們聯系進行核實刪除!



    合作伙伴: 青云cloud bjyun

    快速回復 返回頂部 返回列表
    排列三近期300