Yapc Asia 2008 TMTOWTMS

3,571
-1

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,571
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

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?

×