Projet

Général

Profil

Supervision et Log » Historique » Version 20

Mehdi Abaakouk, 19/12/2014 08:15

1 1 Mehdi Abaakouk
h1. Supervision et Log
2 1 Mehdi Abaakouk
3 3 Mehdi Abaakouk
{{>toc}}
4 3 Mehdi Abaakouk
5 16 Mehdi Abaakouk
h2. Présentation
6 1 Mehdi Abaakouk
7 2 Mehdi Abaakouk
La supervision utilise nagios, pnp4nagios et check_mk sur la machine "nagios.tetaneutral.net":http://nagios.tetaneutral.net
8 16 Mehdi Abaakouk
"check_mk":http://mathias-kettner.de/check_mk.html est à la fois:
9 16 Mehdi Abaakouk
* un outils qui génère la configuration de nagios
10 1 Mehdi Abaakouk
* une "commande" au sens nagios.
11 1 Mehdi Abaakouk
* une interface Web 2.0
12 16 Mehdi Abaakouk
pnp4nagios est un grapher des perfdatas de nagios, et il est intégré parfaitement à l'interface de check_mk
13 1 Mehdi Abaakouk
La gestion des logs s'effectue avec rsyslog sur la machine ttnnlog
14 1 Mehdi Abaakouk
15 16 Mehdi Abaakouk
La configuration et les scripts nagios sont versionnés ici:
16 4 Mehdi Abaakouk
<pre>
17 4 Mehdi Abaakouk
git clone git@git.tetaneutral.net:nagios nagios
18 4 Mehdi Abaakouk
</pre>
19 4 Mehdi Abaakouk
20 4 Mehdi Abaakouk
21 16 Mehdi Abaakouk
h2. Ajouter un machine à la supervision
22 1 Mehdi Abaakouk
23 1 Mehdi Abaakouk
Dans le fichier /etc/check_mk/main.mk ajouter dans le tableau "all_hosts" le nom de la vm suivie de tags comme ceci:
24 1 Mehdi Abaakouk
25 1 Mehdi Abaakouk
<pre>
26 1 Mehdi Abaakouk
nomdelavme|vm|ssh-2222|smtp|http
27 1 Mehdi Abaakouk
nomdelamahcine|phy|ssh-22|https|imaps
28 1 Mehdi Abaakouk
</pre>
29 1 Mehdi Abaakouk
30 16 Mehdi Abaakouk
Les fameux tag permet d'associé la machine à des check de services, des hostgroups et des servicesgroups
31 16 Mehdi Abaakouk
Par défaut seul le ping est effectué.
32 16 Mehdi Abaakouk
On peut ensuite étendre rapidement les checks avec les contrôles système.
33 16 Mehdi Abaakouk
Pour ceci il faut installé un agent sur la machine superviser, soit check-mk-agent, soit net-snmp.
34 1 Mehdi Abaakouk
35 1 Mehdi Abaakouk
h2. Configuration du serveur de log
36 1 Mehdi Abaakouk
37 1 Mehdi Abaakouk
38 1 Mehdi Abaakouk
<pre>
39 1 Mehdi Abaakouk
echo '*.*     @91.224.149.204' > /etc/rsyslog.d/ttnnlog.conf
40 1 Mehdi Abaakouk
/etc/init.d/rsyslog restart
41 1 Mehdi Abaakouk
</pre>
42 1 Mehdi Abaakouk
43 1 Mehdi Abaakouk
44 1 Mehdi Abaakouk
h2. Installation de check-mk-agent
45 1 Mehdi Abaakouk
46 1 Mehdi Abaakouk
Sur la machine cible, il faut installer les xinetd et check-mk-agent_1.1.13i2_all.deb
47 1 Mehdi Abaakouk
dans /etc/xinetd.d/check_mk ajouter:
48 1 Mehdi Abaakouk
49 1 Mehdi Abaakouk
<pre>
50 1 Mehdi Abaakouk
only_from       = 91.224.149.236
51 1 Mehdi Abaakouk
</pre>
52 16 Mehdi Abaakouk
Puis on redémarre xinetd
53 1 Mehdi Abaakouk
54 1 Mehdi Abaakouk
<pre>
55 1 Mehdi Abaakouk
etc/init.d/xinetd restart
56 1 Mehdi Abaakouk
</pre>
57 1 Mehdi Abaakouk
sur nagios:
58 1 Mehdi Abaakouk
59 1 Mehdi Abaakouk
<pre>
60 1 Mehdi Abaakouk
check_mk -II nommachine && check_mk -O
61 1 Mehdi Abaakouk
</pre>
62 1 Mehdi Abaakouk
63 1 Mehdi Abaakouk
h2. Installation rapide de check-mk-agent dans une vm
64 1 Mehdi Abaakouk
65 1 Mehdi Abaakouk
sur h1:
66 1 Mehdi Abaakouk
67 1 Mehdi Abaakouk
<pre>
68 1 Mehdi Abaakouk
cd nagios
69 1 Mehdi Abaakouk
./install_in_vm.sh nomvm 2222
70 1 Mehdi Abaakouk
</pre>
71 1 Mehdi Abaakouk
72 1 Mehdi Abaakouk
sur nagios:
73 1 Mehdi Abaakouk
74 1 Mehdi Abaakouk
<pre>
75 1 Mehdi Abaakouk
check_mk -II nommachine && check_mk -O
76 1 Mehdi Abaakouk
</pre>
77 1 Mehdi Abaakouk
78 1 Mehdi Abaakouk
h2. Remonter d'alert a partir des fichiers de log
79 1 Mehdi Abaakouk
80 16 Mehdi Abaakouk
Sur ttnnlog ou sur la machine elle même (si elle a check-mk-agent-logwatch d'installer)
81 16 Mehdi Abaakouk
Dans le fichier /etc/check_mk/logwatch.cfg ajouté des lignes comme:
82 1 Mehdi Abaakouk
83 1 Mehdi Abaakouk
<pre>
84 1 Mehdi Abaakouk
/var/log/messages
85 1 Mehdi Abaakouk
# Patterns are indented with one space are prefixed with:
86 1 Mehdi Abaakouk
# C: Critical messages
87 1 Mehdi Abaakouk
# W: Warning messages
88 1 Mehdi Abaakouk
# I: ignore these lines (OK)
89 1 Mehdi Abaakouk
# The first match decided. Lines that do not match any pattern
90 1 Mehdi Abaakouk
# are ignored
91 1 Mehdi Abaakouk
C Fail event detected on md device
92 1 Mehdi Abaakouk
I mdadm.*: Rebuild.*event detected
93 1 Mehdi Abaakouk
W mdadm\[
94 1 Mehdi Abaakouk
/data/www/*/*/syslog /data/www/*/*/kern.log
95 1 Mehdi Abaakouk
C Panic
96 1 Mehdi Abaakouk
C Oops
97 1 Mehdi Abaakouk
</pre>
98 1 Mehdi Abaakouk
99 16 Mehdi Abaakouk
Puis sur la machine nagios détecté la nouvelle config de l'agent:
100 1 Mehdi Abaakouk
101 1 Mehdi Abaakouk
<pre>
102 1 Mehdi Abaakouk
cmk -II ttnnlog
103 1 Mehdi Abaakouk
cmk -O
104 1 Mehdi Abaakouk
</pre>
105 1 Mehdi Abaakouk
106 1 Mehdi Abaakouk
107 1 Mehdi Abaakouk
h2. Fichier de configuration de check_mk
108 1 Mehdi Abaakouk
109 1 Mehdi Abaakouk
Les fichiers de configuration sont dans /etc/check_mk/
110 1 Mehdi Abaakouk
Le fichier principal est main.mk, la liste des contacts se trouve dans conf.d/contacts.mk
111 16 Mehdi Abaakouk
Les fichiers conf.d/autogen_*.mk sont générer par le script update_vm_parents_and_update_automap.sh
112 16 Mehdi Abaakouk
Il génère la liste des vm qui ne sont pas pressente dans main.mk avec les dépendances avec leurs nodes du cluster (avec l'api rapi de ganeti)
113 16 Mehdi Abaakouk
Il génère aussi la map automap pour nagvis (/usr/local/nagvis/etc/Automap.cfg
114 16 Mehdi Abaakouk
Il est exécute toutes les 20 minutes
115 1 Mehdi Abaakouk
116 1 Mehdi Abaakouk
h2. Voir le diff entre la conf nagios et la page Architecture du Wiki
117 1 Mehdi Abaakouk
118 1 Mehdi Abaakouk
119 1 Mehdi Abaakouk
<pre>
120 1 Mehdi Abaakouk
/etc/check_mk/diff-nagios-wiki.sh
121 1 Mehdi Abaakouk
</pre>
122 16 Mehdi Abaakouk
Le script contrôle le VLAN admin et le 91.224.149.128/25.
123 16 Mehdi Abaakouk
124 19 Mehdi Abaakouk
125 20 Mehdi Abaakouk
126 20 Mehdi Abaakouk
127 18 Mehdi Abaakouk
h2. Configuration d'un nuc utilisé pour tunnel ADSL
128 16 Mehdi Abaakouk
129 16 Mehdi Abaakouk
Sur le nuc:
130 16 Mehdi Abaakouk
131 16 Mehdi Abaakouk
132 16 Mehdi Abaakouk
<pre>
133 16 Mehdi Abaakouk
$ apt-get install puppet
134 16 Mehdi Abaakouk
$ puppet agent --enable
135 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
136 16 Mehdi Abaakouk
info: Creating a new SSL certificate request for flambere.tunnel
137 16 Mehdi Abaakouk
info: Certificate Request fingerprint (md5): 3F:E2:E2:14:B3:24:52:51:9D:DE:87:33:E8:2A:BB:7B
138 16 Mehdi Abaakouk
Exiting; no certificate found and waitforcert is disabled
139 16 Mehdi Abaakouk
140 16 Mehdi Abaakouk
</pre>
141 16 Mehdi Abaakouk
142 17 Mehdi Abaakouk
Sur la machine puppet dans le fichier /etc/puppet/manifests/nodes/adsl-tunnel.pp ajouter:
143 16 Mehdi Abaakouk
144 16 Mehdi Abaakouk
<pre>
145 16 Mehdi Abaakouk
node "flambere.tunnel" {
146 16 Mehdi Abaakouk
        $puppet_certname="flambere.tunnel"
147 16 Mehdi Abaakouk
        class{'tsf_nuc':}
148 16 Mehdi Abaakouk
}
149 16 Mehdi Abaakouk
</pre>
150 16 Mehdi Abaakouk
151 16 Mehdi Abaakouk
Puis taper:
152 16 Mehdi Abaakouk
<pre>
153 16 Mehdi Abaakouk
$ puppet ca sign flambere.tunnel
154 16 Mehdi Abaakouk
Notice: Signed certificate request for flambere.tunnel
155 16 Mehdi Abaakouk
Notice: Removing file Puppet::SSL::CertificateRequest flambere.tunnel at '/var/lib/puppet/ssl/ca/requests/flambere.tunnel.pem'
156 16 Mehdi Abaakouk
"-----BEGIN CERTIFICATE-----XXXXXXXXXXXXXXXXX\n-----END CERTIFICATE-----\n"
157 16 Mehdi Abaakouk
</pre>
158 16 Mehdi Abaakouk
159 16 Mehdi Abaakouk
Retourner sur le nuc et faire:
160 16 Mehdi Abaakouk
161 16 Mehdi Abaakouk
<pre>
162 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
163 16 Mehdi Abaakouk
</pre>
164 16 Mehdi Abaakouk
165 16 Mehdi Abaakouk
166 16 Mehdi Abaakouk
Sur la machine nagios ajouter le host avec son ip:
167 1 Mehdi Abaakouk
168 19 Mehdi Abaakouk
<pre>
169 16 Mehdi Abaakouk
all_host = [
170 16 Mehdi Abaakouk
...
171 16 Mehdi Abaakouk
        "flambere.tunnel|noipv6|noapt|adsltunnel",
172 16 Mehdi Abaakouk
...
173 16 Mehdi Abaakouk
]
174 16 Mehdi Abaakouk
175 1 Mehdi Abaakouk
ipaddresses['flambere.tunnel'] = '10.0.12.2'
176 19 Mehdi Abaakouk
</pre>
177 19 Mehdi Abaakouk
178 19 Mehdi Abaakouk
Puis taper:
179 19 Mehdi Abaakouk
180 19 Mehdi Abaakouk
<pre>
181 19 Mehdi Abaakouk
cmk -II flambere.tunnel && cmk -O
182 19 Mehdi Abaakouk
</pre>
183 6 Mehdi Abaakouk
184 6 Mehdi Abaakouk
h2. Liens vers outils de visualisation des logs
185 6 Mehdi Abaakouk
- http://logstash.net/
186 6 Mehdi Abaakouk
- http://kibana.org/