Question
Traitement des logs dhcp de windows
- Dada
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 14 ans 8 mois #9888
par Dada
Traitement des logs dhcp de windows a été créé par Dada
Bonjour,
Je souhaiterais connaitre le site où se trouve les users grâce aux adresses ip contenues dans les logs dhcp.Voici les fifférents points à traiter :
1 - Les logs sont sous la forme de 7 fichiers différents. Le but serait de les regrouper dans le même fichier.
2 - Ces 7 fichiers de log ne remontent qu'à maxi 7 jours (1 fic par jour). Tous les jours un fichier de log se créé et celui qui date de plus de 7 jours est supprimé. Le but serait donc que le script aille lire le fichier le plus récent toutes les 15 minutes et récupère les nouvelles lignes pour les inscrire dans le fichier créé à l'étape 1
3 - Les 29 premières lignes des logs ne sont que des commentaires inutiles
4 - Je souhaite ne pister que quelques users, il faudrait ne récupérer que les lignes dont le hostname correspond à des hostnames contenus dans un fichier texte. Ce même fichier comporterait 2 colonnes, une avec le hostname et une colonne avec le username. Ainsi dans le fichier fichier final on pourrait afficher le username en fonction du nom de PC.
Voici un exemple d'un fichier de logs dhcp
[code:1]
Microsoft DHCP Service Activity Log
Event ID Meaning
00 The log was started.
01 The log was stopped.
02 The log was temporarily paused due to low disk space.
10 A new IP address was leased to a client.
11 A lease was renewed by a client.
12 A lease was released by a client.
13 An IP address was found to be in use on the network.
14 A lease request could not be satisfied because the scope's
address pool was exhausted.
15 A lease was denied.
16 A lease was deleted.
17 A lease was expired.
20 A BOOTP address was leased to a client.
21 A dynamic BOOTP address was leased to a client.
22 A BOOTP request could not be satisfied because the scope's
address pool for BOOTP was exhausted.
23 A BOOTP IP address was deleted after checking to see it was
not in use.
24 IP address cleanup operation has began.
25 IP address cleanup statistics.
30 DNS update request to the named DNS server
31 DNS update failed
32 DNS update successful
50+ Codes above 50 are used for Rogue Server Detection information.
ID,Date,Time,Description,IP Address,Host Name,MAC Address
24,06/30/11,00:00:10,Database Cleanup Begin,,,,
30,06/30/11,00:00:10,DNS Update Request,137.10.168.192,CPRO012.entreprise.com,,
30,06/30/11,00:00:10,DNS Update Request,152.22.168.192,tpichnaud.,,
30,06/30/11,00:00:10,DNS Update Request,133.32.168.192,CPRI065.,,
[/code:1]
6 - Le troisième octet de l'adresse IP des lignes correspond à un site. Le but est donc d'obtenir un fichier final contenant les lignes de logs formatées en colonne comme suit :
username site date_de_connexion heure_connexion hostname @IP
Au final nous aurions donc
- 1 fichier contenant le script
- 1 fichier texte contenant la correspondance @ip / site
- 1 fichier contenant la correspondance hostname / username
- 1 fichier final qui contient le formatage final
Peut-être y aura t-il besoin de fichiers intermédiaires de traitement des données par étapes par le script ?<br><br>Message édité par: shellfree, à: 7/07/11 10:02
Je souhaiterais connaitre le site où se trouve les users grâce aux adresses ip contenues dans les logs dhcp.Voici les fifférents points à traiter :
1 - Les logs sont sous la forme de 7 fichiers différents. Le but serait de les regrouper dans le même fichier.
2 - Ces 7 fichiers de log ne remontent qu'à maxi 7 jours (1 fic par jour). Tous les jours un fichier de log se créé et celui qui date de plus de 7 jours est supprimé. Le but serait donc que le script aille lire le fichier le plus récent toutes les 15 minutes et récupère les nouvelles lignes pour les inscrire dans le fichier créé à l'étape 1
3 - Les 29 premières lignes des logs ne sont que des commentaires inutiles
4 - Je souhaite ne pister que quelques users, il faudrait ne récupérer que les lignes dont le hostname correspond à des hostnames contenus dans un fichier texte. Ce même fichier comporterait 2 colonnes, une avec le hostname et une colonne avec le username. Ainsi dans le fichier fichier final on pourrait afficher le username en fonction du nom de PC.
Voici un exemple d'un fichier de logs dhcp
[code:1]
Microsoft DHCP Service Activity Log
Event ID Meaning
00 The log was started.
01 The log was stopped.
02 The log was temporarily paused due to low disk space.
10 A new IP address was leased to a client.
11 A lease was renewed by a client.
12 A lease was released by a client.
13 An IP address was found to be in use on the network.
14 A lease request could not be satisfied because the scope's
address pool was exhausted.
15 A lease was denied.
16 A lease was deleted.
17 A lease was expired.
20 A BOOTP address was leased to a client.
21 A dynamic BOOTP address was leased to a client.
22 A BOOTP request could not be satisfied because the scope's
address pool for BOOTP was exhausted.
23 A BOOTP IP address was deleted after checking to see it was
not in use.
24 IP address cleanup operation has began.
25 IP address cleanup statistics.
30 DNS update request to the named DNS server
31 DNS update failed
32 DNS update successful
50+ Codes above 50 are used for Rogue Server Detection information.
ID,Date,Time,Description,IP Address,Host Name,MAC Address
24,06/30/11,00:00:10,Database Cleanup Begin,,,,
30,06/30/11,00:00:10,DNS Update Request,137.10.168.192,CPRO012.entreprise.com,,
30,06/30/11,00:00:10,DNS Update Request,152.22.168.192,tpichnaud.,,
30,06/30/11,00:00:10,DNS Update Request,133.32.168.192,CPRI065.,,
[/code:1]
6 - Le troisième octet de l'adresse IP des lignes correspond à un site. Le but est donc d'obtenir un fichier final contenant les lignes de logs formatées en colonne comme suit :
username site date_de_connexion heure_connexion hostname @IP
Au final nous aurions donc
- 1 fichier contenant le script
- 1 fichier texte contenant la correspondance @ip / site
- 1 fichier contenant la correspondance hostname / username
- 1 fichier final qui contient le formatage final
Peut-être y aura t-il besoin de fichiers intermédiaires de traitement des données par étapes par le script ?<br><br>Message édité par: shellfree, à: 7/07/11 10:02
Connexion ou Créer un compte pour participer à la conversation.
- Dada
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 14 ans 8 mois #9893
par Dada
Réponse de Dada sur le sujet Re:Traitement des logs dhcp de windows
Personne n'est inspiré ?
<br><br>Message édité par: shellfree, à: 8/07/11 11:37
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 14 ans 8 mois #9894
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:Traitement des logs dhcp de windows
Si, je vois ce qu'il faudrait faire.
Mais honnêtement, c'est du traitement basqiue avec du Get-Content, Select-String, Add-Content ...
On,en totu cas Je, est pas là pour faire ton travail mais pour aider et faire progresser.
Essaye de créer quelque chose et viens vers nous si tu as des soucis. C'est en forgeant qu'on devient forgeron ...
Bien Cordialement,
Richard Lazaro.
Mais honnêtement, c'est du traitement basqiue avec du Get-Content, Select-String, Add-Content ...
On,en totu cas Je, est pas là pour faire ton travail mais pour aider et faire progresser.
Essaye de créer quelque chose et viens vers nous si tu as des soucis. C'est en forgeant qu'on devient forgeron ...
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 14 ans 8 mois #9896
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Traitement des logs dhcp de windows
Richard Lazaro écrit:
+1On,en totu cas Je, est pas là pour faire ton travail mais pour aider et faire progresser.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Dada
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 14 ans 8 mois #9900
par Dada
Réponse de Dada sur le sujet Re:Traitement des logs dhcp de windows
Bonjour,
Vu qu'en général, je suis limité par le temps, j'ai pour habitude de lancer le thème du script sur les forums pendant que je travaille dessus.
Ainsi, les personnes me donnent des pistes de réflexion (sans me donner de solutions) et je les confronte aux miennes. Habituellement, ce type d'échange fonctionne plutôt bien...
Bref, n'allez surtout pas croire que je me croise les pouces en attendant qu'une solution tombe du ciel.
Après vos 2 posts, le brouillard est toujours aussi dense.
J'ai réalisé un bout de script avec lequel j'arrive à extraire les lignes qui m'intéressent au format csv sous 4 colonnes :
date,hour,hostname,ip
[code:1]
# Déclaration de la variable de recherche des hostnames dans le fichier \"usernames_table.csv\"
$srch_hostname = Get-Content C:\script\script_dhcp\tables\usernames_table.csv | foreach{ $_.split(';')[0] }
# Déclaration de la variable de recherche des usernames dans le fichier 'usernames_table.csv\"
$srch_username = Get-Content C:\script\script_dhcp\tables\usernames_table.csv | foreach{ $_.split(';')[1] }
# Déclaration du chemin contenant les logs dhcp
$dhcplogpath = \"C:\windows\system32\dhcp\"
# Déclaration du fichier contenant le résultat de l'extraction
$extractfile = \"C:\script\extract_dhcp.csv\"
# Obtention de la date de la veille
$yesterday=(get-date (get-date).AddDays(-1) -uformat %Y%m%d)
# Obtention des 3 premières lettres du jour de la veille
$logdate=([string]((get-date).AddDays(-1).DayofWeek)).substring(0,3)
#Création des colonnes du fichier csv d'extraction des données des logs dhcp
\"nevent,date,time,event,ip,hostname,mac\" > $extractfile
# Obtention des lignes du fichier dhcp de log contenant le code 11(dhcp renew) et les hostnames à pister
$extract = get-content $dhcplogpath\DhcpSrvLog-$logdate.log | select-string ^11 | select-string $srch_hostname
$extract >> $extractfile
# Exportation des colonnes du csv vers le fichier final
$impextractfile = Import-CSV $extractfile
$impextractfile | Select-Object date, time, hostname, ip | Export-CSV C:\script\temp.csv -NoTypeInformation
[/code:1]
Je me confronte à certains problèmes :
J'aimerais ajouter 2 colonnes au fichier csv. Une colonne inscrirait le username en fonction du hostname noté dans la colonne \"hostanme\". Ceci en faisant référence au fichier texte contenant les 2 colonnes \"hostname\" et \"username\"
Une deuxième colonne inscrirait le site où se trouve le user en fonction de ce qui est noté dans la colonne \"IP\" sur le 3ème octet de l'adresse IP. Ceci en faisant référence à un fichier texte contenant 2 colonnes \"IP\" et \"site\"
Voilà, si vous avez des idées, je suis preneur car un Get-content ou un select-string risquent de ne pas suffire
Si vous voyez plus simple comme code, n'hésitez pas. Par exemple, actuellement je passe par 2 fichiers csv pour obtenir l'extraction. Il est certainement possible de ne passer que par un seul fichier csv.
Message édité par: shellfree, à: 12/07/11 11:05
Message édité par: shellfree, à: 12/07/11 14:02<br><br>Message édité par: shellfree, à: 12/07/11 15:26
Vu qu'en général, je suis limité par le temps, j'ai pour habitude de lancer le thème du script sur les forums pendant que je travaille dessus.
Ainsi, les personnes me donnent des pistes de réflexion (sans me donner de solutions) et je les confronte aux miennes. Habituellement, ce type d'échange fonctionne plutôt bien...
Bref, n'allez surtout pas croire que je me croise les pouces en attendant qu'une solution tombe du ciel.
Après vos 2 posts, le brouillard est toujours aussi dense.
J'ai réalisé un bout de script avec lequel j'arrive à extraire les lignes qui m'intéressent au format csv sous 4 colonnes :
date,hour,hostname,ip
[code:1]
# Déclaration de la variable de recherche des hostnames dans le fichier \"usernames_table.csv\"
$srch_hostname = Get-Content C:\script\script_dhcp\tables\usernames_table.csv | foreach{ $_.split(';')[0] }
# Déclaration de la variable de recherche des usernames dans le fichier 'usernames_table.csv\"
$srch_username = Get-Content C:\script\script_dhcp\tables\usernames_table.csv | foreach{ $_.split(';')[1] }
# Déclaration du chemin contenant les logs dhcp
$dhcplogpath = \"C:\windows\system32\dhcp\"
# Déclaration du fichier contenant le résultat de l'extraction
$extractfile = \"C:\script\extract_dhcp.csv\"
# Obtention de la date de la veille
$yesterday=(get-date (get-date).AddDays(-1) -uformat %Y%m%d)
# Obtention des 3 premières lettres du jour de la veille
$logdate=([string]((get-date).AddDays(-1).DayofWeek)).substring(0,3)
#Création des colonnes du fichier csv d'extraction des données des logs dhcp
\"nevent,date,time,event,ip,hostname,mac\" > $extractfile
# Obtention des lignes du fichier dhcp de log contenant le code 11(dhcp renew) et les hostnames à pister
$extract = get-content $dhcplogpath\DhcpSrvLog-$logdate.log | select-string ^11 | select-string $srch_hostname
$extract >> $extractfile
# Exportation des colonnes du csv vers le fichier final
$impextractfile = Import-CSV $extractfile
$impextractfile | Select-Object date, time, hostname, ip | Export-CSV C:\script\temp.csv -NoTypeInformation
[/code:1]
Je me confronte à certains problèmes :
J'aimerais ajouter 2 colonnes au fichier csv. Une colonne inscrirait le username en fonction du hostname noté dans la colonne \"hostanme\". Ceci en faisant référence au fichier texte contenant les 2 colonnes \"hostname\" et \"username\"
Une deuxième colonne inscrirait le site où se trouve le user en fonction de ce qui est noté dans la colonne \"IP\" sur le 3ème octet de l'adresse IP. Ceci en faisant référence à un fichier texte contenant 2 colonnes \"IP\" et \"site\"
Voilà, si vous avez des idées, je suis preneur car un Get-content ou un select-string risquent de ne pas suffire
Si vous voyez plus simple comme code, n'hésitez pas. Par exemple, actuellement je passe par 2 fichiers csv pour obtenir l'extraction. Il est certainement possible de ne passer que par un seul fichier csv.
Message édité par: shellfree, à: 12/07/11 11:05
Message édité par: shellfree, à: 12/07/11 14:02<br><br>Message édité par: shellfree, à: 12/07/11 15:26
Connexion ou Créer un compte pour participer à la conversation.
- Dada
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 14
- Remerciements reçus 0
il y a 14 ans 8 mois #9906
par Dada
Réponse de Dada sur le sujet Re:Traitement des logs dhcp de windows
Personne n'est inspiré ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Traitement des logs dhcp de windows