Projet

Général

Profil

Supervision et Log » Historique » Version 41

Mehdi Abaakouk, 23/09/2015 22:55

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 24 Mehdi Abaakouk
h2. Installation rapide de check-mk-agent:
36 1 Mehdi Abaakouk
37 21 Mehdi Abaakouk
sur la machine, c'est automatiquement fait avec puppet.
38 1 Mehdi Abaakouk
39 1 Mehdi Abaakouk
sur nagios:
40 1 Mehdi Abaakouk
41 1 Mehdi Abaakouk
<pre>
42 1 Mehdi Abaakouk
check_mk -II nommachine && check_mk -O
43 1 Mehdi Abaakouk
</pre>
44 1 Mehdi Abaakouk
45 1 Mehdi Abaakouk
h2. Remonter d'alert a partir des fichiers de log
46 1 Mehdi Abaakouk
47 25 Mehdi Abaakouk
Sur puppet on peut modifier le fichier https://chiliproject.tetaneutral.net/projects/git-tetaneutral-net/repository/puppetmaster/revisions/master/entry/manifests/files/check-mk-agent-logwatch.cfg.erb
48 25 Mehdi Abaakouk
comme ceci:
49 1 Mehdi Abaakouk
50 1 Mehdi Abaakouk
<pre>
51 1 Mehdi Abaakouk
/var/log/messages
52 1 Mehdi Abaakouk
# Patterns are indented with one space are prefixed with:
53 1 Mehdi Abaakouk
# C: Critical messages
54 1 Mehdi Abaakouk
# W: Warning messages
55 1 Mehdi Abaakouk
# I: ignore these lines (OK)
56 1 Mehdi Abaakouk
# The first match decided. Lines that do not match any pattern
57 1 Mehdi Abaakouk
# are ignored
58 1 Mehdi Abaakouk
C Fail event detected on md device
59 1 Mehdi Abaakouk
I mdadm.*: Rebuild.*event detected
60 1 Mehdi Abaakouk
W mdadm\[
61 1 Mehdi Abaakouk
/data/www/*/*/syslog /data/www/*/*/kern.log
62 1 Mehdi Abaakouk
C Panic
63 1 Mehdi Abaakouk
C Oops
64 1 Mehdi Abaakouk
</pre>
65 1 Mehdi Abaakouk
66 25 Mehdi Abaakouk
Puis sur la machine nagios, dans le cas ou un nouveau fichier est ajouté:
67 1 Mehdi Abaakouk
68 1 Mehdi Abaakouk
<pre>
69 25 Mehdi Abaakouk
cmk -II mon machine
70 1 Mehdi Abaakouk
cmk -O
71 1 Mehdi Abaakouk
</pre>
72 1 Mehdi Abaakouk
73 1 Mehdi Abaakouk
h2. Fichier de configuration de check_mk
74 1 Mehdi Abaakouk
75 1 Mehdi Abaakouk
Les fichiers de configuration sont dans /etc/check_mk/
76 1 Mehdi Abaakouk
Le fichier principal est main.mk, la liste des contacts se trouve dans conf.d/contacts.mk
77 16 Mehdi Abaakouk
Les fichiers conf.d/autogen_*.mk sont générer par le script update_vm_parents_and_update_automap.sh
78 26 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 d'openstack
79 16 Mehdi Abaakouk
Il génère aussi la map automap pour nagvis (/usr/local/nagvis/etc/Automap.cfg
80 16 Mehdi Abaakouk
Il est exécute toutes les 20 minutes
81 1 Mehdi Abaakouk
82 1 Mehdi Abaakouk
h2. Voir le diff entre la conf nagios et la page Architecture du Wiki
83 1 Mehdi Abaakouk
84 1 Mehdi Abaakouk
85 1 Mehdi Abaakouk
<pre>
86 1 Mehdi Abaakouk
/etc/check_mk/diff-nagios-wiki.sh
87 1 Mehdi Abaakouk
</pre>
88 16 Mehdi Abaakouk
Le script contrôle le VLAN admin et le 91.224.149.128/25.
89 16 Mehdi Abaakouk
90 27 Mehdi Abaakouk
h2. Configuration d'un nuc (ou autre linux) utilisé pour tunnel ADSL
91 16 Mehdi Abaakouk
92 16 Mehdi Abaakouk
Sur le nuc:
93 16 Mehdi Abaakouk
94 16 Mehdi Abaakouk
95 16 Mehdi Abaakouk
<pre>
96 16 Mehdi Abaakouk
$ apt-get install puppet
97 16 Mehdi Abaakouk
$ puppet agent --enable
98 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
99 16 Mehdi Abaakouk
info: Creating a new SSL certificate request for flambere.tunnel
100 16 Mehdi Abaakouk
info: Certificate Request fingerprint (md5): 3F:E2:E2:14:B3:24:52:51:9D:DE:87:33:E8:2A:BB:7B
101 16 Mehdi Abaakouk
Exiting; no certificate found and waitforcert is disabled
102 16 Mehdi Abaakouk
103 16 Mehdi Abaakouk
</pre>
104 16 Mehdi Abaakouk
105 17 Mehdi Abaakouk
Sur la machine puppet dans le fichier /etc/puppet/manifests/nodes/adsl-tunnel.pp ajouter:
106 16 Mehdi Abaakouk
107 16 Mehdi Abaakouk
<pre>
108 16 Mehdi Abaakouk
node "flambere.tunnel" {
109 16 Mehdi Abaakouk
        $puppet_certname="flambere.tunnel"
110 16 Mehdi Abaakouk
        class{'tsf_nuc':}
111 16 Mehdi Abaakouk
}
112 16 Mehdi Abaakouk
</pre>
113 16 Mehdi Abaakouk
114 16 Mehdi Abaakouk
Puis taper:
115 16 Mehdi Abaakouk
<pre>
116 16 Mehdi Abaakouk
$ puppet ca sign flambere.tunnel
117 16 Mehdi Abaakouk
Notice: Signed certificate request for flambere.tunnel
118 16 Mehdi Abaakouk
Notice: Removing file Puppet::SSL::CertificateRequest flambere.tunnel at '/var/lib/puppet/ssl/ca/requests/flambere.tunnel.pem'
119 16 Mehdi Abaakouk
"-----BEGIN CERTIFICATE-----XXXXXXXXXXXXXXXXX\n-----END CERTIFICATE-----\n"
120 16 Mehdi Abaakouk
</pre>
121 16 Mehdi Abaakouk
122 16 Mehdi Abaakouk
Retourner sur le nuc et faire:
123 16 Mehdi Abaakouk
124 16 Mehdi Abaakouk
<pre>
125 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
126 16 Mehdi Abaakouk
</pre>
127 16 Mehdi Abaakouk
128 16 Mehdi Abaakouk
129 16 Mehdi Abaakouk
Sur la machine nagios ajouter le host avec son ip:
130 1 Mehdi Abaakouk
131 19 Mehdi Abaakouk
<pre>
132 16 Mehdi Abaakouk
all_host = [
133 16 Mehdi Abaakouk
...
134 16 Mehdi Abaakouk
        "flambere.tunnel|noipv6|noapt|adsltunnel",
135 16 Mehdi Abaakouk
...
136 16 Mehdi Abaakouk
]
137 16 Mehdi Abaakouk
138 1 Mehdi Abaakouk
ipaddresses['flambere.tunnel'] = '10.0.12.2'
139 19 Mehdi Abaakouk
</pre>
140 19 Mehdi Abaakouk
141 19 Mehdi Abaakouk
Puis taper:
142 19 Mehdi Abaakouk
143 19 Mehdi Abaakouk
<pre>
144 19 Mehdi Abaakouk
cmk -II flambere.tunnel && cmk -O
145 19 Mehdi Abaakouk
</pre>
146 6 Mehdi Abaakouk
147 30 Mehdi Abaakouk
h2. Configuration checkmk sur openwrt
148 1 Mehdi Abaakouk
149 31 Mehdi Abaakouk
Installer et configurer xinetd/check_mk_agent sur le router
150 29 Mehdi Abaakouk
151 1 Mehdi Abaakouk
<pre>
152 31 Mehdi Abaakouk
opkg update
153 1 Mehdi Abaakouk
opkg install xinetd
154 41 Mehdi Abaakouk
mkdir -p /usr/lib/check_mk_agent/plugins/
155 31 Mehdi Abaakouk
</pre>
156 31 Mehdi Abaakouk
157 31 Mehdi Abaakouk
Puis sur la machine nagios:
158 31 Mehdi Abaakouk
159 31 Mehdi Abaakouk
<pre>
160 31 Mehdi Abaakouk
scp /etc/check_mk/client-plugins/openwrt/check_mk_agent 10.0.50.2:/usr/bin/check_mk_agent 
161 31 Mehdi Abaakouk
scp /etc/check_mk/client-plugins/openwrt/xinetd.d_check_mk 10.0.50.2:/etc/xinetd.d/check_mk
162 41 Mehdi Abaakouk
scp /etc/check_mk/client-plugins/cmk_plugins/agents/nut 10.20.0.12:/usr/lib/check_mk_agent/plugins/
163 31 Mehdi Abaakouk
</pre>
164 31 Mehdi Abaakouk
165 38 Laurent GUERBY
Attention la ligne  only_from de /etc/xinetd.d/check_mk est a mettre a jour manuelle si changement d'ip nagios
166 38 Laurent GUERBY
167 31 Mehdi Abaakouk
Sur le router
168 31 Mehdi Abaakouk
169 31 Mehdi Abaakouk
<pre>
170 29 Mehdi Abaakouk
/etc/init.d/xinetd restart
171 29 Mehdi Abaakouk
</pre>
172 29 Mehdi Abaakouk
173 31 Mehdi Abaakouk
De nouveau sur la machine nagios ajouter le router dans main.mk:
174 29 Mehdi Abaakouk
175 29 Mehdi Abaakouk
<pre>
176 29 Mehdi Abaakouk
all_host = [
177 29 Mehdi Abaakouk
...
178 32 Mehdi Abaakouk
        "banyuls.tunnel|noipv6|adsltunnel",
179 29 Mehdi Abaakouk
...
180 1 Mehdi Abaakouk
]
181 32 Mehdi Abaakouk
182 32 Mehdi Abaakouk
ipaddresses['banyuls.tunnel'] = '10.0.50.2'
183 32 Mehdi Abaakouk
184 29 Mehdi Abaakouk
</pre>
185 29 Mehdi Abaakouk
186 29 Mehdi Abaakouk
Et taper:
187 29 Mehdi Abaakouk
188 29 Mehdi Abaakouk
<pre>
189 29 Mehdi Abaakouk
cmk -II router_openwrt && cmk -O
190 29 Mehdi Abaakouk
</pre>
191 29 Mehdi Abaakouk
192 33 Mehdi Abaakouk
h2. Installation de nucnagios:
193 33 Mehdi Abaakouk
194 39 Mehdi Abaakouk
Faire la préparation puppet (à partir la conf de l'ancien nagios)
195 1 Mehdi Abaakouk
196 39 Mehdi Abaakouk
<pre>
197 39 Mehdi Abaakouk
nucnagios $ puppet agent -vt --certname nucnagios.tetaneutral.net --pluginsync  --server puppet.tetaneutral.net
198 39 Mehdi Abaakouk
puppet $ puppet ca sign nucnagios.tetaneutral.net
199 39 Mehdi Abaakouk
nuxnagios $ puppet agent -vt --certname nucnagios.tetaneutral.net --pluginsync  --server puppet.tetaneutral.net
200 39 Mehdi Abaakouk
</pre>
201 33 Mehdi Abaakouk
202 34 Mehdi Abaakouk
*PNP4NAGIOS n'est temporairement pas dans jessie, d'ou le backport du package de jessie*
203 33 Mehdi Abaakouk
<pre>
204 33 Mehdi Abaakouk
root@nucnagios:~# mkdir pnp4nagios
205 33 Mehdi Abaakouk
root@nucnagios:~# cd pnp4nagios/
206 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios# dget http://http.debian.net/debian/pool/main/p/pnp4nagios/pnp4nagios_0.6.24+dfsg1-4.dsc
207 33 Mehdi Abaakouk
dget: retrieving http://http.debian.net/debian/pool/main/p/pnp4nagios/pnp4nagios_0.6.24+dfsg1-4.dsc
208 33 Mehdi Abaakouk
...
209 33 Mehdi Abaakouk
dpkg-source: info: applying adjust-template-path
210 33 Mehdi Abaakouk
dpkg-source: info: applying privacy-warning
211 33 Mehdi Abaakouk
dpkg-source: info: applying config_instances
212 33 Mehdi Abaakouk
dpkg-source: info: applying install_opts
213 33 Mehdi Abaakouk
dpkg-source: info: applying hardening
214 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios# cd pnp4nagios-0.6.24+dfsg1/
215 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dpkg-checkbuilddeps
216 33 Mehdi Abaakouk
dpkg-checkbuilddeps: Unmet build dependencies: autotools-dev dh-autoreconf quilt rrdtool python-jsmin
217 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# apt-get install autotools-dev dh-autoreconf quilt rrdtool python-jsmin
218 33 Mehdi Abaakouk
...
219 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dch --local ~ttnn1+ --distribution jessie-backports "jessie-backports"
220 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dpkg-buildpackage -us -uc
221 33 Mehdi Abaakouk
dpkg-buildpackage: source package pnp4nagios
222 33 Mehdi Abaakouk
dpkg-buildpackage: source version 0.6.24+dfsg1-4~ttnn1+1
223 33 Mehdi Abaakouk
dpkg-buildpackage: source distribution jessie-backports
224 33 Mehdi Abaakouk
dpkg-buildpackage: source changed by root <root@nucnagios.tetaneutral.net>
225 33 Mehdi Abaakouk
dpkg-buildpackage: host architecture amd64
226 33 Mehdi Abaakouk
 dpkg-source --before-build pnp4nagios-0.6.24+dfsg1
227 33 Mehdi Abaakouk
...
228 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# cd ..
229 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios# dpkg -i pnp4nagios-bin_0.6.24+dfsg1-4~ttnn1+1_amd64.deb pnp4nagios_0.6.24+dfsg1-4~ttnn1+1_all.deb  pnp4nagios-web_0.6.24+dfsg1-4~ttnn1+1_all.deb pnp4nagios-web-config-nagios3_0.6.24+dfsg1-4~ttnn1+1_all.deb
230 33 Mehdi Abaakouk
# ignorer les erreurs
231 33 Mehdi Abaakouk
root@nucnagios:~/pnp4nagios# apt-get install -f
232 33 Mehdi Abaakouk
</pre>
233 34 Mehdi Abaakouk
*FIN PNP4NAGIOS*
234 33 Mehdi Abaakouk
235 33 Mehdi Abaakouk
Préparation et installtion de la conf de checkmk
236 33 Mehdi Abaakouk
237 33 Mehdi Abaakouk
<pre>
238 36 Mehdi Abaakouk
$ rm -rf /etc/check_mk/
239 36 Mehdi Abaakouk
$ rm -f /etc/nagios3/conf.d/*nagios2*
240 33 Mehdi Abaakouk
$ git clone git@git.tetaneutral.net:nagios /etc/check_mk
241 33 Mehdi Abaakouk
242 33 Mehdi Abaakouk
Les sources de check mk doivent être télécharger ici: http://mathias-kettner.com/check_mk_download_source.html (Ne surtout pas prendre "The Check_MK Editions" Or "Cee" qui se trouve ailleurs sur le site)
243 33 Mehdi Abaakouk
244 33 Mehdi Abaakouk
$ wget http://mathias-kettner.com/download/check_mk-1.2.6p10.tar.gz
245 33 Mehdi Abaakouk
$ ln -sf /etc/check_mk/root_DOTcheck_mk_setup.conf /root/.check_mk_setup.conf       # Copie de la configuration de checkmk
246 33 Mehdi Abaakouk
$ tar -xf check_mk-1.2.6p10.tar.gz
247 33 Mehdi Abaakouk
$ cd check_mk-1.2.6p10
248 33 Mehdi Abaakouk
$ ./setup.sh --yes
249 33 Mehdi Abaakouk
# Si rien apparait c'est bon.
250 35 Mehdi Abaakouk
$ cd /etc/check_mk
251 35 Mehdi Abaakouk
$ ./createlinks.sh 
252 35 Mehdi Abaakouk
Stopping nagios3 (via systemctl): nagios3.service.
253 35 Mehdi Abaakouk
Stopping smokeping (via systemctl): smokeping.service.
254 35 Mehdi Abaakouk
$ cd clients-plugins
255 35 Mehdi Abaakouk
$ ./install_plugins.sh
256 33 Mehdi Abaakouk
</pre>
257 35 Mehdi Abaakouk
258 37 Mehdi Abaakouk
A partir de l'ancien nagios, copies des anciennes données
259 35 Mehdi Abaakouk
260 35 Mehdi Abaakouk
<pre>
261 35 Mehdi Abaakouk
/etc/init.d/nagios3 stop
262 35 Mehdi Abaakouk
/etc/init.d/somkeping stop
263 35 Mehdi Abaakouk
/etc/init.d/apache2 stop
264 35 Mehdi Abaakouk
cd /nagiosdata/
265 35 Mehdi Abaakouk
for i in var_*; do rsync --progress --delete -a -e 'ssh -p2222' $i/ nucnagios:/nagiosdata/$i/ ; done
266 35 Mehdi Abaakouk
</pre>
267 1 Mehdi Abaakouk
268 37 Mehdi Abaakouk
Sur le nouveau nagios, démarrage de nagios/apache/checkmk
269 37 Mehdi Abaakouk
270 36 Mehdi Abaakouk
<pre>
271 36 Mehdi Abaakouk
usermod -a -G nagios www-data 
272 36 Mehdi Abaakouk
/etc/init.d/apache2 restart
273 37 Mehdi Abaakouk
cmk -R
274 37 Mehdi Abaakouk
</pre>
275 37 Mehdi Abaakouk
276 37 Mehdi Abaakouk
Ensuite sur la machine puppet changer les IPs autorisé à faire du checkmk
277 37 Mehdi Abaakouk
278 37 Mehdi Abaakouk
Puis sur le DNS faire pointer nagios sur les ips de nuc nagios.
279 33 Mehdi Abaakouk
280 40 Laurent GUERBY
h2. pingall
281 40 Laurent GUERBY
282 40 Laurent GUERBY
Liste validee au bout de 7 jours, pour forcer :
283 40 Laurent GUERBY
cmk -II pingall ; cmk -O
284 40 Laurent GUERBY
285 40 Laurent GUERBY
<pre>
286 40 Laurent GUERBY
/etc/check_mk/pingall.cache
287 40 Laurent GUERBY
/etc/check_mk/client-plugins/cmk_plugins/pnp-templates/check_mk-pingall.php
288 40 Laurent GUERBY
/etc/check_mk/client-plugins/cmk_plugins/agents/pingall
289 40 Laurent GUERBY
/etc/check_mk/client-plugins/cmk_plugins/checks/pingall
290 40 Laurent GUERBY
/etc/check_mk/pingall.conf
291 40 Laurent GUERBY
</pre>
292 40 Laurent GUERBY
293 6 Mehdi Abaakouk
h2. Liens vers outils de visualisation des logs
294 28 Mehdi Abaakouk
295 6 Mehdi Abaakouk
- http://logstash.net/
296 6 Mehdi Abaakouk
- http://kibana.org/