Your SlideShare is downloading. ×
0
- TMTOWTMS -


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


        May 16 2008
       Toshiyuki Sugimoto
          S...
Who are We?
http://d.hatena.ne.jp/antipop/20080501/1209636817
Let me introduce myself to you
JEEN
Perldoc-kr
~   !




Yesterday, I got an incredible super sexy item.
         Jesse     T-Shirt
He said,
“If you make a patch for Prophet during this talk,
            I’ll give you this T-shirt.”


                   ...
But I did nothing!




                     ...
Hmm...
Maybe What He thought would be...
“How Pity!”

“                 ”
It’s a Joke!
Anyway, Thanks so so much Jesse!


                Jesse     !
Your Free Software “will” be running at our company
2007            2008




Silver Sponsor   Gold Sponsor
Company Works
System Monitoring, Maintenance
Promotion Support
EC Service Support
And
CodeRepos
CodeRepos
http://www.infomarks.co.jp/
http://blog.infomarks.co.jp/
- Index
- Index
• System Monitoring
 • About System Monitoring
 • What to Monitor?
 • CTI
 • Nagios || App::MadEye
 • Trac
• Demo
...
System Monitoring
Why?
It’s a main job of our company
There has been too many session
             about
System Monitoring
in
YAPC::(.+) (¥d+)
Yeah, That Is Why I’m talking about
“Too Many” eq “Very Important”
True / False ?
It’s Your Choice.
TALOMT
It Means...
There’s A Lot Of Monitoring Tools
• •Nagios
    http://www.nagios.org/

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

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

• •Big B...
What To Monitor
• Port-Availability
 • HTTP, HTTPS, SSH,TELNET
 • FTP, SMTP, IMAP
 • POP3
 • etc
• System Resources
 • DISK
 • CPU
 • Memory
 • Swap
 • Network
 • I/O
 • Load Average
 • Process
 • etc
• Application/Daemons
 • MySQL/Oracle
 • DNS
 • Mail
 • Apache
 • etc
• System/Application Log
 • Kernel log
 • DB error.log
 • Web server error.log / access.log
 • etc
There’s More Than
     One Way
To Notify Warnings!
Mail
Instant Messenger
IRC
and...
VFD?
But No one knows
SOMETHING WRONG
Like This...
Or
Warning Lamp?
What do you think about
         CTI?
      CTI
CTI
CTI ?
Computer Telephony Integration
CTI

•
•
•
•
Computer Telephony Integration
CTI is used on...
Tele-Banking
Customer Support
Tele-Marketing
Voice Phishing



(                    )
And so on...
Before CTI
 CTI
We used to get
         inbound calls
From Several Services Whenever
      system is in trouble
But, It Costs Every Months

                       ...
¥
But, It Costs Every Months

                       ...
Hmm...
We always wanted to make a system that is either
a Low Cost
Scalable
under our Control
The Answer is ...



      ,
CTI
And
OSS
CTI with Closed Source

          CTI
- OS $200
- Application $3000

 - from www.voicetronix.com.au
But, Open Source is...
- OS ¥0
    - Application ¥0


- from www.voicetronix.com.au
Wow!
Voicetronix
 OpenPCI Card
- CPAN Module
  (Telephony::CTPort)
- Low Cost ($400~)
- RJ-11
CTI on System
 Monitoring?
 CTI
       ?
Call



Log




      Warning! / Critical!
ex >
while(Monitoring)
HTTP is down!
Ringing~
Off Hook
Hello?
“Somethings Wrong!”
     “       ”
“Somethings Wrong!!”
    “         ”
Somethings Wrong!!!
   “           ”
the CTI Notifier(?) just called us


          CTI
Whenever SA hears
“Somethings Wrong”

”        ”
• He would be (    )

 • stressed (              )

 • impatient (                 )

 • angry (             )

 • et cetr...
Like This
“WTF?”   “   ”
In the Graph...
SA’s Stress

100

 75

 50

 25

  0
      1   2       3         4   5

