Projet

Général

Profil

Supervision et Log » Historique » Version 26

Mehdi Abaakouk, 19/12/2014 08:20

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 19 Mehdi Abaakouk
91 20 Mehdi Abaakouk
92 20 Mehdi Abaakouk
93 18 Mehdi Abaakouk
h2. Configuration d'un nuc utilisé pour tunnel ADSL
94 16 Mehdi Abaakouk
95 16 Mehdi Abaakouk
Sur le nuc:
96 16 Mehdi Abaakouk
97 16 Mehdi Abaakouk
98 16 Mehdi Abaakouk
<pre>
99 16 Mehdi Abaakouk
$ apt-get install puppet
100 16 Mehdi Abaakouk
$ puppet agent --enable
101 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
102 16 Mehdi Abaakouk
info: Creating a new SSL certificate request for flambere.tunnel
103 16 Mehdi Abaakouk
info: Certificate Request fingerprint (md5): 3F:E2:E2:14:B3:24:52:51:9D:DE:87:33:E8:2A:BB:7B
104 16 Mehdi Abaakouk
Exiting; no certificate found and waitforcert is disabled
105 16 Mehdi Abaakouk
106 16 Mehdi Abaakouk
</pre>
107 16 Mehdi Abaakouk
108 17 Mehdi Abaakouk
Sur la machine puppet dans le fichier /etc/puppet/manifests/nodes/adsl-tunnel.pp ajouter:
109 16 Mehdi Abaakouk
110 16 Mehdi Abaakouk
<pre>
111 16 Mehdi Abaakouk
node "flambere.tunnel" {
112 16 Mehdi Abaakouk
        $puppet_certname="flambere.tunnel"
113 16 Mehdi Abaakouk
        class{'tsf_nuc':}
114 16 Mehdi Abaakouk
}
115 16 Mehdi Abaakouk
</pre>
116 16 Mehdi Abaakouk
117 16 Mehdi Abaakouk
Puis taper:
118 16 Mehdi Abaakouk
<pre>
119 16 Mehdi Abaakouk
$ puppet ca sign flambere.tunnel
120 16 Mehdi Abaakouk
Notice: Signed certificate request for flambere.tunnel
121 16 Mehdi Abaakouk
Notice: Removing file Puppet::SSL::CertificateRequest flambere.tunnel at '/var/lib/puppet/ssl/ca/requests/flambere.tunnel.pem'
122 16 Mehdi Abaakouk
"-----BEGIN CERTIFICATE-----XXXXXXXXXXXXXXXXX\n-----END CERTIFICATE-----\n"
123 16 Mehdi Abaakouk
</pre>
124 16 Mehdi Abaakouk
125 16 Mehdi Abaakouk
Retourner sur le nuc et faire:
126 16 Mehdi Abaakouk
127 16 Mehdi Abaakouk
<pre>
128 16 Mehdi Abaakouk
$ puppet agent --server puppet.tetaneutral.net --certname=flambere.tunnel --pluginsync -vt
129 16 Mehdi Abaakouk
</pre>
130 16 Mehdi Abaakouk
131 16 Mehdi Abaakouk
132 16 Mehdi Abaakouk
Sur la machine nagios ajouter le host avec son ip:
133 1 Mehdi Abaakouk
134 19 Mehdi Abaakouk
<pre>
135 16 Mehdi Abaakouk
all_host = [
136 16 Mehdi Abaakouk
...
137 16 Mehdi Abaakouk
        "flambere.tunnel|noipv6|noapt|adsltunnel",
138 16 Mehdi Abaakouk
...
139 16 Mehdi Abaakouk
]
140 16 Mehdi Abaakouk
141 1 Mehdi Abaakouk
ipaddresses['flambere.tunnel'] = '10.0.12.2'
142 19 Mehdi Abaakouk
</pre>
143 19 Mehdi Abaakouk
144 19 Mehdi Abaakouk
Puis taper:
145 19 Mehdi Abaakouk
146 19 Mehdi Abaakouk
<pre>
147 19 Mehdi Abaakouk
cmk -II flambere.tunnel && cmk -O
148 19 Mehdi Abaakouk
</pre>
149 6 Mehdi Abaakouk
150 6 Mehdi Abaakouk
h2. Liens vers outils de visualisation des logs
151 6 Mehdi Abaakouk
- http://logstash.net/
152 6 Mehdi Abaakouk
- http://kibana.org/