181
There’s More Than One Way To Monitor System(s) Toshiyuki Sugimoto Shuichi Tajiri Jong-jin Lee May 16 2008 - TMTOWTMS -

Yapc Asia 2008 TMTOWTMS

Embed Size (px)

DESCRIPTION

YAPC::Asia 2008 Tokyo

Citation preview

Page 1: Yapc Asia 2008 TMTOWTMS

There’s More Than One Way To Monitor System(s)

Toshiyuki SugimotoShuichi TajiriJong-jin Lee

May 16 2008

- TMTOWTMS -

Page 2: Yapc Asia 2008 TMTOWTMS

Who are We?

Page 4: Yapc Asia 2008 TMTOWTMS

軽く自己紹介をさせていただきます。

Let me introduce myself to you

Page 5: Yapc Asia 2008 TMTOWTMS

JEEN

Page 6: Yapc Asia 2008 TMTOWTMS

Perldoc-kr

Page 7: Yapc Asia 2008 TMTOWTMS

Yesterday, I got an incredible super sexy item.

昨日、JesseからT-Shirtをもらいました

아싸~ 득템!

Page 8: Yapc Asia 2008 TMTOWTMS

He said,“If you make a patch for Prophet during this talk,

I’ll give you this T-shirt.”

Jesseさん曰く、“Prophetをペッチしてくれたら、

このT-Shirtあげるよ”

Page 9: Yapc Asia 2008 TMTOWTMS

But I did nothing!

でも、私はなにもやってないのに...

Page 10: Yapc Asia 2008 TMTOWTMS

Hmm...

Page 11: Yapc Asia 2008 TMTOWTMS

Maybe What He thought would be...

もしかして、彼はこう思ったのかもしれません。

Page 12: Yapc Asia 2008 TMTOWTMS

“How Pity!”

“かわいそうだな”

Page 13: Yapc Asia 2008 TMTOWTMS

It’s a Joke!

もちろん、冗談です

Page 14: Yapc Asia 2008 TMTOWTMS

Anyway, Thanks so so much Jesse!

とにかく、Jesseさん!ありがとうございます!

Page 15: Yapc Asia 2008 TMTOWTMS

Your Free Software “will” be running at our company

あなたのソフト使わせていただきます。

Page 16: Yapc Asia 2008 TMTOWTMS
Page 17: Yapc Asia 2008 TMTOWTMS
Page 18: Yapc Asia 2008 TMTOWTMS

Silver Sponsor Gold Sponsor

2007 2008

Page 19: Yapc Asia 2008 TMTOWTMS

Company Works

Page 20: Yapc Asia 2008 TMTOWTMS

System Monitoring, Maintenance

Page 21: Yapc Asia 2008 TMTOWTMS
Page 22: Yapc Asia 2008 TMTOWTMS

Promotion Support

Page 23: Yapc Asia 2008 TMTOWTMS
Page 24: Yapc Asia 2008 TMTOWTMS

EC Service Support

Page 25: Yapc Asia 2008 TMTOWTMS

And

Page 26: Yapc Asia 2008 TMTOWTMS

CodeRepos

Page 27: Yapc Asia 2008 TMTOWTMS

CodeRepos

Page 29: Yapc Asia 2008 TMTOWTMS

- Index

Page 30: Yapc Asia 2008 TMTOWTMS

- Index

• System Monitoring• About System Monitoring• What to Monitor?• CTI• Nagios || App::MadEye• Trac

• Demo

• Summary

Page 31: Yapc Asia 2008 TMTOWTMS
Page 32: Yapc Asia 2008 TMTOWTMS

System Monitoring

Page 33: Yapc Asia 2008 TMTOWTMS

Why?

Page 34: Yapc Asia 2008 TMTOWTMS

It’s a main job of our company

Page 35: Yapc Asia 2008 TMTOWTMS

There has been too many session about

Page 36: Yapc Asia 2008 TMTOWTMS

System Monitoring

Page 37: Yapc Asia 2008 TMTOWTMS

