nagios分組出圖代碼實(shí)現(xiàn)講解[1]

一、背景

阜陽網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。

    鑒于zabbix和cacti的服務(wù)分組及圖像呈現(xiàn)功能,公司領(lǐng)導(dǎo)以業(yè)務(wù)最大化穩(wěn)定為目標(biāo)導(dǎo)向,對運(yùn)維部提出“監(jiān)控系統(tǒng)按服務(wù)分組出圖實(shí)時展現(xiàn)”的功能,運(yùn)維部屬于公司的技術(shù)保障支撐部門,面對合理的需求,只能是Yes。

 

二、需求

    監(jiān)控系統(tǒng)按服務(wù)分組出圖實(shí)時展現(xiàn)

 

三、軟件環(huán)境

[root@nagios ~]# cat /etc/redhat-release

CentOS release 6.7 (Final)

[root@nagios ~]# uname -r

2.6.32-573.el6.x86_64

lamp環(huán)境及nagios基礎(chǔ)環(huán)境的軟件版本如下圖所示:

nagios分組出圖代碼實(shí)現(xiàn)講解[1]

圖1 nagios基礎(chǔ)環(huán)境所用軟件版本

四、需求分析及實(shí)現(xiàn)

   4.1分組功能

      我們現(xiàn)在使用的監(jiān)控系統(tǒng)是nagios,眾所周知,nagios默認(rèn)是帶hosts和servers分組功能的,如下圖:

nagios分組出圖代碼實(shí)現(xiàn)講解[1]

圖2 nagios默認(rèn)的分組功能

    在此看到的分組菜單跟nagios4.1.1默認(rèn)版本稍有差別,這個界面是我們修改過的樣式,感興趣的可以試用下。

    主機(jī)分組截圖如圖3所示。

nagios分組出圖代碼實(shí)現(xiàn)講解[1]

圖3 nagios主機(jī)分組

    圖3中我們看到的分組相比修改之前多了一列(choice),不錯,這一列是如何增加的,是我們接下來要詳細(xì)講解的。

     nagios主機(jī)分組頁面和服務(wù)分組頁面是由status.cgi頁面控制的,所以我們要增加選擇列,必須修改nagios的源碼包,找到status.c文件,修改并重新編譯,然后覆蓋現(xiàn)有的status.cgi.

    4.1.1修改ngios4.1.1源碼包

[root@nagios nagios-4.1.1]# ls cgi/status.c

cgi/status.c

[root@nagios nagios-4.1.1]# vimcgi/status.c +3598   #修改3598行為如下所示

/*choice add by xuekun 2016-12-23*/

printf("<thclass='status'>choice</th>");       /*這一列是新加的,復(fù)選框列*/

printf("<thclass='status'>Host</th><th>Status</th>");

printf("<th>Services</th><thclass='status'>Actions</th>\n");

 [root@nagiosnagios-4.1.1]# vim cgi/status.c +3628   #復(fù)選框全選代碼,服務(wù)下拉菜單代碼

/*choice all Begin by xuekun 2016-12-23 */

       printf("<tr>\n");

       printf("<td>\n");

       printf("<input type=\"checkbox\"id=\"check_%s\" name=\"all_%s\"onclick=\"check_all(this,'%s')\" class=\"chec

kbox\"/>\n", hstgrp->group_name,hstgrp->group_name, hstgrp->group_name);

       printf("</td>\n");

       printf("<td>\n");

       printf("<select name='groupsrv'>\n");

       printf("<option value='Current_Load'selected=''>Load</option>\n");

       printf("<optionvalue='Disk_Partition'>Disk</option>\n");

       printf("<option value='PING'>PING</option>\n");

       printf("<optionvalue='iostat'>iostat</option>\n");

       printf("<optionvalue='Check_traffic'>traffic</option>\n");

       printf("<optionvalue='check_tcp_stat'>tcp_stat</option></select>\n");

       printf("</td>\n");

       printf("<td><input type='submit'value='View'/></td>\n");

       printf("<td></td>\n");

       printf("<td></td>\n");

       printf("</tr>\n");

       /*choice all Begin by xuekun 2016-12-23 */

    上述兩處代碼的添加,主要解決了新增復(fù)選框列和服務(wù)下拉菜單的問題,接下來我們還要通過jquery實(shí)現(xiàn)復(fù)選框的全選,代碼的實(shí)現(xiàn)在544行的document_footer函數(shù)中,遵循web設(shè)計(jì)規(guī)則,將js放在頁面的最后,提高頁面加載速度。

void document_footer(void) {

 

       if(embedded == TRUE)

                return;

 

       /* include user SSI footer */

       include_ssi_files(STATUS_CGI, SSI_FOOTER);

       printf("<script type=\"text/javascript\">\n");

       printf("function check_all(obj,flag) \n");

       printf("{var is_checked =obj.checked;\n");

       printf("var checkboxs = $(\"input[flag='\"+ flag+\"']\");\n");

       printf("console.log(is_checked);\n");

       printf("checkboxs.each(function(){\n");

       printf("var cur_box = $(this);\n");

       printf("cur_box.prop(\"checked\", is_checked);\n");

       printf("});} </script>\n");

       printf("</body>\n");

       printf("</html>\n");

 

       return;

}

以上代碼修改編寫完畢,接下來要做的就是重新編譯nagios,命令如下

[root@nagios nagios-4.1.1]# make all     #執(zhí)行make all命令重新編譯nagios

nagios編譯完畢,我們要將編譯好的status.cgi替換掉/usr/local/nagios/sbin/目錄的status.cgi,替換之前記得先將nagios停掉,具體操作如下:

[root@nagios nagios-4.1.1]# /etc/init.d/nagiosstop     #停掉nagios

[root@nagiosnagios-4.1.1]# cp /usr/local/nagios/sbin/status.cgi /home/xuekun/status.cgi_bak #備份原有文件

[root@nagios nagios-4.1.1]# /bin/cpcgi/status.cgi /usr/local/nagios/sbin/status.cgi #替換原有status.cgi

執(zhí)行完上述命令,F(xiàn)5刷新nagios 訪問頁面,然后點(diǎn)擊“hostgroup”連接,看看是不是有新發(fā)現(xiàn)了呢?。。?/p>

祝你好運(yùn)!

nagios分組出圖代碼實(shí)現(xiàn)講解[1]

新聞名稱:nagios分組出圖代碼實(shí)現(xiàn)講解[1]
分享URL:http://bm7419.com/article24/jjdgje.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、App開發(fā)搜索引擎優(yōu)化、面包屑導(dǎo)航靜態(tài)網(wǎng)站、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司