1. <meter id="yocy0"><menu id="yocy0"></menu></meter>
    1. <var id="yocy0"><label id="yocy0"></label></var>
            <var id="yocy0"><label id="yocy0"><rt id="yocy0"></rt></label></var>

              <sub id="yocy0"><code id="yocy0"></code></sub>
              設為首頁 收藏本站

              運維網

              查看: 156|回復: 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
            1. ,/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
            2. ,/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


            3. +1 1

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

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

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

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

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

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

              掃描微信二維碼查看詳情

              客服 E-mail:kefu@iyunv.com

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

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

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

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

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

              Good good study day day up


              客服E-mail:kefu@iyunv.com 在線客服QQ:點擊這里給我發消息


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


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



              合作伙伴: 青云cloud bjyun

              快速回復 返回頂部 返回列表
              网站你懂我意思吧2019免费