in YAPC::(.+) (¥d+)

Page 38: Yapc Asia 2008 TMTOWTMS

Yeah, That Is Why I’m talking about

Page 39: Yapc Asia 2008 TMTOWTMS

“Too Many” eq “Very Important”

Page 40: Yapc Asia 2008 TMTOWTMS

True / False ?

Page 41: Yapc Asia 2008 TMTOWTMS

It’s Your Choice.

Page 42: Yapc Asia 2008 TMTOWTMS
Page 43: Yapc Asia 2008 TMTOWTMS

TALOMT

Page 44: Yapc Asia 2008 TMTOWTMS

It Means...

Page 45: Yapc Asia 2008 TMTOWTMS

There’s A Lot Of Monitoring Tools

Page 46: Yapc Asia 2008 TMTOWTMS

• Nagios• http://www.nagios.org/

• Zabbix• http://www.zabbix.com/

• JFFNMS• http://www.jffnms.org/

• Big Brother• http://bb4.com/

• Big Sister• http://bigsister.graeff.com/

• Etc

Page 47: Yapc Asia 2008 TMTOWTMS
Page 48: Yapc Asia 2008 TMTOWTMS

What To Monitor

Page 49: Yapc Asia 2008 TMTOWTMS

• Port-Availability

• HTTP, HTTPS, SSH,TELNET

• FTP, SMTP, IMAP

• POP3

• etc

Page 50: Yapc Asia 2008 TMTOWTMS

• System Resources

• DISK

• CPU

• Memory

• Swap

• Network

• I/O

• Load Average

• Process

• etc

Page 51: Yapc Asia 2008 TMTOWTMS

• Application/Daemons

• MySQL/Oracle

• DNS

• Mail

• Apache

• etc

Page 52: Yapc Asia 2008 TMTOWTMS

• System/Application Log

• Kernel log

• DB error.log

• Web server error.log / access.log

• etc

Page 53: Yapc Asia 2008 TMTOWTMS

There’s More ThanOne Way

To Notify Warnings!

Page 54: Yapc Asia 2008 TMTOWTMS

Mail

Page 55: Yapc Asia 2008 TMTOWTMS

Instant Messenger

Page 56: Yapc Asia 2008 TMTOWTMS

IRC

Page 57: Yapc Asia 2008 TMTOWTMS

and...

Page 58: Yapc Asia 2008 TMTOWTMS

VFD?

Page 59: Yapc Asia 2008 TMTOWTMS

But No one knowsSOMETHING WRONG

Page 60: Yapc Asia 2008 TMTOWTMS

Like This...

Page 61: Yapc Asia 2008 TMTOWTMS
Page 62: Yapc Asia 2008 TMTOWTMS

Or

Page 63: Yapc Asia 2008 TMTOWTMS

Warning Lamp?

Page 64: Yapc Asia 2008 TMTOWTMS

What do you think about CTI?

では、CTIはどうでしょうか?

Page 65: Yapc Asia 2008 TMTOWTMS
Page 66: Yapc Asia 2008 TMTOWTMS

CTI

Page 67: Yapc Asia 2008 TMTOWTMS

CTI ?

Page 68: Yapc Asia 2008 TMTOWTMS

Computer Telephony Integration

コンピューターと電話との統合

Page 69: Yapc Asia 2008 TMTOWTMS

CTIの機能

• 電話をかけたり、受けたり• 一般電話で発信者の番号を表示したり

• 電話の内容を録音したり

• 向こうが押した番号を拾ったり

Page 70: Yapc Asia 2008 TMTOWTMS

Computer Telephony Integration

Page 71: Yapc Asia 2008 TMTOWTMS

CTI is used on...

Page 72: Yapc Asia 2008 TMTOWTMS

Tele-Banking

Page 73: Yapc Asia 2008 TMTOWTMS

Customer Support

顧客サポート

Page 74: Yapc Asia 2008 TMTOWTMS

Tele-Marketing

電話販売

Page 75: Yapc Asia 2008 TMTOWTMS

Voice Phishing

