<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.varhoo.cz/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>http://wiki.varhoo.cz/index.php?action=history&amp;feed=atom&amp;title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1</id>
		<title>Monitoring líný chorýš - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.varhoo.cz/index.php?action=history&amp;feed=atom&amp;title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1"/>
		<link rel="alternate" type="text/html" href="http://wiki.varhoo.cz/index.php?title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1&amp;action=history"/>
		<updated>2026-05-25T12:33:42Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.19.20+dfsg-0+deb7u3</generator>

	<entry>
		<id>http://wiki.varhoo.cz/index.php?title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1&amp;diff=924&amp;oldid=prev</id>
		<title>Pajinek v 15. 6. 2011, 14:30</title>
		<link rel="alternate" type="text/html" href="http://wiki.varhoo.cz/index.php?title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1&amp;diff=924&amp;oldid=prev"/>
				<updated>2011-06-15T14:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr valign='top'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Starší verze&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Verze z 15. 6. 2011, 14:30&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 15:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 15:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#nastavení serverů pro kontrolu&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#nastavení serverů pro kontrolu&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;server = {&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;server = {&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;−&lt;/td&gt;
  &lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                '&lt;span class=&quot;diffchange diffchange-inline&quot;&gt;websites&lt;/span&gt;.cz':[&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;+&lt;/td&gt;
  &lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                '&lt;span class=&quot;diffchange diffchange-inline&quot;&gt;webovastranka&lt;/span&gt;.cz':[&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                  [21,22,110,443,993,3306,995,80],&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                  [21,22,110,443,993,3306,995,80],&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                  'http://webovastranka.cz'], #web&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&amp;#160;&lt;/td&gt;
  &lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;                  'http://webovastranka.cz'], #web&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Pajinek</name></author>	</entry>

	<entry>
		<id>http://wiki.varhoo.cz/index.php?title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1&amp;diff=923&amp;oldid=prev</id>
		<title>Pajinek: Založena nová stránka: Skript pro monitorování serveru a zasílání emailu v případě výpadku  &lt;source lang=&quot;python&quot;&gt; #!/usr/bin/python # -*- coding: utf-8 -*-  import socket import telnetl…</title>
		<link rel="alternate" type="text/html" href="http://wiki.varhoo.cz/index.php?title=Monitoring_l%C3%ADn%C3%BD_chor%C3%BD%C5%A1&amp;diff=923&amp;oldid=prev"/>
				<updated>2011-06-15T14:30:32Z</updated>
		
		<summary type="html">&lt;p&gt;Založena nová stránka: Skript pro monitorování serveru a zasílání emailu v případě výpadku  &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt; #!/usr/bin/python # -*- coding: utf-8 -*-  import socket import telnetl…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Skript pro monitorování serveru a zasílání emailu v případě výpadku&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
import socket&lt;br /&gt;
import telnetlib&lt;br /&gt;
import os&lt;br /&gt;
import smtplib&lt;br /&gt;
import time&lt;br /&gt;
import datetime&lt;br /&gt;
import urllib &lt;br /&gt;
&lt;br /&gt;
#nastavení serverů pro kontrolu&lt;br /&gt;
server = {&lt;br /&gt;
                'websites.cz':[&lt;br /&gt;
                  [21,22,110,443,993,3306,995,80],&lt;br /&gt;
                  'http://webovastranka.cz'], #web&lt;br /&gt;
#                'localhost':[[8192,8194,8197]], #holmes server &lt;br /&gt;
                'localhost':[[8192]], #holmes server &lt;br /&gt;
         }&lt;br /&gt;
&lt;br /&gt;
#email pro odeslání&lt;br /&gt;
emails = (&amp;quot;ja@email.cz&amp;quot;,&amp;quot;nekdo@email.cz&amp;quot;,)&lt;br /&gt;
&lt;br /&gt;
#nastavení&lt;br /&gt;
limit1 = 9.0 #hranice pro nacítání stránek (load + konektivita)&lt;br /&gt;
limit2 = 4.5 #hranice pro nacítání stránek (mysql)&lt;br /&gt;
limit3 = 4.5 #hranice pro nacítání stránek (apache)&lt;br /&gt;
&lt;br /&gt;
TIME_OUT = 3600&lt;br /&gt;
&lt;br /&gt;
# cas nacítání strá&lt;br /&gt;
def test_url(url):&lt;br /&gt;
   		#načení souboru&lt;br /&gt;
         timer_http = time.time()&lt;br /&gt;
         try:&lt;br /&gt;
               htmlpage = urllib.urlopen(url)&lt;br /&gt;
               data = htmlpage.read() &lt;br /&gt;
               timer = data.split(&amp;quot;\t&amp;quot;)&lt;br /&gt;
               tim1 = float(timer[0])&lt;br /&gt;
               tim2 = float(timer[1])&lt;br /&gt;
         except:&lt;br /&gt;
               tim1 = 0.0&lt;br /&gt;
               tim2 = 0.0&lt;br /&gt;
         timer2 = time.time() - timer_http&lt;br /&gt;
         return [timer2,tim1,tim2]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
timeout_error = []&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def islock():&lt;br /&gt;
  if os.path.exists(&amp;quot;lock&amp;quot;):&lt;br /&gt;
    f = open(&amp;quot;lock&amp;quot;)&lt;br /&gt;
    data = f.read()&lt;br /&gt;
    if time.time() - float(data) &amp;gt; TIME_OUT:&lt;br /&gt;
      return False&lt;br /&gt;
    else:    &lt;br /&gt;
      return True&lt;br /&gt;
      &lt;br /&gt;
  return False&lt;br /&gt;
