Successfully reported this slideshow.
Your SlideShare is downloading. ×

Zabbixに手の届かない所は無い expect

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Shiny-Serverあれこれ
Shiny-Serverあれこれ
Loading in …3
×

Check these out next

1 of 34 Ad
Advertisement

More Related Content

Advertisement

Zabbixに手の届かない所は無い expect

  1. 1. ZABBIXに手の届かない所は無い expectで... 渡邉 隼人
  2. 2. 改めまして
  3. 3. 池田さん ご出版おめでとうございます! (拍手) Zabbix統合監視徹底活用 複雑化・大規模化する インフラの一元管理 大容量で ¥ 3,780 大好評発売中!
  4. 4. なんと! 池田先生の第1号サイン頂きました!
  5. 5. 度々 池田さんの所有物に勘違いされます
  6. 6. 改まして ZABBIXに手の届かない所は無い expectで...
  7. 7. ● 渡邉 隼人 (わたなべ はやと) ● TwitterID: @_BSmile_ ● 2児の父 ● アクアリウム(水槽いじり)やってます ● 株式会社 アーベルソフト 設立:1984年8月20日 本社:埼玉県坂戸市芦山町22-13 従業員:約40名 従業員は道産子が多いです かく言う私も道産子です
  8. 8. 本題。 ZABBIX運用環境をお話します
  9. 9. とあるお客様環境で プライベートクラウド構築を行っており SaaS・IaaSサーバ監視 Switch/UTM/Storage等等 約220台のホスト監視を行っています。
  10. 10. 突然ですが 運用監視を行っていて、次の事案が発生しました。 (専用線で接続しているオフショア、中国の問題)
  11. 11. Private Cloud 社内ネットワーク担当部門 プロバイダオフショアネットワーク 中国から 専用線接続で 日本の 開発サーバを使用し 日々業務をこなしている プロジェクトがあります ここに接続 この人が
  12. 12. Private Cloud 社内ネットワーク担当部門 プロバイダオフショアネットワーク 中国から 専用線接続で 日本の 開発サーバを使用し 日々業務をこなしている プロジェクトがあります ここに接続 この人が どこかでネットワークが切れた! プロバイダからの連絡は無い! 社内ネットワーク担当者は 打ち合わせで居ない! オフショアの開発者は 試験環境への接続を失った! 途方に暮れるオフショアユーザ!
  13. 13. オチから言うと ビル停電によりオフショアルータの設定が ロストした ↓ Ciscoルータのstartup-configに 設定入れて無かった
  14. 14. 頼みますよプロバイダさん(涙)
  15. 15. こうなったら 各担当者から連絡が来る前に こちらから報知してやろう と思いたち オフショアルータのGWへPingを飛ばしたかった が FW(Fortigate) からしかPingが飛ばない環境
  16. 16. そこで expect ですよ
  17. 17. スクリプト作成時、対話形式で実行が可能なコマンド 例) Y/Nの問いが多いパッケージソフトの設定を自 動で実行させる [expect]とは... #!/usr/bin/expect -f spawn $INSTALLER --platform-override expect "Do you agree with the terms of the software license agreement?" send "yn" expect "Install zimbra-ldap" send "n" expect "Install zimbra-logger" send "n" ※zimbraメールサーバ自動インストールの冒頭
  18. 18. Private Cloud 社内ネットワーク担当部門 プロバイダオフショアネットワーク オフショアネットワーク 監視が可能な FW(Fortigate)から Pingで監視を行い パケロス発生時の ログをzabbixが拾う expect
  19. 19. 設定はたった7項目! ちゃちゃっと10秒で説明!
  20. 20. ● /etc/zabbix/externalscripts/lan_ping.sh (1/7)ZABBIX外部スクリプトへの仕込み #! /bin/bash LOG_TEMP=$2 PJ_NAME=$3 PACKET_LIMIT=$4 if [ -e $LOG_TEMP ]; then rm -rf $LOG_TEMP fi /etc/zabbix/externalscripts/forti_ping.sh $1 $LOG_TEMP PACKETLOSS_STR=`grep "received, " $LOG_TEMP | awk -F 'received, ' '{print $NF}' | cut -d "%" -f1` PACKETLOSS=$(( PACKETLOSS_STR + 0)) if [ $(( PACKETLOSS )) -gt 30 ]; then echo "[`date +"%Y/%m/%d %H:%M:%S"`] Caution: Location [$PJ_NAME] $1 `grep " packet loss" $LOG_TEMP`" >> /var/log/zabbix/forti_ping.log fi if [ -e $LOG_TEMP ]; then rm -rf $LOG_TEMP fi
  21. 21. ● /etc/zabbix/externalscripts/forti_ping.sh (2/7)ZABBIX外部スクリプトへの仕込み #!/usr/bin/expect -f set host [lindex $argv 0] set path [lindex $argv 1] log_file "$path" spawn ssh -l pinger XXX.XXX.XXX.1 ## 相手先GW expect "password:" send "fortipasswordn" expect "fortiHostName $" send "execute ping-options repeat-count 5n" send "execute ping $hostn" send "exitn" expect "VPEXFW001 $" interact
  22. 22. (3/7)ホスト設定(ロケーション設定側) Gateway IPアドレス 監視する ロケーション名 テンポラリ ログファイル名
  23. 23. (4/7)アイテム設定(ロケーション設定側) [ キー設定 ] lan_ping.sh[“{HOST.CONN}”,”/etc/zabbix/log_tmp/{HOST.DNS}.log”,”{HOST.NAME}”]
  24. 24. (5/7)アイテム設定(ZABBIX-Server側) [ タイプ ] Zabbixエージェント(アクティブ) [ キー ] Log[/var/log/zabbix/forti_ping.log,Caution]
  25. 25. (6/7)トリガー設定(ZABBIX-Server側) [ 条件式 ] {Zabbixホスト:log[/var/log/zabbix/forti_ping.log,Caution].str(Caution)}=1
  26. 26. (7/7)アクション設定 [ アクションの実行条件 ] トリガー名 含まれる ”Loation packet loss Check Failed”
  27. 27. 飛んでくるメール 件名:【重要】【ZABBIX】ロケーション:Location Packet loss Check Failed 本文: 深刻度: PROBLEM 発生日時:2014.04.07 23:23:44 -- [2014/04/07 23:22:49] Caution: Location [PJ105L1_ 【中国】マインスイーパー開発プロジェクト] 10.1.2.22 5 packets transmitted, 2 packets received, 60% packet loss
  28. 28. 簡単ですね。
  29. 29. ZABBIXに実施させる事でのメリット 1 . 監視する方法が散在しない 2 . 拾った情報をメール送信する手間が少ない 3 . 一度流れを組んでしまえば、オフショアロケーションが   複数発生した場合でも追加が容易   (ホストの複製をし、監視するロケーションを編集する   だけで良い) 特に3番が重要で 設定を簡易化した事によるオペレータへの 引き継ぎが非常に楽
  30. 30. こんな事やってたら 約70台のSaaSサーバのindex.htmlを ZABBIX使って一括改修してくれという 依頼が来ました(汗)
  31. 31. まぁやりましたけどね。
  32. 32. ZABBIXに手の届かない所は無い expectで...
  33. 33. ZABBIXはできる子。
  34. 34. ご清聴ありがとうございました。 次回... ご要望ありましたらRasPi+ZABBIXで水槽管理

×