亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5733 | 回復: 5
打印 上一主題 下一主題

[文本處理] 把匹配的行輸出給變量 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-08-06 12:26 |只看該作者 |倒序瀏覽
本帖最后由 alonerhu 于 2013-08-06 12:28 編輯

把監(jiān)控程序從nrpe換成nsca后,受控端要主動發(fā)送數(shù)據(jù)。為了減少修改,寫了個腳本直接讀取原來的nrpe.cfg,執(zhí)行命令后輸出合適nsca的格式
現(xiàn)在有個行處理的問題:
初步輸出如下:

  1. check_users
  2. USERS OK - 1 users currently logged in |users=1;10;20;0
  3. 0
  4. check_load
  5. OK - load average: 0.15, 0.13, 0.10|load1=0.150;15.000;30.000;0; load5=0.130;10.000;25.000;0; load15=0.100;5.000;20.000;0;
  6. 0
  7. check_disk_all
  8. DISK OK| /=845MB;3100;3487;0;3875 /opt=11329MB;23009;21798;0;24221 /var=1558MB;3100;3487;0;3875 /usr=5312MB;6200;6975;0;7750 /dev/shm=0MB;759;854;0;949 /mnt/itsupp=201934MB;241904;272142;0;302380 /var/ftp/pub/yum=201934MB;241904;272142;0;302380
  9. 0
  10. check_zombie_procs
  11. PROCS OK: 1 process with STATE = Z
  12. 0
復制代碼
要交給nsca發(fā)送就要整理成整行,格式要求四個值用tab相隔,如這樣子:
  1. "hostname"\t"check_users"\t"0"\t"USERS OK - 1 users currently logged in |users=1;10;20;0"
復制代碼
可否直接從這個文件讀取,把整行賦值給變量,構成:
  1. "HOSTNAME"\t"$CHECK_NAME"\t"$CHECK_STATUS"\t"$CHECK_OUTPUT"
復制代碼
其中CHECK_NAME都是check_開頭的

PS:我現(xiàn)在用的辦法很笨拙,笨到我自己都覺得不好意思
1. 先把上面的結果按3行(check_開頭)合并成一行,輸出到新文本
  1. awk '/check_[a-z]*/{if (x)print x;x="";}{x=(!x)?$0:x" "$0;}END{print x;}' $COMMAND_RESULT > $COMMAND_RESULT.1
復制代碼
2. 再反過來,逐行讀取新文本分解成三個部分分別賦值
  1. cat $COMMAND_RESULT.1 | while read RESULT
  2. do
  3.     CHECK_NAME=`echo $RESULT | awk '{print $1}'`
  4.     CHECK_STATUS=`echo $RESULT | awk '{print $NF}'`
  5.     CHECK_OUTPUT=`echo $RESULT | awk '{$1="";$NF="";print}'`
  6.     echo -e "$HOSTNAME\t$CHECK_NAME\t$CHECK_STATUS\t$CHECK_OUTPUT" | $SENDER -c $CONFIG -H $NAGIOS > /dev/null
  7. done
復制代碼

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大;照
日期:2013-04-17 11:48:45
2 [報告]
發(fā)表于 2013-08-06 12:33 |只看該作者
本帖最后由 rdcwayx 于 2013-08-06 14:34 編輯

辦法笨沒關系。先理解一下啥是 NRPE, NSCA

NRPE
NRPE is an addon that allows you to execute plugins on remote Linux/Unix hosts. This is useful if you need to monitor local resources/attributes like disk usage, CPU load, memory usage, etc. on a remote host. Similiar functionality can be accomplished by using the check_by_ssh plugin, although it can impose a higher CPU load on the monitoring machine - especially if you are monitoring hundreds or thousands of hosts.

The NRPE addon can be found on Nagios Exchange.

NSCA
NSCA is an addon that allows you to send passive check results from remote Linux/Unix hosts to the Nagios daemon running on the monitoring server. This is very useful in distributed and redundant/failover monitoring setups.

The NSCA addon can be found on Nagios Exchange.

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大;照
日期:2013-04-17 11:48:45
3 [報告]
發(fā)表于 2013-08-06 12:44 |只看該作者
本帖最后由 rdcwayx 于 2013-08-06 14:47 編輯

  1. HOST=`hostname`
  2. awk -v host=$HOST 'BEGIN{RS="check_";FS="\n"}NR>1{print host, RS $1,$3,$2}' OFS="\t" $COMMAND_RESULT

  3. hostname       check_users     0       USERS OK - 1 users currently logged in |users=1;10;20;0
  4. hostname       check_load      0       OK - load average: 0.15, 0.13, 0.10|load1=0.150;15.000;30.000;0; load5=0.130;10.000;25.000;0; load15=0.100;5.000;20.000;0;
  5. hostname       check_disk_all  0       DISK OK| /=845MB;3100;3487;0;3875 /opt=11329MB;23009;21798;0;24221 /var=1558MB;3100;3487;0;3875 /usr=5312MB;6200;6975;0;7750 /dev/shm=0MB;759;854;0;949 /mnt/itsupp=201934MB;241904;272142;0;302380 /var/ftp/pub/yum=201934MB;241904;272142;0;302380
  6. hostname       check_zombie_procs      0       PROCS OK: 1 process with STATE = Z

復制代碼

論壇徽章:
0
4 [報告]
發(fā)表于 2013-08-08 09:39 |只看該作者
多謝版主指點

我把nrpe換成nsca就是為了減輕nagios/icinga服務器端的負載

不過這里又有個新的問題:
我最終需要的還是成行的輸出給send_nsca這個程序,如果不用以前的辦法(輸出到文件,循環(huán)讀取行),是不是可以直接用awk把一行的結果輸出到send_nsca

論壇徽章:
15
2015年辭舊歲徽章
日期:2015-03-03 16:54:15雙魚座
日期:2015-01-15 17:29:44午馬
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉雞
日期:2014-04-02 12:24:51雙子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥豬
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
5 [報告]
發(fā)表于 2013-08-08 10:19 |只看該作者
是要這樣嗎?
  1. awk -v host=$HOST 'BEGIN{RS="check_";FS="\n"}NR>1{print host, RS $1,$3,$2}' OFS="\t" $COMMAND_RESULT |send_nsca
復制代碼
還是這樣:
  1. awk -v host=$HOST 'BEGIN{RS="check_";FS="\n"}NR>1{print host, RS $1,$3,$2}' OFS="\t" $COMMAND_RESULT |xargs send_nasca
復制代碼

論壇徽章:
0
6 [報告]
發(fā)表于 2013-08-08 10:27 |只看該作者
本帖最后由 alonerhu 于 2013-08-08 14:15 編輯

版主好熱情
我剛才也是這樣子測試了下,似乎有點問題,現(xiàn)在有點別的事,等會我再試試看
  1. awk -v host=$HOST 'BEGIN{RS="check_";FS="\n"}NR>1{print host, RS $1,$3,$2}' OFS="\t" /tmp/nrpe_checks.result | /usr/sbin/send_nsca -c /etc/nagios/send_nsca.cfg -H 192.168.10.63
復制代碼
這時候返回結果是:
21 data packet(s) sent to host successfully.
看起來是正確的
實際上服務器那邊沒有收到。

看來還是需要echo把處理結果發(fā)送給send_nsca,有點困惑,后面在慢慢測試。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP