Supervision et Log » Historique » Version 35
Mehdi Abaakouk, 07/09/2015 15:28
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 | 31 | Mehdi Abaakouk | </pre> |
155 | 31 | Mehdi Abaakouk | |
156 | 31 | Mehdi Abaakouk | Puis sur la machine nagios: |
157 | 31 | Mehdi Abaakouk | |
158 | 31 | Mehdi Abaakouk | <pre> |
159 | 31 | Mehdi Abaakouk | scp /etc/check_mk/client-plugins/openwrt/check_mk_agent 10.0.50.2:/usr/bin/check_mk_agent |
160 | 31 | Mehdi Abaakouk | scp /etc/check_mk/client-plugins/openwrt/xinetd.d_check_mk 10.0.50.2:/etc/xinetd.d/check_mk |
161 | 31 | Mehdi Abaakouk | </pre> |
162 | 31 | Mehdi Abaakouk | |
163 | 31 | Mehdi Abaakouk | Sur le router |
164 | 31 | Mehdi Abaakouk | |
165 | 31 | Mehdi Abaakouk | <pre> |
166 | 29 | Mehdi Abaakouk | /etc/init.d/xinetd restart |
167 | 29 | Mehdi Abaakouk | </pre> |
168 | 29 | Mehdi Abaakouk | |
169 | 31 | Mehdi Abaakouk | De nouveau sur la machine nagios ajouter le router dans main.mk: |
170 | 29 | Mehdi Abaakouk | |
171 | 29 | Mehdi Abaakouk | <pre> |
172 | 29 | Mehdi Abaakouk | all_host = [ |
173 | 29 | Mehdi Abaakouk | ... |
174 | 32 | Mehdi Abaakouk | "banyuls.tunnel|noipv6|adsltunnel", |
175 | 29 | Mehdi Abaakouk | ... |
176 | 1 | Mehdi Abaakouk | ] |
177 | 32 | Mehdi Abaakouk | |
178 | 32 | Mehdi Abaakouk | ipaddresses['banyuls.tunnel'] = '10.0.50.2' |
179 | 32 | Mehdi Abaakouk | |
180 | 29 | Mehdi Abaakouk | </pre> |
181 | 29 | Mehdi Abaakouk | |
182 | 29 | Mehdi Abaakouk | Et taper: |
183 | 29 | Mehdi Abaakouk | |
184 | 29 | Mehdi Abaakouk | <pre> |
185 | 29 | Mehdi Abaakouk | cmk -II router_openwrt && cmk -O |
186 | 29 | Mehdi Abaakouk | </pre> |
187 | 29 | Mehdi Abaakouk | |
188 | 33 | Mehdi Abaakouk | h2. Installation de nucnagios: |
189 | 33 | Mehdi Abaakouk | |
190 | 33 | Mehdi Abaakouk | Faire la préparation puppet (copier la conf de nagios.tetaneutral.net) |
191 | 33 | Mehdi Abaakouk | |
192 | 33 | Mehdi Abaakouk | $ puppet agent -vt --certname nucnagios.tetaneutral.net --pluginsync --server puppet.tetaneutral.net |
193 | 33 | Mehdi Abaakouk | |
194 | 34 | Mehdi Abaakouk | *PNP4NAGIOS n'est temporairement pas dans jessie, d'ou le backport du package de jessie* |
195 | 33 | Mehdi Abaakouk | <pre> |
196 | 33 | Mehdi Abaakouk | root@nucnagios:~# mkdir pnp4nagios |
197 | 33 | Mehdi Abaakouk | root@nucnagios:~# cd pnp4nagios/ |
198 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios# dget http://http.debian.net/debian/pool/main/p/pnp4nagios/pnp4nagios_0.6.24+dfsg1-4.dsc |
199 | 33 | Mehdi Abaakouk | dget: retrieving http://http.debian.net/debian/pool/main/p/pnp4nagios/pnp4nagios_0.6.24+dfsg1-4.dsc |
200 | 33 | Mehdi Abaakouk | ... |
201 | 33 | Mehdi Abaakouk | dpkg-source: info: applying adjust-template-path |
202 | 33 | Mehdi Abaakouk | dpkg-source: info: applying privacy-warning |
203 | 33 | Mehdi Abaakouk | dpkg-source: info: applying config_instances |
204 | 33 | Mehdi Abaakouk | dpkg-source: info: applying install_opts |
205 | 33 | Mehdi Abaakouk | dpkg-source: info: applying hardening |
206 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios# cd pnp4nagios-0.6.24+dfsg1/ |
207 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dpkg-checkbuilddeps |
208 | 33 | Mehdi Abaakouk | dpkg-checkbuilddeps: Unmet build dependencies: autotools-dev dh-autoreconf quilt rrdtool python-jsmin |
209 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# apt-get install autotools-dev dh-autoreconf quilt rrdtool python-jsmin |
210 | 33 | Mehdi Abaakouk | ... |
211 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dch --local ~ttnn1+ --distribution jessie-backports "jessie-backports" |
212 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# dpkg-buildpackage -us -uc |
213 | 33 | Mehdi Abaakouk | dpkg-buildpackage: source package pnp4nagios |
214 | 33 | Mehdi Abaakouk | dpkg-buildpackage: source version 0.6.24+dfsg1-4~ttnn1+1 |
215 | 33 | Mehdi Abaakouk | dpkg-buildpackage: source distribution jessie-backports |
216 | 33 | Mehdi Abaakouk | dpkg-buildpackage: source changed by root <root@nucnagios.tetaneutral.net> |
217 | 33 | Mehdi Abaakouk | dpkg-buildpackage: host architecture amd64 |
218 | 33 | Mehdi Abaakouk | dpkg-source --before-build pnp4nagios-0.6.24+dfsg1 |
219 | 33 | Mehdi Abaakouk | ... |
220 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios/pnp4nagios-0.6.24+dfsg1# cd .. |
221 | 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 |
222 | 33 | Mehdi Abaakouk | # ignorer les erreurs |
223 | 33 | Mehdi Abaakouk | root@nucnagios:~/pnp4nagios# apt-get install -f |
224 | 33 | Mehdi Abaakouk | </pre> |
225 | 34 | Mehdi Abaakouk | *FIN PNP4NAGIOS* |
226 | 33 | Mehdi Abaakouk | |
227 | 33 | Mehdi Abaakouk | Préparation et installtion de la conf de checkmk |
228 | 33 | Mehdi Abaakouk | |
229 | 33 | Mehdi Abaakouk | <pre> |
230 | 33 | Mehdi Abaakouk | $ rm /etc/check_mk/ -rf |
231 | 33 | Mehdi Abaakouk | $ git clone git@git.tetaneutral.net:nagios /etc/check_mk |
232 | 33 | Mehdi Abaakouk | |
233 | 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) |
234 | 33 | Mehdi Abaakouk | |
235 | 33 | Mehdi Abaakouk | $ wget http://mathias-kettner.com/download/check_mk-1.2.6p10.tar.gz |
236 | 33 | Mehdi Abaakouk | $ ln -sf /etc/check_mk/root_DOTcheck_mk_setup.conf /root/.check_mk_setup.conf # Copie de la configuration de checkmk |
237 | 33 | Mehdi Abaakouk | $ tar -xf check_mk-1.2.6p10.tar.gz |
238 | 33 | Mehdi Abaakouk | $ cd check_mk-1.2.6p10 |
239 | 33 | Mehdi Abaakouk | $ ./setup.sh --yes |
240 | 33 | Mehdi Abaakouk | # Si rien apparait c'est bon. |
241 | 35 | Mehdi Abaakouk | $ cd /etc/check_mk |
242 | 35 | Mehdi Abaakouk | $ ./createlinks.sh |
243 | 35 | Mehdi Abaakouk | Stopping nagios3 (via systemctl): nagios3.service. |
244 | 35 | Mehdi Abaakouk | Stopping smokeping (via systemctl): smokeping.service. |
245 | 35 | Mehdi Abaakouk | $ cd clients-plugins |
246 | 35 | Mehdi Abaakouk | $ ./install_plugins.sh |
247 | 33 | Mehdi Abaakouk | </pre> |
248 | 35 | Mehdi Abaakouk | |
249 | 35 | Mehdi Abaakouk | Copies des données de l'ancien nagios |
250 | 35 | Mehdi Abaakouk | |
251 | 35 | Mehdi Abaakouk | <pre> |
252 | 35 | Mehdi Abaakouk | /etc/init.d/nagios3 stop |
253 | 35 | Mehdi Abaakouk | /etc/init.d/somkeping stop |
254 | 35 | Mehdi Abaakouk | /etc/init.d/apache2 stop |
255 | 35 | Mehdi Abaakouk | cd /nagiosdata/ |
256 | 35 | Mehdi Abaakouk | for i in var_*; do rsync --progress --delete -a -e 'ssh -p2222' $i/ nucnagios:/nagiosdata/$i/ ; done |
257 | 35 | Mehdi Abaakouk | </pre> |
258 | 35 | Mehdi Abaakouk | |
259 | 33 | Mehdi Abaakouk | |
260 | 6 | Mehdi Abaakouk | h2. Liens vers outils de visualisation des logs |
261 | 28 | Mehdi Abaakouk | |
262 | 6 | Mehdi Abaakouk | - http://logstash.net/ |
263 | 6 | Mehdi Abaakouk | - http://kibana.org/ |