中國(guó)電信股份有限公司江蘇分公司操作維護(hù)中心數(shù)據(jù)維護(hù)部 劉 菁
巧用智能化工具提升域名系統(tǒng)維護(hù)能力
中國(guó)電信股份有限公司江蘇分公司操作維護(hù)中心數(shù)據(jù)維護(hù)部 劉 菁
除DNS(域名系統(tǒng))自有的網(wǎng)絡(luò)流量監(jiān)控、服務(wù)器內(nèi)核監(jiān)控、解析監(jiān)控、服務(wù)器集群監(jiān)控外,運(yùn)用一些軟件和腳本可以提高維護(hù)效率,提升維護(hù)能力。
域名系統(tǒng);維護(hù);域名解析
DNS(域名系統(tǒng))是一個(gè)將域名和IP地址相互映射的分布式數(shù)據(jù)庫(kù),一般通過在服務(wù)器上安裝BIND(伯克利互聯(lián)網(wǎng)域名保護(hù)協(xié)議)來實(shí)現(xiàn)域名解析功能,采用anycast(任播)方式,見圖1。
除安全防護(hù)緩存系統(tǒng)的專業(yè)網(wǎng)管可對(duì)DNS服務(wù)器實(shí)現(xiàn)管理外,在日常維護(hù)中還可以利用Linux操作系統(tǒng)強(qiáng)大的功能實(shí)現(xiàn)各種個(gè)性化維護(hù)需求。
這里用到大家熟悉的一套開源的PHP(超文本預(yù)處理器)程序Cacti,我們之前用它來采集城域網(wǎng)設(shè)備的流量、CPU(中央處理器)、BAS(寬帶接入服務(wù)器)在線用戶數(shù),并利用其方便的cdef功能實(shí)現(xiàn)人均帶寬、地址池利用率等計(jì)算采集?,F(xiàn)在我們把它同樣用在bind主機(jī)的性能采集上。
在BIND主機(jī)使用命令rndc stats可以產(chǎn)生一個(gè)重要統(tǒng)計(jì)文件named.stats,在這個(gè)文件里存放了實(shí)時(shí)的DNS請(qǐng)求回應(yīng)等諸多信息,將這個(gè)文件導(dǎo)入pl模板后,就可以使用圖形化界面看到實(shí)時(shí)的BIND各種請(qǐng)求連接數(shù)如A記錄,MX記錄、響應(yīng)時(shí)延、解析成功/失敗次數(shù)等。
DNS中有數(shù)十臺(tái)BIND主機(jī),主機(jī)的日志是日常維護(hù)重點(diǎn)查看的文件之一,將各臺(tái)主機(jī)的日志遠(yuǎn)程保存Linux數(shù)據(jù)庫(kù)中,既有利于日志查看,也可避免可能的主機(jī)被入侵后歷史日志惡意刪除的情況。
遠(yuǎn)程發(fā)送日志這里不再詳述,主要利用了Linux上的syslogd進(jìn)程。
在Cacti上呈現(xiàn)日志使用了Cacti自有插件syslog,該插件實(shí)現(xiàn)IP網(wǎng)各種設(shè)備syslog的集中存儲(chǔ)與查詢功能,支持根據(jù)IP、日志等級(jí)、日志信息、時(shí)間等緯度進(jìn)行查詢、導(dǎo)出功能。
在日常維護(hù)中,使用此系統(tǒng)可根據(jù)日志等級(jí),優(yōu)先查看高等級(jí)、嚴(yán)重級(jí)別的日志,如err日志,過濾海量的info類信息,有效減輕維護(hù)人員信息檢索量,提高維護(hù)效率。
亮點(diǎn)功能:
1)多維度的日志檢索;
2)日志以mysql數(shù)據(jù)庫(kù)存放,理論上無(wú)存放限制;
3)log關(guān)鍵字提取與篩選,減輕維護(hù)人員信息檢索量;
4)host欄目可以IP形式、主機(jī)名的形式呈現(xiàn),便于查找。
Cacti還有多款插件,比如thold,可以提醒有超過/低于閥值的流量在監(jiān)控端口上。除了傳統(tǒng)的靜態(tài)閥值,還可以設(shè)置動(dòng)態(tài)閾值,當(dāng)前采集值與前5 min相比,超過/低于某個(gè)百分比發(fā)送告警;monitor,對(duì)有告警的設(shè)備調(diào)用音頻文件做提醒功能。結(jié)合thold和monitor后,告警產(chǎn)生會(huì)有聲音提示。既可把告警信息發(fā)送至指定郵箱,也可將網(wǎng)管服務(wù)器與短信平臺(tái)做接口,發(fā)送短信至包機(jī)人員的通信終端
第一步:將ps aux命令與Linux的sort排序程序結(jié)合,使用sort以第三列CPU利用率進(jìn)行降序排列。
[root@JS-WX-GM-DNS-CACHE-7liujing]# more toplog.sh
#!/bin/sh
cd /home/liujing/toplog/2014
touch toptext.txt
chmod 777 toptext.txt
ps aux│sort -n -k3 -r > /home/liujing/toplog/2014/toptext.txt
mv toptext.txt $(date –d“today”+“%Y%m%d_%H%M%S”) +top1og.txt
rm -rf toptext.txt
第二步:將排序顯示的內(nèi)容存入文件,從4∶00點(diǎn)到4∶59,每5 min執(zhí)行一次,文件名以當(dāng)前時(shí)間命名以示區(qū)別。上面。
在日常維護(hù)中碰到網(wǎng)站被黑或者域名注冊(cè)商數(shù)據(jù)庫(kù)異常,導(dǎo)致用戶域名對(duì)應(yīng)IP地址被篡改,如果能及時(shí)發(fā)現(xiàn),可通過代理應(yīng)答等預(yù)處理手段將用戶損失降到最低。
如果現(xiàn)階段沒有條件和短信平臺(tái)做接口直接發(fā)送短信,那么可以在Linux上利用shell腳本與發(fā)送郵件的mutt程序,再結(jié)合電信189郵箱的郵件短信提醒功能。比如jsinfo.net域名對(duì)應(yīng)IP為202.102.29.38,每5 min解析一次,當(dāng)發(fā)現(xiàn)解析出的地址非202.102.29.38,即發(fā)送郵件。
同時(shí)手機(jī)收到短信提醒。
從收到提示到維護(hù)人員響應(yīng)處理,全程不超過10 min,用戶網(wǎng)站訪問問題迅速解決,大幅提高用戶的滿意度。
Linux強(qiáng)大的腳本功能在檢查告警原因時(shí)也是可圈可點(diǎn)。比如在維護(hù)中,碰到這樣一個(gè)告警,每天凌晨4:30左右會(huì)提示系統(tǒng)CPU利用率高,20 min后會(huì)自動(dòng)恢復(fù)。
使用ps aux命令可以看到當(dāng)前設(shè)備上正在運(yùn)行的程序使用者、程序進(jìn)程號(hào)、CPU利用率等信息,如圖2,其中第三列為CPU利用率。
圖2 使用ps aux命令查看
[root@JS-WX-GM-DNS-CACHE-7 liujing]#crontab -1
?/5 4-4 ???sh /home/liujing/toplog.sh
第三步:將所有文件合成為一個(gè)文件后,使用head程序提取CPU值最高的top N項(xiàng)。
[root@JS-WX-GM-DNS-CACHE-7 20140627]# more 20140627.txt
root 21315 109 0.0 7616 4672 ? R 04∶31 0∶04 /usr/bin/perl /usr/share/logwa
tch/scripts/shared/onlyservice arpwatch
root 21426 99.8 0.0 7616 4672 ? R 04∶33 0∶40 /usr/bin/perl /usr/share/logwa
tch/scripts/shred/on1yservice (kernel∶)?s?audit.?
root 22678 99.2 0.0 7616 4672 ? R 04∶38 1∶03 /usr/bin/perl /usr/share/1oga
tch/script s/shared/onlyservice dhcpd
root 24826 99.1 0.5 48576 45632 ? R 04∶49 0∶29 /usr/bin/perl /usr/share/logwa
tch/scripts/services/named
找到了導(dǎo)致CPU瞬時(shí)高的進(jìn)程后,進(jìn)行優(yōu)化,問題得以解決。
DNS中一些重要的文件比如授權(quán)服務(wù)器的named.conf文件以及named文件夾,緩存服務(wù)器的ospfd.conf配置文件,相關(guān)路由器的配置文件等,根據(jù)工信部對(duì)域名系統(tǒng)的安全要求,都需要每日備份。
備份的方法有很多,這里就說兩種常用的。
方法一:寫一個(gè)VB(可視化)腳本,在SecureCRT(仿真程序)上導(dǎo)入腳本執(zhí)行備份操作。由于這篇文章主要介紹在Linux操作系統(tǒng)上使用的方法,此處不再贅述。
方法二:在Linux上使用expect程序。expect程序被廣泛應(yīng)用于交互式操作和自動(dòng)化測(cè)試的場(chǎng)景之中,尤其適用于需要對(duì)多臺(tái)服務(wù)器執(zhí)行相同操作的環(huán)境中,可以大幅度提高系統(tǒng)管理人員的工作效率。除了這里舉例的自動(dòng)備份外,亦可用在自動(dòng)化巡檢工作中。
在此基礎(chǔ)上,也可以搭建自動(dòng)備份網(wǎng)站,以http頁(yè)面呈現(xiàn),任意時(shí)間點(diǎn)備份任意設(shè)備,更加靈活,更加人性化。
將Linux種類眾多的軟件和腳本結(jié)合,打造個(gè)性化的維護(hù)IT(信息技術(shù))支撐手段,不僅適用于DNS,也適用于整個(gè)IP網(wǎng)絡(luò)的日常維護(hù)。