SlideShare a Scribd company logo
1 of 10
Анализируем серверные логи
на волосатой коленке c Python
и другие штуки
Виктор Дюбуа
Логи - журнал, в который записывается информация о работе программы. Цели у
логирования могут быть разные, но чаще всего они нужны для контроля корректности
работы этой программы и поиска ошибок.
На вашем сервере могут храниться разные типы логов (логи БД, логи ошибок, почтовые
логи и т.д.), но нас интересуют access logs.
access.log - файл, в который пишется информация обращений к вашему сайту в
хронологическом порядке.
В error.log, соответственно, пишутся ошибки.
При этом на сервере может быть отключено логирование или ограничено какими-то
конкретными событиями или периодами времени (привет любителям дешевых Shared
хостингов).
Коротенечко про серверные логи
Где искать файл логов, его структура
access.log обычно можно найти на сервере в папке /logs/:
в корневой директории пользователя, в директории /var/ или /home/, в корне директории самого
сайта.
Типичная строка в access.log выглядит следующим образом:
1 - IP, с которого пришел запрос. 2 - дата и время запроса. 3 - тип запроса (link). 4 - URL запроса.
5 - код состояния HTTP (он же код ответа сервера). 6 - количество отданных сервером байт.
7 - Referrer (источник, инициатор) запроса. 8 - User-Agent
Что не так с логами и причем тут Python?
Логи содержат много мусора.
Чаще всего они разбиты на
несколько файлов по дням в .gz
архивах.
По сути это текстовый файл, где 1
строка = 1 запрос к серверу. Таких
строк на может быть много млн.
В логах содержатся сырые данные,
работа с которыми может исказить
наши выводы.
Python помогает
1. собрать все разрозненные данные в 1
файл;
2. извлечь из логов только нужную нам
информацию;
3. откинуть мусор в виде некорректно
записанных строк (да, и такое бывает)
или ложных запросов;
4. классифицировать, кластеризовать,
изменить или дополнить данными из
других источников;
5. визуализировать полученные данные
для получения ответов на наши вопросы.
Алгоритм работы с логами на Python
1. Собираем логи в один файл
2. Чистим от мусора или ненужных
данных, преобразуем и
запихиваем .csv файл.
3. Проводим дополнительную
кластеризацию (например, URL
по маске).
4. Получаем недостающие данные.
5. Анализируем доступными
инструментами.
Можно! Но в большинстве случаев это будет стоить 💰
● Tableau($)
● Kibana($) от Elastic или ее SaaS аналог - logz.io ($)
● JetOctopus ($)
● Screaming Frog SEO Log File Analyser($)
● PowerBI, Google Data Studio, Excel
● и еще огромное количество древнего и не очень софта
Большинство софта создано для визуализации данных (любых). И нам все еще нужно сделать
препроцессинг этих данных перед загрузкой.
➕ ВСЕГДА стороннее решение не сможет в полной мере соответствовать вашим хотелкам, если
“ваши вкусы очень специфичны, мистер Грей”
А можно не на Python?
Для работы нам понадобятся:
1. Python 3.7.x и старше (рекомендую сборку Anaconda). При установке прожимаем
галочку возле “abracadabra PATH”.
2. Сторонние библиотеки: pandas, matplotlib, ipaddress, shutil. Пишем в консоли:
pip install pandas, matplotlib, socket, ipaddress
Если выберете Anaconda, то большинство этих библиотек уже будет в сборке.
3. Редактор кода (Notepad++, Atom) или IDE (PyCharm) или Jupyter Notebook.
4. Датасет, он же файл(ы) серверных логов.
5. Руки или их аналоги, расположенные желательно не ниже талии.
Перед стартом
Приступим
1. Серверные логи - это не страшно и полезно
2. Python - это добро
3. Сырые данные - нужно готовить
4. Эмпирические исследования - наше все!
…
print(‘Hello world!’)
...
5. А еще:
- Googlebot не всегда Googlebot
- В логах можно найти URL, о которых не знает ваш краулер, но знает бот
ПС
- URL с кодом 200 не всегда URL с кодом 200 :)
Выводы
Виктор Дюбуа aka Drkwng Dck
Люблю работать с данными, пишу в TG
Спасибо за внимание!
https://www.facebook.com/victorduboisme/
https://t.me/drkwng
https://github.com/drkwng
iamdrkwng@gmail.com

More Related Content

Similar to Анализируем серверные логи на волосатой коленке c Python

支撐英雄聯盟戰績網的那條巨蟒
支撐英雄聯盟戰績網的那條巨蟒支撐英雄聯盟戰績網的那條巨蟒
支撐英雄聯盟戰績網的那條巨蟒
Toki Kanno
 