オレオレ詐欺(振り込め詐欺)

Page 76: Yapc Asia 2008 TMTOWTMS

And so on...

その他いろんなところでよく使われてます。

Page 77: Yapc Asia 2008 TMTOWTMS

Before CTI

CTI導入の前には

Page 78: Yapc Asia 2008 TMTOWTMS

We used to get inbound calls

From Several Services Whenever system is in trouble

なんか障害が発生したら、電話をかけてくれるあるサービスを使ってたのです。

Page 79: Yapc Asia 2008 TMTOWTMS

But, It Costs Every Months

でも、それ毎回お金かかることだし...

Page 80: Yapc Asia 2008 TMTOWTMS

But, It Costs Every Months¥

でも、それ毎回お金かかることだし...

Page 81: Yapc Asia 2008 TMTOWTMS

Hmm...

Page 82: Yapc Asia 2008 TMTOWTMS

We always wanted to make a system that is either

どうすれば

Page 83: Yapc Asia 2008 TMTOWTMS

a Low Cost

安くて

Page 84: Yapc Asia 2008 TMTOWTMS

Scalable

拡張性あって

Page 85: Yapc Asia 2008 TMTOWTMS

under our Control

会社で勝手にいじってもいいシステムを作れるんでしょうか?

Page 86: Yapc Asia 2008 TMTOWTMS

The Answer is ...

結局, 答えは

Page 87: Yapc Asia 2008 TMTOWTMS

CTI

Page 88: Yapc Asia 2008 TMTOWTMS

And

Page 89: Yapc Asia 2008 TMTOWTMS

OSS

Page 90: Yapc Asia 2008 TMTOWTMS

CTI with Closed Source

クローズドソースとCTIを組み合わせたら

Page 91: Yapc Asia 2008 TMTOWTMS

- OS $200 - Application $3000

- from www.voicetronix.com.au

だいたいこんなにかかるって書いてありました

Page 92: Yapc Asia 2008 TMTOWTMS

But, Open Source is...

でもオプンソースでは

Page 93: Yapc Asia 2008 TMTOWTMS

- OS ¥0 - Application ¥0

- from www.voicetronix.com.au

ゼロ

Page 94: Yapc Asia 2008 TMTOWTMS

Wow!

すげえー

Page 95: Yapc Asia 2008 TMTOWTMS

VoicetronixOpenPCI Card

- CPAN Module (Telephony::CTPort)- Low Cost ($400~)- RJ-11

Page 96: Yapc Asia 2008 TMTOWTMS

CTI on System Monitoring?

こんなCTIをどうしてシステム監視に使うか?

Page 97: Yapc Asia 2008 TMTOWTMS

Call

Warning! / Critical!

Log

Page 98: Yapc Asia 2008 TMTOWTMS

ex > while(Monitoring)

監視中に

Page 99: Yapc Asia 2008 TMTOWTMS

HTTP is down!

Page 100: Yapc Asia 2008 TMTOWTMS

Ringing~

Page 101: Yapc Asia 2008 TMTOWTMS

Off Hook

電話受けて

Page 102: Yapc Asia 2008 TMTOWTMS

Hello?

声かけると

Page 103: Yapc Asia 2008 TMTOWTMS

“Somethings Wrong!”

“なんかおかしいよ”

Page 104: Yapc Asia 2008 TMTOWTMS

“Somethings Wrong!!”“なんかおかしいんだよ”

Page 105: Yapc Asia 2008 TMTOWTMS

Somethings Wrong!!!“なんかおかしいんだってば”

Page 106: Yapc Asia 2008 TMTOWTMS

the CTI Notifier(?) just called us

こんな感じでCTI通知しております。

Page 107: Yapc Asia 2008 TMTOWTMS

Whenever SA hears“Somethings Wrong”

コのタイミングで、システム運用担当者のほうが”なんかおかしいよ”っと言われたら

Page 108: Yapc Asia 2008 TMTOWTMS

• He would be (彼は多分)

• stressed (ストレスが出来たり)

