SlideShare a Scribd company logo
[object Object],  桑野 章弘
アジェンダ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
自己紹介
自己紹介 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
qpstudy 最初の一発目とか 恥ずかしいんですが、、、
はじめさせて頂きます お題は、、、
監視、、、嫌いなんです。
何が嫌いってメンドクサイ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
でもね、、、 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
と言うわけで ,[object Object],[object Object]
監視の種類
こんなのがあります ,[object Object],[object Object]
トレンドの監視 ,[object Object],[object Object],[object Object],[object Object]
障害監視 ,[object Object],[object Object],[object Object],[object Object]
こんなのでいきましょう ,[object Object],[object Object]
実際の手順 [Munin 編 ]
munin とは ,[object Object],[object Object]
Overview サーバ cron で polling クライアント群 HTML ファイル
Munin[Index]
Munin[ 日時 ]
インストール ,[object Object],[object Object],[object Object],#####  サーバインストール # 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
設定 [ サーバ側 ] ,[object Object],[object Object],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 アドレス
設定 [ クライアント側 ] ,[object Object],[object Object],vi /etc/munin/munin-node.conf (snip) ### Munin サーバの IP 許可設定  ### allow ^192168010$ ###  取得データの変更 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  
その他の運用 ,[object Object],[object Object],[object Object]
独自スクリプト #!/bin/bash MeasurementMode=min #MeasurementMode=sec DATE=`date  +%Y-%m-%d` LOG_FILE=&quot;/usr/local/tomcat/logs/hoge.log&quot; GREP_TEXT_E=&quot;ERROR&quot; GREP_TEXT_W=&quot;WARN&quot; 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
独自スクリプト if [ &quot;$1&quot; == &quot;config&quot; ]; then $ECHO &quot;graph_title log exception count $LOG_FILE&quot;; $ECHO &quot;graph_vlabel request /$MeasurementMode&quot;; $ECHO &quot;graph_category ExceptionCount&quot;; $ECHO &quot;graph_order ERROR WARN&quot;; $ECHO &quot;ERROR.label ERROR*100&quot;; $ECHO &quot;ERROR.min 0&quot;; $ECHO &quot;ERROR.max 1000&quot;; $ECHO &quot;ERROR.draw AREA&quot;; $ECHO &quot;WARN.label WARN&quot;; $ECHO &quot;WARN.min 0&quot;; $ECHO &quot;WARN.max 1000&quot;; $ECHO &quot;WARN.draw STACK&quot;; exit 0; fi
独自スクリプト if [ &quot;$MeasurementMode&quot; == &quot;min&quot; ]; 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 &quot;$TARGET_BETWEEN_TIME&quot; | $GREP &quot;$GREP_TEXT_E&quot; | $WC -l` $ECHO $GREP_TEXT_E.value $(($count*100)) count=`$TAIL -n $TAIL_LINE_CNT $LOG_FILE | $GREP &quot;$TARGET_BETWEEN_TIME&quot; | $GREP &quot;$GREP_TEXT_W&quot; | $WC -l` $ECHO $GREP_TEXT_W.value $count
実際の手順 [Mon 編 ]
mon とは ,[object Object],[object Object],[object Object]
Overview
インストール ,[object Object],##### mon のインストール # yum install mon.x86_64 ##### mon のインストール (debian/ubuntu) aptitude install mon
設定 [ サーバ側 ] ,[object Object],#################################################################### #  監視先サーバの設定 #################################################################### 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
設定 [ サーバ側 ] ,[object Object],#################################################################### #  サービス監視の設定  #################################################################### 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&quot; -u hoge-alert@example.com service http interval 3m monitor http.monitor -p 80 -u &quot;/url/check.html&quot; 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&quot; -u hoge-alert@example.com
設定 [ クライアント側 ] ,[object Object],[object Object]
運用 ,[object Object],[object Object],[object Object],[object Object]
Web のコンソール [mon.cgi] ,[object Object]
mon.cgi
monshow ,[object Object],[object Object],[object Object]
CLI  インターフェース  [moncmd/monshow] ,[object Object],# /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
CLI  インターフェース  [moncmd/monshow] ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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 &quot;group&quot; &quot;service“ # /usr/local/mon/clients/moncmd (enable|disable) watch &quot;watch“ # /usr/local/mon/clients/moncmd (enable|disable) host  “host“ #####  現監視項目のリスト # /usr/local/mon/clients/moncmd list watch hoge-servers ping hoge-servers http
Monitor スクリプト ,[object Object]
Monitor スクリプト #!/bin/sh #MYSQL MYSQL_USER=‘dbcheck’' MYSQL_PASSWORD=‘hogehoge' MYSQL_BASE='/usr/bin/mysql' MYSQL_COMMAND='SHOW SLAVE STATUS' MYSQL_GREP='Seconds_Behind_Master' RET='' ## HOST CHECK LOOP for host in &quot;$@&quot; do #EXEC RET=`&quot;${MYSQL_BASE}&quot; -h &quot;$host&quot; -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e &quot;${MYSQL_COMMAND}&quot;|grep ${MYSQL_GREP}|awk '{print $2}'` #RET CHECK if [ &quot;${RET}&quot; != 0 ] then if [ &quot;$failed&quot; = &quot;&quot; ] then failed=&quot;$host:${RET}&quot; else failed=&quot;$failed $host:${RET}&quot; fi fi done ## ERROR CHECK if [ &quot;$failed&quot; != &quot;&quot; ] then echo &quot;$failed&quot;  echo &quot;${MYSQL_GREP}:$failed&quot; exit 1 fi # OK RETURN exit 0
Alert スクリプト ,[object Object],[object Object]
Alert スクリプト #!/usr/bin/perl use Getopt::Std; getopts (&quot;s:g:h:t:l:u&quot;); $summary=<STDIN>; chomp $summary; $t = localtime($opt_t); ($wday,$mon,$day,$tm) = split (/+/, $t); print <<EOF; アラート送信 グループ : $opt_g,  サービス  $opt_s EOF print &quot; アップアラートはこっち &quot; if ($opt_u); print <<EOF; 障害時間  $wday $mon $day $tm 障害サマリ : $summary EOF
まとめ
mon とか munin て結構簡単 ,[object Object],[object Object],[object Object],[object Object],[object Object]
ざっくり説明 ,[object Object],[object Object]
ご清聴ありがとうございました

More Related Content

What's hot (6)

悔しさと憧れとあきらめなさと
悔しさと憧れとあきらめなさと悔しさと憧れとあきらめなさと
悔しさと憧れとあきらめなさと
 
Go で Munin プラグインを書いてみた
Go で Munin プラグインを書いてみたGo で Munin プラグインを書いてみた
Go で Munin プラグインを書いてみた
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
BuddyPressの導入からカスタマイズまでの日記5
BuddyPressの導入からカスタマイズまでの日記5BuddyPressの導入からカスタマイズまでの日記5
BuddyPressの導入からカスタマイズまでの日記5
 
Imas hackathon 2019_gotch
Imas hackathon 2019_gotchImas hackathon 2019_gotch
Imas hackathon 2019_gotch
 
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
etckeeperをopenSUSEの公式リポジトリに入れたいぞ! Ver.2
 

Viewers also liked

User Thoughts Approval Process V001
User Thoughts   Approval Process V001User Thoughts   Approval Process V001
User Thoughts Approval Process V001
UserThoughts.com
 
Rodan &amp; Fields Prescription for Success
Rodan &amp; Fields Prescription for SuccessRodan &amp; Fields Prescription for Success
Rodan &amp; Fields Prescription for Success
ajiracek
 

Viewers also liked (20)

WebSocketでリアルタイム通信
WebSocketでリアルタイム通信WebSocketでリアルタイム通信
WebSocketでリアルタイム通信
 
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
 
AWS Black Belt Online Seminar 2016 Amazon Kinesis
AWS Black Belt Online Seminar 2016 Amazon KinesisAWS Black Belt Online Seminar 2016 Amazon Kinesis
AWS Black Belt Online Seminar 2016 Amazon Kinesis
 
Amadeus
AmadeusAmadeus
Amadeus
 
Keeping Track of Deadlines
Keeping Track of DeadlinesKeeping Track of Deadlines
Keeping Track of Deadlines
 
Home move box survey & demographic results 2014[1]
Home move box survey & demographic results 2014[1]Home move box survey & demographic results 2014[1]
Home move box survey & demographic results 2014[1]
 
Bdavid
BdavidBdavid
Bdavid
 
Programs & Services Training: Homesale Center
Programs & Services Training:  Homesale CenterPrograms & Services Training:  Homesale Center
Programs & Services Training: Homesale Center
 
Rfid pengendali bbm bersubsidi
Rfid pengendali bbm bersubsidiRfid pengendali bbm bersubsidi
Rfid pengendali bbm bersubsidi
 
User Thoughts Approval Process V001
User Thoughts   Approval Process V001User Thoughts   Approval Process V001
User Thoughts Approval Process V001
 
Buyer Do-Over
Buyer Do-OverBuyer Do-Over
Buyer Do-Over
 
IOAについて
IOAについてIOAについて
IOAについて
 
Krystal
KrystalKrystal
Krystal
 
How to Build a Business for the Long Haul
How to Build a Business for the Long HaulHow to Build a Business for the Long Haul
How to Build a Business for the Long Haul
 
Green It
Green ItGreen It
Green It
 
Prudential Real Estate Outlook Survey (2nd Quarter 2012)
Prudential Real Estate Outlook Survey (2nd Quarter 2012)Prudential Real Estate Outlook Survey (2nd Quarter 2012)
Prudential Real Estate Outlook Survey (2nd Quarter 2012)
 
Building & Nurturing Your Database
Building & Nurturing Your DatabaseBuilding & Nurturing Your Database
Building & Nurturing Your Database
 
Rodan &amp; Fields Prescription for Success
Rodan &amp; Fields Prescription for SuccessRodan &amp; Fields Prescription for Success
Rodan &amp; Fields Prescription for Success
 
Referral Groups - Member Quick Start Guide
Referral Groups - Member Quick Start Guide Referral Groups - Member Quick Start Guide
Referral Groups - Member Quick Start Guide
 
Epa
EpaEpa
Epa
 

Similar to Mon, Muninによる楽々監視生活

Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
hiroyuki nakajima
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
Atsushi Eno
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
Shinpei Ohtani
 
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
Akihiro Kuwano
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
kyon mm
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
Gosuke Miyashita
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門
guestd4898b
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
Kentarou Mukunasi
 

Similar to Mon, Muninによる楽々監視生活 (20)

Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化Fabricによるcloud stackインストール自動化
Fabricによるcloud stackインストール自動化
 
Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009Mono at Microsoft Tech Days Japan 2009
Mono at Microsoft Tech Days Japan 2009
 
GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
 
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
 
Task Spooler を試した
Task Spooler を試したTask Spooler を試した
Task Spooler を試した
 
EmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べたEmitJSの環境をちょこっと調べた
EmitJSの環境をちょこっと調べた
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうかRe: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
Chrome DevTools.next
Chrome DevTools.nextChrome DevTools.next
Chrome DevTools.next
 
Vagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみようVagrantと網元で開発環境を作ってみよう
Vagrantと網元で開発環境を作ってみよう
 
Open Source System Administration Framework - Func
Open Source System Administration Framework - FuncOpen Source System Administration Framework - Func
Open Source System Administration Framework - Func
 
ssmjp-wireless-hack-with-macbook
ssmjp-wireless-hack-with-macbookssmjp-wireless-hack-with-macbook
ssmjp-wireless-hack-with-macbook
 
Arduino を PHP で制御する
Arduino を PHP で制御するArduino を PHP で制御する
Arduino を PHP で制御する
 
作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話作られては消えていく泡のように儚いクラスタの運用話
作られては消えていく泡のように儚いクラスタの運用話
 
Maven2 プラグイン入門
Maven2 プラグイン入門Maven2 プラグイン入門
Maven2 プラグイン入門
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 

More from Akihiro Kuwano

アメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなったアメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなった
Akihiro Kuwano
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
Akihiro Kuwano
 
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
Akihiro Kuwano
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
Akihiro Kuwano
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
Akihiro Kuwano
 
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
Akihiro Kuwano
 

More from Akihiro Kuwano (20)

今日はMongoDBの話はしない
今日はMongoDBの話はしない今日はMongoDBの話はしない
今日はMongoDBの話はしない
 
銀河レベルのLT(とは)
銀河レベルのLT(とは)銀河レベルのLT(とは)
銀河レベルのLT(とは)
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
AWSのNoSQL入門
AWSのNoSQL入門AWSのNoSQL入門
AWSのNoSQL入門
 
ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器ビックデータ最適解とAWSにおける新しい武器
ビックデータ最適解とAWSにおける新しい武器
 
MongoDBの可能性の話
MongoDBの可能性の話MongoDBの可能性の話
MongoDBの可能性の話
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)インフラエンジニアってなんでしたっけ(仮)
インフラエンジニアってなんでしたっけ(仮)
 
WiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しいWiredTigerストレージエンジン楽しい
WiredTigerストレージエンジン楽しい
 
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
NVMFS 使ってみたとか 言っちゃって マジカジュアルな奴
 
Chef環境の闇
Chef環境の闇Chef環境の闇
Chef環境の闇
 
アメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなったアメーバピグにおける自作サーバ運用それからどうなった
アメーバピグにおける自作サーバ運用それからどうなった
 
CyberAgentにおけるMongoDB
CyberAgentにおけるMongoDBCyberAgentにおけるMongoDB
CyberAgentにおけるMongoDB
 
後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜後悔しないもんごもんごの使い方 〜サーバ編〜
後悔しないもんごもんごの使い方 〜サーバ編〜
 
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
勉強会コミュニティがぼくの エンジニア人生にもたらした事。 あと、NoSQLとの付き合い方。
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
MongoDBのアレをアレする
MongoDBのアレをアレするMongoDBのアレをアレする
MongoDBのアレをアレする
 
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
やさぐれギンガさんのアーキテクチャ入門(ためしてガッテン)(仮)
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (12)

論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
論文紹介:ViTPose: Simple Vision Transformer Baselines for Human Pose Estimation
 
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
ロボットマニピュレーションの作業・動作計画 / rosjp_planning_for_robotic_manipulation_20240521
 
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
5/22 第23回 Customer系エンジニア座談会のスライド 公開用 西口瑛一
 
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
クラウド時代におけるSREとUPWARDの取組ーUPWARD株式会社 CTO門畑
 
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
論文紹介:Deep Occlusion-Aware Instance Segmentation With Overlapping BiLayers
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )Intranet Development v1.0 (TSG LIVE! 12 LT )
Intranet Development v1.0 (TSG LIVE! 12 LT )
 
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
部内勉強会(IT用語ざっくり学習) 実施日:2024年5月17日(金) 対象者:営業部社員
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 

Mon, Muninによる楽々監視生活

  • 1.
  • 2.
  • 4.
  • 8.
  • 9.
  • 10.
  • 12.
  • 13.
  • 14.
  • 15.
  • 17.
  • 18. Overview サーバ cron で polling クライアント群 HTML ファイル
  • 21.
  • 22.
  • 23.
  • 24.
  • 25. 独自スクリプト #!/bin/bash MeasurementMode=min #MeasurementMode=sec DATE=`date +%Y-%m-%d` LOG_FILE=&quot;/usr/local/tomcat/logs/hoge.log&quot; GREP_TEXT_E=&quot;ERROR&quot; GREP_TEXT_W=&quot;WARN&quot; 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 [ &quot;$1&quot; == &quot;config&quot; ]; then $ECHO &quot;graph_title log exception count $LOG_FILE&quot;; $ECHO &quot;graph_vlabel request /$MeasurementMode&quot;; $ECHO &quot;graph_category ExceptionCount&quot;; $ECHO &quot;graph_order ERROR WARN&quot;; $ECHO &quot;ERROR.label ERROR*100&quot;; $ECHO &quot;ERROR.min 0&quot;; $ECHO &quot;ERROR.max 1000&quot;; $ECHO &quot;ERROR.draw AREA&quot;; $ECHO &quot;WARN.label WARN&quot;; $ECHO &quot;WARN.min 0&quot;; $ECHO &quot;WARN.max 1000&quot;; $ECHO &quot;WARN.draw STACK&quot;; exit 0; fi
  • 27. 独自スクリプト if [ &quot;$MeasurementMode&quot; == &quot;min&quot; ]; 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 &quot;$TARGET_BETWEEN_TIME&quot; | $GREP &quot;$GREP_TEXT_E&quot; | $WC -l` $ECHO $GREP_TEXT_E.value $(($count*100)) count=`$TAIL -n $TAIL_LINE_CNT $LOG_FILE | $GREP &quot;$TARGET_BETWEEN_TIME&quot; | $GREP &quot;$GREP_TEXT_W&quot; | $WC -l` $ECHO $GREP_TEXT_W.value $count
  • 29.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 38.
  • 39.
  • 40.
  • 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 &quot;group&quot; &quot;service“ # /usr/local/mon/clients/moncmd (enable|disable) watch &quot;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' MYSQL_GREP='Seconds_Behind_Master' RET='' ## HOST CHECK LOOP for host in &quot;$@&quot; do #EXEC RET=`&quot;${MYSQL_BASE}&quot; -h &quot;$host&quot; -u${MYSQL_USER} -p${MYSQL_PASSWORD} -e &quot;${MYSQL_COMMAND}&quot;|grep ${MYSQL_GREP}|awk '{print $2}'` #RET CHECK if [ &quot;${RET}&quot; != 0 ] then if [ &quot;$failed&quot; = &quot;&quot; ] then failed=&quot;$host:${RET}&quot; else failed=&quot;$failed $host:${RET}&quot; fi fi done ## ERROR CHECK if [ &quot;$failed&quot; != &quot;&quot; ] then echo &quot;$failed&quot; echo &quot;${MYSQL_GREP}:$failed&quot; exit 1 fi # OK RETURN exit 0
  • 44.
  • 45. Alert スクリプト #!/usr/bin/perl use Getopt::Std; getopts (&quot;s:g:h:t:l:u&quot;); $summary=<STDIN>; chomp $summary; $t = localtime($opt_t); ($wday,$mon,$day,$tm) = split (/+/, $t); print <<EOF; アラート送信 グループ : $opt_g, サービス $opt_s EOF print &quot; アップアラートはこっち &quot; if ($opt_u); print <<EOF; 障害時間 $wday $mon $day $tm 障害サマリ : $summary EOF
  • 47.
  • 48.

Editor's Notes

  1. Spider Storage Engine はおいておくw
  2. Spider Storage Engine はおいておくw
  3. Spider Storage Engine はおいておくw
  4. Spider Storage Engine はおいておくw
  5. Spider Storage Engine はおいておくw
  6. Spider Storage Engine はおいておくw
  7. Spider Storage Engine はおいておくw
  8. Spider Storage Engine はおいておくw
  9. Spider Storage Engine はおいておくw
  10. Spider Storage Engine はおいておくw
  11. Spider Storage Engine はおいておくw
  12. Spider Storage Engine はおいておくw
  13. Spider Storage Engine はおいておくw
  14. Spider Storage Engine はおいておくw
  15. Spider Storage Engine はおいておくw
  16. Spider Storage Engine はおいておくw
  17. Spider Storage Engine はおいておくw
  18. Spider Storage Engine はおいておくw
  19. Spider Storage Engine はおいておくw
  20. 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
  29. Spider Storage Engine はおいておくw