System trouble (# of Calls)
we wish SA for some happiness
Is there any good solution?
!
Yatta~
After We have Completed
       this Mission,
SA will be
        (.+)
     whenever
Service goes Down
• Happy(         )

• Less Stress(       )

• etc(           )
In Visual Mode
SA’s Stress

70.0

52.5

35.0

17.5

  0
       1   2       3         4   5

       System trouble (Call)
More x 2 Visual Mode
Like This
Why?
   ?
What’s happened to him?
The Silver Bullet is what
  we gave to him is...

                            ...
Code
use Telephony::CTPort
Methods
Methods
• on_hook(), off_hook()
Methods
• on_hook(), off_hook()
• wait_for_ring(), wait_for_dialtone()
Methods
• on_hook(), off_hook()
• wait_for_ring(), wait_for_dialtone()
• record($file_name, $timeout,$term_key)
Methods
• on_hook(), off_hook()
• wait_for_ring(), wait_for_dialtone()
• record($file_name, $timeout,$term_key)
• collect($...
Methods
• on_hook(), off_hook()
• wait_for_ring(), wait_for_dialtone()
• record($file_name, $timeout,$term_key)
• collect($...
Make a Call
Make a Call

on_hook()
Make a Call

on_hook()
Make a Call

on_hook()   off_hook()
Make a Call

on_hook()   off_hook()
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()


                                dial($num)
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()


                                dial($num)
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()


                                dial($num)


            ...
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()


                                dial($num)


            ...
Make a Call

on_hook()   off_hook()       wait_for_dial_tone()


                                dial($num)


            ...
Make a Call

on_hook()    off_hook()       wait_for_dial_tone()


                                  dial($num)


         ...
Receive a Call
Receive a Call

on_hook()
Receive a Call

on_hook()
Receive a Call

on_hook()   wait_for_ring()
Receive a Call

on_hook()   wait_for_ring()
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~



                                off_hook()
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~



                                off_hook()
Receive a Call

on_hook()   wait_for_ring()     Ring~ Ring~



                                off_hook()


              ...
# CTI daemon
$ ctserver -d

#
use strict;
use warnings;
use CTIServer;
my @list = (#phone numbers#);
my $ct = CTIServer->n...
It will be a very Amazing System with
    previously mentioned features.
But, It has a Critical Weakness!
    CTI
It is...
Phone Bill

           100

            75

            50

            25

             0
                 1/4   2/4     ...
orz
I hope...
Please Don’t Use
     CTI for
Voice Phishing! :-)
 “         ”
Nagios
     or
App::MadEye
use Class::Component;
Pluggable Monitoring System
Why Trac?
package App::MadEye::Plugin::Notify::HTTP;

use LWP::UserAgent;

sub request : Hook(‘notify’) {
  $ua = LWP::UserAgent->ne...
package App::MadEye::Plugin::Notify::Trac;

use DBI;

sub request : Hook(‘notify’) {
  my $dbh = DBI->connect(“dbi:SQLite:...
Demo
Summary

• CTI will be the best choice to happy M.S.
  (but, you have to be with HOOO MOOO)
  • WARNING : Telephone bill
•...
Thank You!
Any Questions?
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Yapc Asia 2008 TMTOWTMS
Upcoming SlideShare
Loading in...5
×

Yapc Asia 2008 TMTOWTMS

3,516

Published on

YAPC::Asia 2008 Tokyo

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,516
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Yapc Asia 2008 TMTOWTMS"

  1. 1. - TMTOWTMS - There’s More Than One Way To Monitor System(s) May 16 2008 Toshiyuki Sugimoto Shuichi Tajiri Jong-jin Lee
  2. 2. Who are We?
  3. 3. http://d.hatena.ne.jp/antipop/20080501/1209636817
  4. 4. Let me introduce myself to you
  5. 5. JEEN
  6. 6. Perldoc-kr
  7. 7. ~ ! Yesterday, I got an incredible super sexy item. Jesse T-Shirt
  8. 8. He said, “If you make a patch for Prophet during this talk, I’ll give you this T-shirt.” Jesse “Prophet T-Shirt ”
  9. 9. But I did nothing! ...
  10. 10. Hmm...
  11. 11. Maybe What He thought would be...
  12. 12. “How Pity!” “ ”
  13. 13. It’s a Joke!
  14. 14. Anyway, Thanks so so much Jesse! Jesse !
  15. 15. Your Free Software “will” be running at our company
  16. 16. 2007 2008 Silver Sponsor Gold Sponsor
  17. 17. Company Works
  18. 18. System Monitoring, Maintenance
  19. 19. Promotion Support
  20. 20. EC Service Support
  21. 21. And
  22. 22. CodeRepos
  23. 23. CodeRepos
  24. 24. http://www.infomarks.co.jp/ http://blog.infomarks.co.jp/
  25. 25. - Index
  26. 26. - Index • System Monitoring • About System Monitoring • What to Monitor? • CTI • Nagios || App::MadEye • Trac • Demo • Summary
  27. 27. System Monitoring
  28. 28. Why?
  29. 29. It’s a main job of our company
  30. 30. There has been too many session about
  31. 31. System Monitoring
  32. 32. in YAPC::(.+) (¥d+)
  33. 33. Yeah, That Is Why I’m talking about
  34. 34. “Too Many” eq “Very Important”
  35. 35. True / False ?
  36. 36. It’s Your Choice.
  37. 37. TALOMT
  38. 38. It Means...
  39. 39. There’s A Lot Of Monitoring Tools
  40. 40. • •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
  41. 41. What To Monitor
  42. 42. • Port-Availability • HTTP, HTTPS, SSH,TELNET • FTP, SMTP, IMAP • POP3 • etc
  43. 43. • System Resources • DISK • CPU • Memory • Swap • Network • I/O • Load Average • Process • etc
  44. 44. • Application/Daemons • MySQL/Oracle • DNS • Mail • Apache • etc
  45. 45. • System/Application Log • Kernel log • DB error.log • Web server error.log / access.log • etc
  46. 46. There’s More Than One Way To Notify Warnings!
  47. 47. Mail
  48. 48. Instant Messenger
  49. 49. IRC
  50. 50. and...
  51. 51. VFD?
  52. 52. But No one knows SOMETHING WRONG
  53. 53. Like This...
  54. 54. Or
  55. 55. Warning Lamp?
  56. 56. What do you think about CTI? CTI
  57. 57. CTI
  58. 58. CTI ?
  59. 59. Computer Telephony Integration
  60. 60. CTI • • • •
  61. 61. Computer Telephony Integration
  62. 62. CTI is used on...
  63. 63. Tele-Banking
  64. 64. Customer Support
  65. 65. Tele-Marketing
  66. 66. Voice Phishing ( )
  67. 67. And so on...
  68. 68. Before CTI CTI
  69. 69. We used to get inbound calls From Several Services Whenever system is in trouble
  70. 70. But, It Costs Every Months ...
  71. 71. ¥ But, It Costs Every Months ...
  72. 72. Hmm...
  73. 73. We always wanted to make a system that is either
  74. 74. a Low Cost
  75. 75. Scalable
  76. 76. under our Control
  77. 77. The Answer is ... ,
  78. 78. CTI
  79. 79. And
  80. 80. OSS
  81. 81. CTI with Closed Source CTI
  82. 82. - OS $200 - Application $3000 - from www.voicetronix.com.au
  83. 83. But, Open Source is...
  84. 84. - OS ¥0 - Application ¥0 - from www.voicetronix.com.au
  85. 85. Wow!
  86. 86. Voicetronix OpenPCI Card - CPAN Module (Telephony::CTPort) - Low Cost ($400~) - RJ-11
  87. 87. CTI on System Monitoring? CTI ?
  88. 88. Call Log Warning! / Critical!
  89. 89. ex > while(Monitoring)
  90. 90. HTTP is down!
  91. 91. Ringing~
  92. 92. Off Hook
  93. 93. Hello?
  94. 94. “Somethings Wrong!” “ ”
  95. 95. “Somethings Wrong!!” “ ”
  96. 96. Somethings Wrong!!! “ ”
  97. 97. the CTI Notifier(?) just called us CTI
  98. 98. Whenever SA hears “Somethings Wrong” ” ”
  99. 99. • He would be ( ) • stressed ( ) • impatient ( ) • angry ( ) • et cetra....( )
  100. 100. Like This
  101. 101. “WTF?” “ ”
  102. 102. In the Graph...
  103. 103. SA’s Stress 100 75 50 25 0 1 2 3 4 5 System trouble (# of Calls)
  104. 104. we wish SA for some happiness
  105. 105. Is there any good solution?
  106. 106. !
  107. 107. Yatta~
  108. 108. After We have Completed this Mission,
  109. 109. SA will be (.+) whenever Service goes Down
  110. 110. • Happy( ) • Less Stress( ) • etc( )
  111. 111. In Visual Mode
  112. 112. SA’s Stress 70.0 52.5 35.0 17.5 0 1 2 3 4 5 System trouble (Call)
  113. 113. More x 2 Visual Mode
  114. 114. Like This
  115. 115. Why? ?
  116. 116. What’s happened to him?
  117. 117. The Silver Bullet is what we gave to him is... ...
  118. 118. Code
  119. 119. use Telephony::CTPort
  120. 120. Methods
  121. 121. Methods • on_hook(), off_hook()
  122. 122. Methods • on_hook(), off_hook() • wait_for_ring(), wait_for_dialtone()
  123. 123. Methods • on_hook(), off_hook() • wait_for_ring(), wait_for_dialtone() • record($file_name, $timeout,$term_key)
  124. 124. Methods • on_hook(), off_hook() • wait_for_ring(), wait_for_dialtone() • record($file_name, $timeout,$term_key) • collect($max_digits, $max_sec)
  125. 125. Methods • on_hook(), off_hook() • wait_for_ring(), wait_for_dialtone() • record($file_name, $timeout,$term_key) • collect($max_digits, $max_sec) • dial($number)
  126. 126. Make a Call
  127. 127. Make a Call on_hook()
  128. 128. Make a Call on_hook()
  129. 129. Make a Call on_hook() off_hook()
  130. 130. Make a Call on_hook() off_hook()
  131. 131. Make a Call on_hook() off_hook() wait_for_dial_tone()
  132. 132. Make a Call on_hook() off_hook() wait_for_dial_tone()
  133. 133. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num)
  134. 134. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num)
  135. 135. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num) Ring~ Ring~
  136. 136. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num) Ring~ Ring~
  137. 137. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num) Ring~ Ring~
  138. 138. Make a Call on_hook() off_hook() wait_for_dial_tone() dial($num) Ring~ Ring~ some_event()
  139. 139. Receive a Call
  140. 140. Receive a Call on_hook()
  141. 141. Receive a Call on_hook()
  142. 142. Receive a Call on_hook() wait_for_ring()
  143. 143. Receive a Call on_hook() wait_for_ring()
  144. 144. Receive a Call on_hook() wait_for_ring() Ring~ Ring~
  145. 145. Receive a Call on_hook() wait_for_ring() Ring~ Ring~
  146. 146. Receive a Call on_hook() wait_for_ring() Ring~ Ring~
  147. 147. Receive a Call on_hook() wait_for_ring() Ring~ Ring~ off_hook()
  148. 148. Receive a Call on_hook() wait_for_ring() Ring~ Ring~ off_hook()
  149. 149. Receive a Call on_hook() wait_for_ring() Ring~ Ring~ off_hook() some_event()
  150. 150. # 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; }
  151. 151. It will be a very Amazing System with previously mentioned features.
  152. 152. But, It has a Critical Weakness! CTI
  153. 153. It is...
  154. 154. Phone Bill 100 75 50 25 0 1/4 2/4 3/4 4/4 While we were testing CTI, our company received a huge telephone bill. CTI .....
  155. 155. orz
  156. 156. I hope...
  157. 157. Please Don’t Use CTI for Voice Phishing! :-) “ ”
  158. 158. Nagios or App::MadEye
  159. 159. use Class::Component;
  160. 160. Pluggable Monitoring System
  161. 161. Why Trac?
  162. 162. 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); }
  163. 163. 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(...); }
  164. 164. Demo
  165. 165. 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 ?
  166. 166. Thank You!
  167. 167. Any Questions?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×