• impatient (いきなり緊張したり)

• angry (ちょっと起ったり)

• et cetra....(よくない現状いろいろ)

Page 109: Yapc Asia 2008 TMTOWTMS

Like This

こういう風にですね

Page 110: Yapc Asia 2008 TMTOWTMS

“WTF?” “なんだと!”

Page 111: Yapc Asia 2008 TMTOWTMS

In the Graph...

グラフで見ると

Page 112: Yapc Asia 2008 TMTOWTMS

0

25

50

75

100

1 2 3 4 5

SA’s Stress

System trouble (# of Calls)

Page 113: Yapc Asia 2008 TMTOWTMS

we wish SA for some happiness

システム導入して運用担当者はよろこんでくれないかな

Page 114: Yapc Asia 2008 TMTOWTMS

Is there any good solution?

なんかいいアイデイアないかな?

Page 115: Yapc Asia 2008 TMTOWTMS
Page 116: Yapc Asia 2008 TMTOWTMS

!

Page 117: Yapc Asia 2008 TMTOWTMS

Yatta~

Page 118: Yapc Asia 2008 TMTOWTMS

After We have Completedthis Mission,

一応これやったからは、

Page 119: Yapc Asia 2008 TMTOWTMS

SA will be(.+)

wheneverService goes Down

運用担当者はサビースが落ちても

Page 120: Yapc Asia 2008 TMTOWTMS

• Happy(喜んでくれるし)

• Less Stress(ストレスもなさそうだし)

• etc(いい影響いろいろ)

Page 121: Yapc Asia 2008 TMTOWTMS

In Visual Mode

ビジュアル的に見ると

Page 122: Yapc Asia 2008 TMTOWTMS

0

17.5

35.0

52.5

70.0

1 2 3 4 5

SA’s Stress

System trouble (Call)

Page 123: Yapc Asia 2008 TMTOWTMS

More x 2 Visual Mode

ではもっともっとビジュアル的に見ると

Page 124: Yapc Asia 2008 TMTOWTMS

Like This

こういうふうになります

Page 125: Yapc Asia 2008 TMTOWTMS
Page 126: Yapc Asia 2008 TMTOWTMS

Why?なんで?

Page 127: Yapc Asia 2008 TMTOWTMS

What’s happened to him?

彼になにがあったんでしょうか?

Page 128: Yapc Asia 2008 TMTOWTMS

The Silver Bullet is what we gave to him is...

私たちが彼にあげた、解決策は...

Page 129: Yapc Asia 2008 TMTOWTMS

これ

Page 130: Yapc Asia 2008 TMTOWTMS

Code

Page 131: Yapc Asia 2008 TMTOWTMS

use Telephony::CTPort

Page 132: Yapc Asia 2008 TMTOWTMS

Methods

Page 133: Yapc Asia 2008 TMTOWTMS

Methods

• on_hook(), off_hook()

Page 134: Yapc Asia 2008 TMTOWTMS

Methods

• on_hook(), off_hook()

• wait_for_ring(), wait_for_dialtone()

Page 135: Yapc Asia 2008 TMTOWTMS

Methods

• on_hook(), off_hook()

• wait_for_ring(), wait_for_dialtone()

• record($file_name, $timeout,$term_key)

Page 136: Yapc Asia 2008 TMTOWTMS

Methods

• on_hook(), off_hook()

• wait_for_ring(), wait_for_dialtone()

• record($file_name, $timeout,$term_key)

• collect($max_digits, $max_sec)

Page 137: Yapc Asia 2008 TMTOWTMS

Methods

• on_hook(), off_hook()

• wait_for_ring(), wait_for_dialtone()

• record($file_name, $timeout,$term_key)

• collect($max_digits, $max_sec)

• dial($number)

Page 138: Yapc Asia 2008 TMTOWTMS

Make a Call

Page 139: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook()

Page 140: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook()

Page 141: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook()

Page 142: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook()

Page 143: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

Page 144: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

Page 145: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Page 146: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Page 147: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Ring~ Ring~

Page 148: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Ring~ Ring~

Page 149: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Ring~ Ring~

Page 150: Yapc Asia 2008 TMTOWTMS

Make a Call

on_hook() off_hook() wait_for_dial_tone()

dial($num)

Ring~ Ring~

some_event()

Page 151: Yapc Asia 2008 TMTOWTMS

Receive a Call

Page 152: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook()

Page 153: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook()

Page 154: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring()

Page 155: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring()

Page 156: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring() Ring~ Ring~

Page 157: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring() Ring~ Ring~

Page 158: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring() Ring~ Ring~

Page 159: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring()

off_hook()

Ring~ Ring~

Page 160: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring()

off_hook()

Ring~ Ring~

Page 161: Yapc Asia 2008 TMTOWTMS

Receive a Call

on_hook() wait_for_ring()

off_hook()

Ring~ Ring~

some_event()

Page 162: Yapc Asia 2008 TMTOWTMS

# CTI daemon 起動$ ctserver -d

#障害発生通報use strict;use warnings;use CTIServer;my @list = (#phone numbers#);my $ct = CTIServer->new(port => 1234);foreach my $person (@list) { if ($ct->call($person, 20)) { # Call! $person = PHS number do_something() if 1 == $ct->play(“39_warn.wav”); }}sub do_something { blahblah; }

Page 163: Yapc Asia 2008 TMTOWTMS

It will be a very Amazing System withpreviously mentioned features.

さっき申し上げました機能でなんとかするとすばらしいシステムができると思います。

Page 164: Yapc Asia 2008 TMTOWTMS

But, It has a Critical Weakness!

それはCTIに致命的な弱点があったからです

Page 165: Yapc Asia 2008 TMTOWTMS

It is...

Page 166: Yapc Asia 2008 TMTOWTMS

While we were testing CTI, our company received a huge telephone bill.

0

25

50

75

100

1/4 2/4 3/4 4/4

Phone Bill

このCTIのテストをやってる時、会社の電話代が.....

Page 167: Yapc Asia 2008 TMTOWTMS

orz

Page 168: Yapc Asia 2008 TMTOWTMS

I hope...

一個お願いがありますが、

Page 169: Yapc Asia 2008 TMTOWTMS

Please Don’t Use CTI for

Voice Phishing! :-)ぜひ、

