More Related Content
PDF
PDF
すごいVimでhaskellを書こう@なごやまつり PDF
20130412 titanium meetupvol7 PDF
Assembly Tanka on Web - Aiko Kenji PDF
PDF
PPTX
PPT
What's hot
PDF
PDF
ODP
Programming camp Codereading PDF
BuddyPressの導入からカスタマイズまでの日記5 PDF
Imas hackathon 2019_gotch ODP
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2 Viewers also liked
PDF
PDF
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析 PDF
AWS Black Belt Online Seminar 2016 Amazon Kinesis PPT
PPTX
Keeping Track of Deadlines PDF
Home move box survey & demographic results 2014[1] PDF
PPTX
Programs & Services Training: Homesale Center PPTX
Rfid pengendali bbm bersubsidi PPT
User Thoughts Approval Process V001 PPTX
PPT
PDF
PPTX
How to Build a Business for the Long Haul PPT
PDF
Prudential Real Estate Outlook Survey (2nd Quarter 2012) PPTX
Building & Nurturing Your Database PDF
Rodan & Fields Prescription for Success PDF
Referral Groups - Member Quick Start Guide PPSX
Similar to Mon, Muninによる楽々監視生活
PPTX
PPTX
PDF
Munin manager - monitering casual talk #2 PPT
PDF
PPTX
PPT
PPT
PDF
PPT
PPT
PDF
PDF
PDF
4/22 技術書典4 か-16「ふぃーるどのーつ」 新刊「すいーとみゅーじっく vol.5Mackerelではじめるお手軽サーバー監視」サンプル版 PDF
KEY
PDF
Serf2Excel - Serf を実運用に活かす話 + Consul もあるよ PDF
PDF
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた PPTX
More from Akihiro Kuwano
PDF
PDF
PDF
PDF
PDF
PDF
PPTX
PDF
PDF
PDF
PDF
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴 PDF
PDF
アメーバピグにおける自作サーバ運用それからどうなった PDF
PDF
PDF
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。 PDF
PDF
PDF
PDF
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮) Mon, Muninによる楽々監視生活
- 1.
- 2.
- 3.
- 4.
自己紹介 桑野 章弘 id:akuwano twitter: @kuwa_tw 渋谷で働く IT 企業 インフラエンジニア 最近は自分でも何やってんのかわからなくなってきた 趣味は最近はスマートフォンかな? NexusOne を持っておりますが、 iPhone ユーザとアイデンティティを戦わせたりするのが好きです。 - 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
munin とは perlベースでかかれた監視ツール(カラスの意味らしいです) データ取得は cron で一定期間毎に polling する形式(デフォルト 5 分) - 18.
- 19.
- 20.
- 21.
インストール パッケージで簡単 このさいRPMforge 使いましょうw Debian 系は APT で OK ##### サーバインストール # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt # rpm -ihv http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.5.1-1.el5.rf.x86_64.rpm # yum update # yum install munin.noarch ##### クライアントインストール # yum install munin-node.noarch ##### サーバインストール (debian/ubuntu) # aptitude install munin ##### クライアントインストール (debian/ubuntu) # aptitude install munin-node - 22.
設定 [ サーバ側] 取得先のサーバ(エージェントが動いてるサーバ)を記述するだけで簡単 処理が多い時は [max_processes] もいじるといいよ vi /etc/munin/munin.conf (snip) ### データ取得先サーバの設定 ### ### db server ### [db.example.com;hoge-db01] address 192.168.0.11 use_node_name yes [db.example.com;hoge-db02] address 192.168.0.12 use_node_name yes グループ名 ホスト名 IP アドレス - 23.
設定 [ クライアント側] エージェントを起動するだけでアラ簡単! でも取得データを増やしたい場合は /etc/munin/plugins にスクリプトおいて、 /etc/munin/ plugin-conf.d/ にスクリプト毎の設定をおきましょう vi /etc/munin/munin-node.conf (snip) ### Munin サーバの IP 許可設定 ### allow ^192\.168\.0\.10$ ### 取得データの変更 MySQL 関連のパラメータを取得したい ### # ln –s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes cat <<‘EOF’ > plugin-conf.d/mysql [mysql*] env.mysqladmin /usr/bin/mysqladmin env.mysqlopts -udbadmin -h127.0.0.1 EOF ### エージェント起動 ### /etc/init.d/munin-node start - 24.
- 25.
独自スクリプト #!/bin/bash MeasurementMode=min#MeasurementMode=sec DATE=`date +%Y-%m-%d` LOG_FILE="/usr/local/tomcat/logs/hoge.log" GREP_TEXT_E="ERROR" GREP_TEXT_W="WARN" TARGET_MINUTE=`LANG=C date +%H:%M --date '1 minutes ago'` TARGET_SECOND=`LANG=C date +%H:%M:%S --date '1 minutes ago'` ECHO=/bin/echo GREP=/bin/grep WC=/usr/bin/wc TAIL=/usr/bin/tail CAT=/bin/cat - 26.
独自スクリプト if ["$1" == "config" ]; then $ECHO "graph_title log exception count $LOG_FILE"; $ECHO "graph_vlabel request /$MeasurementMode"; $ECHO "graph_category ExceptionCount"; $ECHO "graph_order ERROR WARN"; $ECHO "ERROR.label ERROR*100"; $ECHO "ERROR.min 0"; $ECHO "ERROR.max 1000"; $ECHO "ERROR.draw AREA"; $ECHO "WARN.label WARN"; $ECHO "WARN.min 0"; $ECHO "WARN.max 1000"; $ECHO "WARN.draw STACK"; exit 0; fi - 27.
独自スクリプト if ["$MeasurementMode" == "min" ]; then TARGET_BETWEEN_TIME=$TARGET_MINUTE TAIL_LINE_CNT=10000 else TARGET_BETWEEN_TIME=$TARGET_SECOND TAIL_LINE_CNT=1000 fi count=`$TAIL -n $TAIL_LINE_CNT $LOG_FILE | $GREP "$TARGET_BETWEEN_TIME" | $GREP "$GREP_TEXT_E" | $WC -l` $ECHO $GREP_TEXT_E.value $(($count*100)) count=`$TAIL -n $TAIL_LINE_CNT $LOG_FILE | $GREP "$TARGET_BETWEEN_TIME" | $GREP "$GREP_TEXT_W" | $WC -l` $ECHO $GREP_TEXT_W.value $count - 28.
- 29.
mon とは perlベースでかかれた監視ツール( Service Monitoring Daemon ) Unisys の人が作ってたみたいだけど更新は止まってる模様 えーと、間違えました、枯れてます - 30.
- 31.
- 32.
設定 [ サーバ側] [mon.cf] に取得先のサーバを記述するだけで簡単 #################################################################### # 監視先サーバの設定 #################################################################### hostgroup hoge-www-servers 192.168.0.10 192.168.0.11 192.168.0.12 hostgroup fuga-db-servers 192.168.0.11 192.168.0.12 - 33.
設定 [ サーバ側] [mon.cf] に取得先のサーバを記述するだけで簡単 #################################################################### # サービス監視の設定 #################################################################### watch hoge-servers service ping interval 10s monitor fping.monitor period wd {Sun-Sat} alertevery 3m alertafter 18 3m alert mail.alert -f alert@example.com hoge-alert@example.com upalert mail.alert -f alert@example.com -S “TITLE" -u hoge-alert@example.com service http interval 3m monitor http.monitor -p 80 -u "/url/check.html" allow_empty_group period wd {Sun-Sat} alertevery 9m alertafter 3 9m alert apache_tomcat-restart.alert alert mail.alert -f alert@example.com hoge-alert@example.com upalert mail.alert -f alert@example.com -S “TITLE" -u hoge-alert@example.com - 34.
- 35.
運用 Web のコンソール[mon.cgi] CLI インターフェース [moncmd/monshow] Monitor スクリプト Alert スクリプト - 36.
- 37.
- 38.
monshow CLI インターフェース [moncmd] mon.cgi でやれることを CLI でも出来ます。 設定の確認や、現在のステータス確認 - 39.
CLI インターフェース [moncmd/monshow] CLI インターフェース [monshow] # /usr/local/mon/clients/monshow --full server: localhost time: Thu May 20 11:38:30 2010 state: scheduler running GROUP SERVICE STATUS LAST NEXT ALERTS SUMMARY R hoge-w-both-mys load_average untested untested 7s none R hoge-w-both-bat hoge-w-both- - 10s 1s none R hoge-both-info- df_check_80 - 79s 00:28:24 none R hoge-both-info- df_check_90 - 00:01:55 00:27:48 none R hoge-c-both-mys hoge-c-both- - 00:01:53 00:01:06 none R hoge-c-pc-info- hoge-c-pc-cr - 7s 4s none R hoge-c-both-net hoge-c-both- - 7s 4s none R hoge-w-both-api hoge-w-both- - 10s 1s none R hoge-both-batch df_check_80 - 64s 00:28:37 none R hoge-both-batch df_check_90 - 00:01:37 00:28:06 none R hoge-w-both-mys hoge-w-both- - 00:02:13 46s none R hoge-w-both-nod hoge-w-both- - 7s 4s none R hoge-w-both-com ntp - 00:01:52 00:27:51 none R hoge-both-chat- df_check_80 - 70s 00:28:31 none - 40.
CLI インターフェース [moncmd/monshow] CLI インターフェース [moncmd] mon.cgi でやれることを CLI でも出来ます。 config のチェック config の確認 監視の有効・無効 監視項目のテスト リリーススクリプトに組み込むと便利です - 41.
moncmd ##### config チェック # /usr/local/mon/clients/moncmd test config 220 test config completed OK, no errors found ##### チェック 監視(有効 / 無効) # /usr/local/mon/clients/moncmd (enable|disable) service "group" "service“ # /usr/local/mon/clients/moncmd (enable|disable) watch "watch“ # /usr/local/mon/clients/moncmd (enable|disable) host “host“ ##### 現監視項目のリスト # /usr/local/mon/clients/moncmd list watch hoge-servers ping hoge-servers http - 42.
- 43.
Monitor スクリプト #!/bin/sh#MYSQL MYSQL_USER=‘dbcheck’' MYSQL_PASSWORD=‘hogehoge' MYSQL_BASE='/usr/bin/mysql' MYSQL_COMMAND='SHOW SLAVE STATUS\G' MYSQL_GREP='Seconds_Behind_Master' RET='' ## HOST CHECK LOOP for host in "$@" do #EXEC RET=`"${MYSQL_BASE}" -h "$host" -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e "${MYSQL_COMMAND}"|grep ${MYSQL_GREP}|awk '{print $2}'` #RET CHECK if [ "${RET}" != 0 ] then if [ "$failed" = "" ] then failed="$host:${RET}" else failed="$failed $host:${RET}" fi fi done ## ERROR CHECK if [ "$failed" != "" ] then echo "$failed" echo "${MYSQL_GREP}:$failed" exit 1 fi # OK RETURN exit 0 - 44.
- 45.
Alert スクリプト #!/usr/bin/perluse Getopt::Std; getopts ("s:g:h:t:l:u"); $summary=<STDIN>; chomp $summary; $t = localtime($opt_t); ($wday,$mon,$day,$tm) = split (/\s+/, $t); print <<EOF; アラート送信 グループ : $opt_g, サービス $opt_s EOF print " アップアラートはこっち \n" if ($opt_u); print <<EOF; 障害時間 $wday $mon $day $tm 障害サマリ : $summary EOF - 46.
- 47.
mon とか muninて結構簡単 恐らく OSS の監視アプリの中でも 1 、 2 を争うくらい簡単 でも作りこみによっては細かく設定できます 大規模になってくると問題はありますけど、、、 既にやってますしw なんとかなります。 お手軽監視に Munin と mon はいかがでしょうか! - 48.
- 49.
Editor's Notes
- #9 Spider Storage Engine はおいておくw
- #10 Spider Storage Engine はおいておくw
- #21 Spider Storage Engine はおいておくw
- #22 Spider Storage Engine はおいておくw
- #23 Spider Storage Engine はおいておくw
- #24 Spider Storage Engine はおいておくw
- #25 Spider Storage Engine はおいておくw
- #26 Spider Storage Engine はおいておくw
- #27 Spider Storage Engine はおいておくw
- #28 Spider Storage Engine はおいておくw
- #30 Spider Storage Engine はおいておくw
- #31 Spider Storage Engine はおいておくw
- #32 Spider Storage Engine はおいておくw
- #33 Spider Storage Engine はおいておくw
- #34 Spider Storage Engine はおいておくw
- #35 Spider Storage Engine はおいておくw
- #36 Spider Storage Engine はおいておくw
- #37 Spider Storage Engine はおいておくw
- #38 Spider Storage Engine はおいておくw
- #39 Spider Storage Engine はおいておくw
- #40 Spider Storage Engine はおいておくw
- #41 Spider Storage Engine はおいておくw
- #42 Spider Storage Engine はおいておくw
- #43 Spider Storage Engine はおいておくw
- #44 Spider Storage Engine はおいておくw
- #45 Spider Storage Engine はおいておくw
- #46 Spider Storage Engine はおいておくw
- #48 Spider Storage Engine はおいておくw
- #49 Spider Storage Engine はおいておくw