Similar to Анализируем серверные логи на волосатой коленке c Python (20)

Log4j Logging Mechanism
Log4j Logging MechanismLog4j Logging Mechanism
Log4j Logging Mechanism
 
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
Jamie Alberico — How to Leverage Insights from Your Site’s Server Logs | 5 Ho...
 
Software Engineering - RS4
Software Engineering - RS4Software Engineering - RS4
Software Engineering - RS4
 
Handout: 'Open Source Tools & Resources'
Handout: 'Open Source Tools & Resources'Handout: 'Open Source Tools & Resources'
Handout: 'Open Source Tools & Resources'
 
Log aggragation
Log aggragationLog aggragation
Log aggragation
 
Centralized logging system using mongoDB
Centralized logging system using mongoDBCentralized logging system using mongoDB
Centralized logging system using mongoDB
 
Improving your team’s source code searching capabilities
Improving your team’s source code searching capabilitiesImproving your team’s source code searching capabilities
Improving your team’s source code searching capabilities
 
Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...Improving your team's source code searching capabilities - Voxxed Thessalonik...
Improving your team's source code searching capabilities - Voxxed Thessalonik...
 
Introduce Django
Introduce DjangoIntroduce Django
Introduce Django
 
Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)Monitoring your Python with Prometheus (Python Ireland April 2015)
Monitoring your Python with Prometheus (Python Ireland April 2015)
 
Sumo Logic "How to" Webinar: Advanced Analytics
Sumo Logic "How to" Webinar: Advanced AnalyticsSumo Logic "How to" Webinar: Advanced Analytics
Sumo Logic "How to" Webinar: Advanced Analytics
 
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
Advanced Web Scraping or How To Make Internet Your Database #seoplus2018
 
How to Use OWASP Security Logging
How to Use OWASP Security LoggingHow to Use OWASP Security Logging
How to Use OWASP Security Logging
 
支撐英雄聯盟戰績網的那條巨蟒
支撐英雄聯盟戰績網的那條巨蟒支撐英雄聯盟戰績網的那條巨蟒
支撐英雄聯盟戰績網的那條巨蟒
 
SEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech SideSEO for Large/Enterprise Websites - Data & Tech Side
SEO for Large/Enterprise Websites - Data & Tech Side
 
Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)Python and Zope: An introduction (May 2004)
Python and Zope: An introduction (May 2004)
 
First Steps in Python Programming
First Steps in Python ProgrammingFirst Steps in Python Programming
First Steps in Python Programming
 
Learn python
Learn pythonLearn python
Learn python
 
Sentry (SF Python, Feb)
Sentry (SF Python, Feb)Sentry (SF Python, Feb)
Sentry (SF Python, Feb)
 
Beginning development in go
Beginning development in goBeginning development in go
Beginning development in go
 

Recently uploaded

In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
ahmedjiabur940
 
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
vexqp
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
vexqp
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
wsppdmt
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
vexqp
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
q6pzkpark
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schs
cnajjemba
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
ranjankumarbehera14
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
gajnagarg
 

Recently uploaded (20)

DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24  Building Real-Time Pipelines With FLaNKDATA SUMMIT 24  Building Real-Time Pipelines With FLaNK
DATA SUMMIT 24 Building Real-Time Pipelines With FLaNK
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 
SR-101-01012024-EN.docx Federal Constitution of the Swiss Confederation
SR-101-01012024-EN.docx  Federal Constitution  of the Swiss ConfederationSR-101-01012024-EN.docx  Federal Constitution  of the Swiss Confederation
SR-101-01012024-EN.docx Federal Constitution of the Swiss Confederation
 
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptxThe-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
The-boAt-Story-Navigating-the-Waves-of-Innovation.pptx
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
5CL-ADBA,5cladba, Chinese supplier, safety is guaranteed
 
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
怎样办理伦敦大学毕业证(UoL毕业证书)成绩单学校原版复制
 
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
怎样办理圣地亚哥州立大学毕业证(SDSU毕业证书)成绩单学校原版复制
 
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
如何办理英国诺森比亚大学毕业证(NU毕业证书)成绩单原件一模一样
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Ranking and Scoring Exercises for Research
Ranking and Scoring Exercises for ResearchRanking and Scoring Exercises for Research
Ranking and Scoring Exercises for Research
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
怎样办理纽约州立大学宾汉姆顿分校毕业证(SUNY-Bin毕业证书)成绩单学校原版复制
 
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
一比一原版(曼大毕业证书)曼尼托巴大学毕业证成绩单留信学历认证一手价格
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
PLE-statistics document for primary schs
PLE-statistics document for primary schsPLE-statistics document for primary schs
PLE-statistics document for primary schs
 
Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1Lecture_2_Deep_Learning_Overview-newone1
Lecture_2_Deep_Learning_Overview-newone1
 
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
Top profile Call Girls In Chandrapur [ 7014168258 ] Call Me For Genuine Model...
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 