“オレオレ詐欺”とかにはお使いなさいませんようお願いします。

Page 170: Yapc Asia 2008 TMTOWTMS

Nagiosor

App::MadEye

Page 171: Yapc Asia 2008 TMTOWTMS

use Class::Component;

Page 172: Yapc Asia 2008 TMTOWTMS

Pluggable Monitoring System

Page 173: Yapc Asia 2008 TMTOWTMS
Page 174: Yapc Asia 2008 TMTOWTMS

Why Trac?

Page 175: Yapc Asia 2008 TMTOWTMS

package App::MadEye::Plugin::Notify::HTTP;

use LWP::UserAgent;

sub request : Hook(‘notify’) { $ua = LWP::UserAgent->new; $url = $posts->{target} . “?” . $parameter; $res = $ua->get($url);}

Page 176: Yapc Asia 2008 TMTOWTMS

package App::MadEye::Plugin::Notify::Trac;

use DBI;

sub request : Hook(‘notify’) { my $dbh = DBI->connect(“dbi:SQLite:trac.db”,””,””); my $sth = $dbh->prepare(“INSERT INTO ticket ....”); $sth->execute(...);}

Page 177: Yapc Asia 2008 TMTOWTMS
Page 178: Yapc Asia 2008 TMTOWTMS

Demo

Page 179: Yapc Asia 2008 TMTOWTMS

Summary

• CTI will be the best choice to happy M.S. (but, you have to be with HOOO MOOO)

• WARNING : Telephone bill

• One Way on TMTOWTMS is Telephony ?

Page 180: Yapc Asia 2008 TMTOWTMS

Thank You!

Page 181: Yapc Asia 2008 TMTOWTMS

Any Questions?