root/sys_alive.conf

Revision 10, 7.1 kB (checked in by twidi, 2 months ago)

ajout d alertes sur la ram utilisee

Line 
1 ###############################################################
2 #               sys_alive.pl - configuration                  #
3 ###############################################################
4 #    Programme de surveillance de serveur web sous Linux      #
5 #               par Twidi (scripts@twidi.com)                 #
6 ###############################################################
7 # Ce programme est libre, vous pouvez le redistribuer et/ou   #
8 # le modifier selon les termes de la Licence Publique         #
9 # Générale (GPL) GNU publiée par la Free Software Foundation. #
10 #                                                             #
11 # Ce programme est distribué car potentiellement utile, mais  #
12 # SANS AUCUNE GARANTIE, ni explicite ni implicite, y compris  #
13 # les garanties de commercialisation ou d'adaptation dans un  #
14 # but spécifique. Reportez-vous à la Licence Publique         #
15 # Générale (GPL) GNU pour plus de détails.                    #
16 #                                                             #
17 #  -> http://www.linux-france.org/article/these/gpl.html <-   #
18 #                                                             #
19 ###############################################################
20 # DerniÚre version sur : http://scripts.twidi.com/            #
21 ###############################################################
22 #  Chaque serveur aura 1 configuration différente en fonction #
23 #  de son utilisation (sa puissance et ce qui tourne dessus)  #
24 ###############################################################
25 #      Plus d'informations dans le fichier sys_alive.pl       #
26 ###############################################################
27
28 #------------------------------------------------------------------------------#
29 ####  CONFIGURATION  ####
30 #------------------------------------------------------------------------------#
31
32 # mode demon ?
33 %mode_demon = (
34         'actif'    => 1,
35         'pid_file' => '/var/run/sys_alive.pid',
36         'wait'     => 60,
37 );
38
39 # les répertoires de logs et de données, à remplacer si différent du repertoire de conf, par défaut le même que sys_alive.pl
40 $rep_data = '';
41 $rep_log  = '';
42
43 # liste des démons à relancer (commenter la ligne pour ne pas gérer un démon)
44 # la clé du hash est le nom du process dans un top
45 %demons_start = (
46         'httpd' => '/etc/rc.d/init.d/httpd start',  # apache (pour debian : /etc/init.d/apache start)
47         'mysqld' => '/etc/rc.d/init.d/mysql start', # mysql  (pour debian : /etc/init.d/mysql start)
48         'named' => '/etc/rc.d/init.d/named start',  # bind   (pour debian : /etc/init.d/bind9 start)
49 );
50
51 # liste des utilisateurs lançant les démons à relancer (commenter la ligne pour ne pas gérer un démon)
52 # la clé du hash est le nom du process dans un top
53 %demons_user = (
54         'httpd' => 'root',  # apache
55 );
56
57 # liste des démons à stopper qd les alertes atteignent le niveau 2
58 # la clé du hash est le nom du process dans un top
59 %demons_stop = (
60         'httpd' => '/etc/rc.d/init.d/httpd stop',  # apache (pour debian : /etc/init.d/apache stop)
61         'mysqld' => '/etc/rc.d/init.d/mysql stop', # mysql  (pour debian : /etc/init.d/mysql stop)
62         'named' => '/etc/rc.d/init.d/named stop',  # bind   (pour debian : /etc/init.d/bind9 stop)
63 );
64
65 # démons parmis ceux ci-dessus dont on va forcer l'arret tant qu'il existe
66 # si jamais le premier arret n'a pas fonctionné
67 # on indique le nombre de tentative
68 %demons_brute_stop = (
69         'httpd' => 10
70 );
71
72 # liste des alertes (commenter la ligne pour pas d'alerte)
73 %seuil_alertes = (
74         #'ram_used' => 1000000, # alerte quand la ram reellement utilisee dépasse cette valeur
75         'swap' => 32000,     # alerte quand le swap dépasse cette valeur (1/16 de la ram)
76         'load_average' => 4, # alerte quand le load average dépasse cette valeur
77         'nb_process' => 140, # alerte quand le nb de process lancés dépasse cette valeur
78 );
79
80 # ces alertes vont etre utilisées pour stopper certains démons qd ils atteindront ces seuils
81 %seuil_alertes_niveau2 = (
82         #'ram_used' => 1500000, # alerte quand la ram reellement utilisee dépasse cette valeur
83         'swap' => 128000,     # alerte quand le swap dépasse cette valeur (1/4 de la ram ?)
84         'load_average' => 20, # alerte quand le load average dépasse cette valeur
85         'nb_process' => 200,  # alerte quand le nb de process lancés dépasse cette valeur
86 );
87
88 # liste des démons à stopper qd une alerte atteint le niveau 2, en indiquant la durée
89 # indiquer le demon (défini plus haut) et le nb de secondes avant de le relancer
90 # (le durée réelle sera un facteur du nb de secondes entre deux exécutions de sys_alive en cron)
91 %demons_to_stop = (
92         'mysqld' => 110,
93         'httpd' => 110,
94 );
95
96 # liste des process limités en durée (le nom utilise les expressions réguliÚres)
97 @process_to_kill = (
98         '^httpd$',   # process apache
99         '\.cgi$',    # programmes cgi
100         '\.php[3|4]?$',  # programmes php (ne fonctionne que si php est en suexec)
101 );
102
103 # liste des process NON limités en durée (le nom utilise les expressions réguliÚres)
104 # (pour mettre les process qui correspondent à la liste ci-dessus mais à garder)
105 @process_to_keep = (
106         'sys_alive', # on ne kill pas sys_alive ;)
107         '^script_long\.cgi$',   # ^ en debut de script, \ avant un point et $ en fin
108 );
109
110 # mails pour les alertes
111 @mails = (
112         'alerte_serveur@domaine.com',
113 );
114
115 # mails envoyé sur un sms
116 @mails_sms = (
117         '06xxxxxxxx@sfr.net',
118 );
119
120 # autres variables
121 $sendmail = "/usr/sbin/sendmail"; # chemin de sendmail
122 $delai_max_process = 180; # nb de secondes maxi pour un process
123 $ecart_alerte = 300; # nb de secondes minimums entre deux alertes de seuil (non pris en compte pour le kill d'un process ou le relancement d'un demon)
124 $from = 'nsXXX <@nsXX.domaine.com>'; # expediteur du mail
125 $joint_log = 1; # indique si on joint les logs de cette session au mail
126
127 # ce que ce programme va gérer...
128 %gestion = (
129         'reload_demons' => 1, # lancement des demons (liste $demons)
130         'kill_process' => 1,  # kill les process qui prennent plus de * minutes de temps cpu
131         'seuil_alerte' => 1,  # envoie une alerte quand une valeur dépasse son seuil
132         'stop_alerte' => 1,   # stoppe des programmes quand les seuils d'alerte atteignent le niveau 2
133 );
134
135 # tuer les process root ?
136 $kill_root_process = 1; # 1 permet de killer les process de root, 0 ne le permets pas
137
138 # chemin d'accÚs au fichier de log si celui-ci ne doit pas se trouver dans le répertoire des données
139 # exemple : $logfile = '/var/log/sys_alive.log';
140 $logfile = '';
141
142 # commande renvoyant l'activité processeur
143 # exemple : $proc_activity = 'ps faux';
144 $proc_activity = 'ps faux';
145
146 # commande renvoyant l'activité mysql
147 # exemple : $mysql_activity = ''/usr/bin/mysqladmin -pPASSROOTMYSQL status;/usr/bin/mysqladmin -pPASSROOTMYSQL processlist';
148 # mettre à blanc pour ne pas l'utiliser => $mysql_activity = '';
149 $mysql_activity = '/usr/bin/mysqladmin -u root -pPASSROOTMYSQL status; /usr/bin/mysqladmin -u root -pPASSROOTMYSQL processlist';
150
151 # commande renvoyant l'activité apache
152 # exemple : $apache_activity = 'lynx -dump http://127.0.0.1/server-status'; # (nécessite lynx 2.8.4 ou plus)
153 # mettre à blanc pour ne pas l'utiliser => $apache_activity = '';
154 $apache_activity = 'lynx -dump http://127.0.0.1/server-status'; # (pour un serveur ovh, remplacer server-status par ovh-status)
155
156 1; #ne pas retirer
Note: See TracBrowser for help on using the browser.