Анализируем серверные логи на волосатой коленке c Python

  • 1. Анализируем серверные логи на волосатой коленке c Python и другие штуки Виктор Дюбуа
  • 2. Логи - журнал, в который записывается информация о работе программы. Цели у логирования могут быть разные, но чаще всего они нужны для контроля корректности работы этой программы и поиска ошибок. На вашем сервере могут храниться разные типы логов (логи БД, логи ошибок, почтовые логи и т.д.), но нас интересуют access logs. access.log - файл, в который пишется информация обращений к вашему сайту в хронологическом порядке. В error.log, соответственно, пишутся ошибки. При этом на сервере может быть отключено логирование или ограничено какими-то конкретными событиями или периодами времени (привет любителям дешевых Shared хостингов). Коротенечко про серверные логи
  • 3. Где искать файл логов, его структура access.log обычно можно найти на сервере в папке /logs/: в корневой директории пользователя, в директории /var/ или /home/, в корне директории самого сайта. Типичная строка в access.log выглядит следующим образом: 1 - IP, с которого пришел запрос. 2 - дата и время запроса. 3 - тип запроса (link). 4 - URL запроса. 5 - код состояния HTTP (он же код ответа сервера). 6 - количество отданных сервером байт. 7 - Referrer (источник, инициатор) запроса. 8 - User-Agent
  • 4. Что не так с логами и причем тут Python? Логи содержат много мусора. Чаще всего они разбиты на несколько файлов по дням в .gz архивах. По сути это текстовый файл, где 1 строка = 1 запрос к серверу. Таких строк на может быть много млн. В логах содержатся сырые данные, работа с которыми может исказить наши выводы. Python помогает 1. собрать все разрозненные данные в 1 файл; 2. извлечь из логов только нужную нам информацию; 3. откинуть мусор в виде некорректно записанных строк (да, и такое бывает) или ложных запросов; 4. классифицировать, кластеризовать, изменить или дополнить данными из других источников; 5. визуализировать полученные данные для получения ответов на наши вопросы.
  • 5. Алгоритм работы с логами на Python 1. Собираем логи в один файл 2. Чистим от мусора или ненужных данных, преобразуем и запихиваем .csv файл. 3. Проводим дополнительную кластеризацию (например, URL по маске). 4. Получаем недостающие данные. 5. Анализируем доступными инструментами.
  • 6. Можно! Но в большинстве случаев это будет стоить 💰 ● Tableau($) ● Kibana($) от Elastic или ее SaaS аналог - logz.io ($) ● JetOctopus ($) ● Screaming Frog SEO Log File Analyser($) ● PowerBI, Google Data Studio, Excel ● и еще огромное количество древнего и не очень софта Большинство софта создано для визуализации данных (любых). И нам все еще нужно сделать препроцессинг этих данных перед загрузкой. ➕ ВСЕГДА стороннее решение не сможет в полной мере соответствовать вашим хотелкам, если “ваши вкусы очень специфичны, мистер Грей” А можно не на Python?
  • 7. Для работы нам понадобятся: 1. Python 3.7.x и старше (рекомендую сборку Anaconda). При установке прожимаем галочку возле “abracadabra PATH”. 2. Сторонние библиотеки: pandas, matplotlib, ipaddress, shutil. Пишем в консоли: pip install pandas, matplotlib, socket, ipaddress Если выберете Anaconda, то большинство этих библиотек уже будет в сборке. 3. Редактор кода (Notepad++, Atom) или IDE (PyCharm) или Jupyter Notebook. 4. Датасет, он же файл(ы) серверных логов. 5. Руки или их аналоги, расположенные желательно не ниже талии. Перед стартом
  • 9. 1. Серверные логи - это не страшно и полезно 2. Python - это добро 3. Сырые данные - нужно готовить 4. Эмпирические исследования - наше все! … print(‘Hello world!’) ... 5. А еще: - Googlebot не всегда Googlebot - В логах можно найти URL, о которых не знает ваш краулер, но знает бот ПС - URL с кодом 200 не всегда URL с кодом 200 :) Выводы
  • 10. Виктор Дюбуа aka Drkwng Dck Люблю работать с данными, пишу в TG Спасибо за внимание! https://www.facebook.com/victorduboisme/ https://t.me/drkwng https://github.com/drkwng iamdrkwng@gmail.com