&lt;br /&gt;
def lock():&lt;br /&gt;
  if os.path.exists(&amp;quot;lock&amp;quot;):&lt;br /&gt;
      if islock():&lt;br /&gt;
	return False&lt;br /&gt;
  &lt;br /&gt;
  f = open(&amp;quot;lock&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
  f.write(&amp;quot;%f&amp;quot; % time.time())&lt;br /&gt;
  f.close()&lt;br /&gt;
  return True&lt;br /&gt;
&lt;br /&gt;
def unlock():&lt;br /&gt;
  f = open(&amp;quot;lock&amp;quot;,&amp;quot;w&amp;quot;)&lt;br /&gt;
  f.write(&amp;quot;0&amp;quot;)&lt;br /&gt;
  f.close()&lt;br /&gt;
&lt;br /&gt;
#kontrola nacítání všech stránek s port &lt;br /&gt;
for host in server.keys():&lt;br /&gt;
        if 80 in server[host][0]:&lt;br /&gt;
                timer = test_url(server[host][1])&lt;br /&gt;
                print timer&lt;br /&gt;
                if timer[0] &amp;gt; limit1:&lt;br /&gt;
                        text = &amp;quot;%s %s&amp;quot; % (&amp;quot;konektivita&amp;quot;,host)&lt;br /&gt;
                        timeout_error.append([text,timer[0],limit1])&lt;br /&gt;
                if timer[1] &amp;gt; limit2:&lt;br /&gt;
                        text = &amp;quot;%s %s&amp;quot; % (&amp;quot;mysql&amp;quot;,host)&lt;br /&gt;
                        timeout_error.append([text,timer[1],limit2])&lt;br /&gt;
                if timer[2] &amp;gt; limit3:&lt;br /&gt;
                        text = &amp;quot;%s %s&amp;quot; % (&amp;quot;apache&amp;quot;,host)&lt;br /&gt;
                        timeout_error.append([text,timer[2],limit3])&lt;br /&gt;
&lt;br /&gt;
error = []&lt;br /&gt;
# skenování portu &lt;br /&gt;
for host in server.keys():&lt;br /&gt;
        for port in server[host][0]:&lt;br /&gt;
                try:&lt;br /&gt;
                        tn = telnetlib.Telnet(host,port)&lt;br /&gt;
                except:&lt;br /&gt;
                        #print &amp;quot;ERROR&amp;quot;,host, port&lt;br /&gt;
                        error.append([host,port])&lt;br /&gt;
&lt;br /&gt;
def send_email(body,emails):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;funkce na odesílání zpráv&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    # nastavení a odeslání zprávy&lt;br /&gt;
    fromaddr = 'server.websites@gmail.com'&lt;br /&gt;
    subject = &amp;quot;Vypadek serveru websites.cz&amp;quot;&lt;br /&gt;
    username = 'server.websites@gmail.com'&lt;br /&gt;
    password = 'server123456'&lt;br /&gt;
&lt;br /&gt;
    for toaddrs in emails:&lt;br /&gt;
	    msg = &amp;quot;\n&amp;quot;.join(&lt;br /&gt;
		    (&amp;quot;From: %s&amp;quot; % fromaddr,&lt;br /&gt;
		    &amp;quot;To: %s&amp;quot; % toaddrs,&lt;br /&gt;
		    &amp;quot;Subject: %s&amp;quot; % subject,&lt;br /&gt;
		    &amp;quot;&amp;quot;, body, &amp;quot;\r\n&amp;quot;)&lt;br /&gt;
		    )&lt;br /&gt;
&lt;br /&gt;
	    server = smtplib.SMTP('smtp.gmail.com:587')&lt;br /&gt;
	    server.ehlo() #FIX python 2.5&lt;br /&gt;
	    server.starttls()&lt;br /&gt;
	    server.ehlo() #FIX python 2.5&lt;br /&gt;
	    server.login(username,password)&lt;br /&gt;
	    server.sendmail(fromaddr, toaddrs, msg)&lt;br /&gt;
	    server.quit()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#neposilat se zpravu&lt;br /&gt;
if len(error)==0 and  len(timeout_error)==0:&lt;br /&gt;
	if islock():&lt;br /&gt;
	    print emails&lt;br /&gt;
	    send_email(&amp;quot;Výpadek serveru už pominul..&amp;quot;,emails)&lt;br /&gt;
	    unlock()&lt;br /&gt;
        exit(0)&lt;br /&gt;
&lt;br /&gt;
if islock():&lt;br /&gt;
  exit(0)&lt;br /&gt;
else:&lt;br /&gt;
  lock()&lt;br /&gt;
  &lt;br /&gt;
# vytvorení zprávy pro email &lt;br /&gt;
tmp = [&amp;quot;Time: %s &amp;quot; % datetime.datetime.now(),&lt;br /&gt;
       &amp;quot;---------------------------------------&amp;quot;]&lt;br /&gt;
for item in error:&lt;br /&gt;
        tmp.append(&amp;quot;Sluzba nefunguje %s:%d&amp;quot; % (item[0],item[1])) &lt;br /&gt;
&lt;br /&gt;
for item in timeout_error:&lt;br /&gt;
        tmp.append(&lt;br /&gt;
        &amp;quot;%s presahla limit (%f s.) %f s.&amp;quot; % (item[0],item[2],item[1]))&lt;br /&gt;
&lt;br /&gt;
body = &amp;quot;\n&amp;quot;.join( tmp )&lt;br /&gt;
&lt;br /&gt;
#odesílám zprávy&lt;br /&gt;
send_email(body,emails)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pajinek</name></author>	</entry>

	</feed>