Monitoring the CPU loads of all SER processes of B2B SIP/VoIP servers

 

Emin Gabrielyan

2010-06-18

 

 

[1] [2] [3] [4] [5]

 

 

The CPU monitor script is running on 212.249.15.3:

$ ssh root@212.249.15.3

Last login: Tue Jun 15 13:10:51 2010 from 212.147.8.99

Linux openser3 2.6.18-6-686 #1 SMP Sat Dec 27 09:31:05 UTC 2008 i686

 

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.

 

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

openser3:~#

openser3:~# crontab -l

# m h  dom mon dow   command

#3 */3 * * * /usr/local/bin/serrestart

*/30 * * * * /usr/local/bin/callhistogram >> /var/log/callhistogram.log

*/5 * * * * /usr/local/bin/serprocmon >> /var/log/serprocmon.log

7 */3 * * * /usr/local/bin/googlerank >> /var/log/googlerank.log

0 0,12 * * * /root/folders/080212-portasip-ser-cpu/a12.sh.txt > /dev/null

27 * * * * /root/folders/090309-imap-stats/report.sh > /dev/null

51 11,20 * * * /root/folders/091017-support-numbers/report.sh support > /dev/null

51 2 * * * /root/folders/091017-support-numbers/report.sh oper > /dev/null

openser3:~#

openser3:~#

 

The home folder of the script is /root/folders/080212-portasip-ser-cpu/

openser3:~# cd /root/folders/080212-portasip-ser-cpu/

openser3:~/folders/080212-portasip-ser-cpu#

openser3:~/folders/080212-portasip-ser-cpu# ls

a10.sh.txt  a12.sh.txt  a6.sh.txt  a8.sh.txt  b7.pl.txt

a11.sh.txt  a5.sh.txt   a7.sh.txt  a9.sh.txt  cpu

openser3:~/folders/080212-portasip-ser-cpu#

openser3:~/folders/080212-portasip-ser-cpu# vi a12.sh.txt

 

 

A new version a14.sh.txt is created which supports a format of saved passwords. The bash shell and Perl scripts are zipped and available on the web [zip], and also are embedded below (for an MS Word version of this document [doc]):

 

The new version of the script deals with a well structured password file, having the following format (where the asterisks are to be replaced by password values):

ftp  switzernet.com    switzern   ******

ftp  www.unappel.ch    unappel    ******

ftp  unappel.ch        unappel    ******

ftp  intarnet.com      intarnet   ******

ftp  parinternet.ch    parinter   ******

 

The differences between the old and new scripts show that a function ftp_upload is added, responsible for uploading the results to 5 different mirror FTP servers:

$ diff a12.sh.txt a14.sh.txt

2c2

< #Copyright (c) 2008 Emin Gabrielyan, Switzernet

---

> #Copyright (c) 2008-2010 Emin Gabrielyan, Switzernet

18c18

< passfile=/root/files/070930-unappel-ftplogin.txt

---

> passfile=/root/files/100617-passwords.txt

29,31c29,64

< ftp_cmd="set ftp:passive-mode no; cd htdocs/public/080210-ser-cpu; put $gif; bye"

< ftp_usr="unappel,`cat $passfile`"

< ftp_dst=www.unappel.ch

---

> ftp_dst1=www.unappel.ch

> ftp_cmd1="set ftp:passive-mode no; cd htdocs/public/080210-ser-cpu; put $gif; bye"

> ftp_dst2=unappel.ch

> ftp_cmd2="set ftp:passive-mode no; cd htdocs/public/080210-ser-cpu; put $gif; bye"

> ftp_dst3=switzernet.com

> ftp_cmd3="set ftp:passive-mode no; cd public_html/2/public/100617-ser-cpu; put $gif; bye"

> ftp_dst4=intarnet.com

> ftp_cmd4="set ftp:passive-mode no; cd public_html/2/public/100617-ser-cpu; put $gif; bye"

> ftp_dst5=parinternet.ch

> ftp_cmd5="set ftp:passive-mode no; cd parinternet.ch/2/public/100617-ser-cpu; put $gif; bye"

> for i in 1 2 3 4 5

> do

>   server=`eval echo \\$ftp_dst$i`

>   set `egrep "^ftp +$server " $passfile`

>   eval ftp_usr$i=\"$3,$4\"

> done

> function ftp_upload {

>   err=0

>   for i in 1 2 3 4 5

>   do

>     ftp_dst=`eval echo \\$ftp_dst$i`

>     ftp_usr=`eval echo \\$ftp_usr$i`

>     ftp_cmd=`eval echo \\$ftp_cmd$i`

>     lftp -e "$ftp_cmd" -u $ftp_usr $ftp_dst 2>&1

>     err=$((err+$?))

>   done

>   return $err

> }

102c135

<       lftp -e "$ftp_cmd" -u $ftp_usr $ftp_dst 2>&1

---

>       ftp_upload

114c147

<   lftp -e "$ftp_cmd" -u $ftp_usr $ftp_dst 2>&1

---

>   ftp_upload

 

The new version (a14.sh.txt) is currently executed twice per day by the cron:

openser3:~/folders/080212-portasip-ser-cpu#

openser3:~/folders/080212-portasip-ser-cpu# crontab -l

# m h  dom mon dow   command

#3 */3 * * * /usr/local/bin/serrestart

*/30 * * * * /usr/local/bin/callhistogram >> /var/log/callhistogram.log

*/5 * * * * /usr/local/bin/serprocmon >> /var/log/serprocmon.log

7 */3 * * * /usr/local/bin/googlerank >> /var/log/googlerank.log

0 0,12 * * * /root/folders/080212-portasip-ser-cpu/a14.sh.txt > /dev/null

27 * * * * /root/folders/090309-imap-stats/report.sh > /dev/null

51 11,20 * * * /root/folders/091017-support-numbers/report.sh support > /dev/null

51 2 * * * /root/folders/091017-support-numbers/report.sh oper > /dev/null

openser3:~/folders/080212-portasip-ser-cpu#

openser3:~/folders/080212-portasip-ser-cpu#

 

The uploaded results can be viewed on the following 5 mirror pages:

http://www.unappel.ch/public/080210-ser-cpu/

http://unappel.ch/public/080210-ser-cpu/

http://switzernet.com/2/public/100617-ser-cpu/

http://parinternet.ch/2/public/100617-ser-cpu/

http://intarnet.com/2/public/100617-ser-cpu/

 

 

References

 

Introduction of the project:

http://www.switzernet.com/public/080212-remote-cpu-monitor/

 

Mirrors of this page:

http://switzernet.com/2/public/100618-remote-cpu-monitor/

http://www.unappel.ch/2/public/100618-remote-cpu-monitor/

http://unappel.ch/2/public/100618-remote-cpu-monitor/

http://intarnet.com/2/public/100618-remote-cpu-monitor/

http://parinternet.ch/2/public/100618-remote-cpu-monitor/

 

 

 

*   *   *

Copyright İ 2010 by Switzernet