Лог файли Linux по порядку
Неможливо уявити користувача і адміністратора сервера, або навіть робочої станції на основі Linux, який ніколи не читав лог файли. Операційна система та працюючі програми постійно створюють різні типи повідомлень, які реєструються у різних файлах журналів. Вміння визначити потрібний файл журналу і що шукати в ньому допоможе суттєво заощадити час та швидше усунути помилку.
Журналування є основним джерелом інформації про роботу системи та її помилки. У цьому короткому посібнику розглянемо основні аспекти журналювання операційної системи, структуру каталогів, програми для читання та огляду логів.
Основні лог файли
Більшість лог файлів міститься в директорії /var/log .
- /var/log/syslog або /var/log/messages містить глобальний системний журнал, в якому пишуться повідомлення з моменту запуску системи, від ядра Linux, різних служб, виявлених пристроїв, мережевих інтерфейсів та багато іншого.
- /var/log/auth.log або /var/log/secure - інформація про авторизацію користувачів, включаючи вдалі та невдалі спроби входу в систему, а також задіяні механізми автентифікації.
- /var/log/dmesg - Драйвера пристроїв. Однойменною командою можна переглянути виведення вмісту файлу. Розмір журналу обмежений, коли файл досягне своєї межі, старі повідомлення будуть перезаписані новішими. Задавши ключ --level=, можна відфільтрувати висновок за критерієм значущості.
Підтримувані рівні журналування (пріоритети): emerg - система невикористовується alert - дія повинна бути зроблена негайно crit - умови критичності err - умови помилок warn - умови попереджень notice - звичайні, але значущі умови info - інформаційний debug - налагоджувальні повідомлення (5:52 dmesg -l err [1131424.604352] usb 1-1.1: 2:1: cannot get freq at ep 0x1 [1131424.666013] usb 1-1.1: 1:1: cannot get freq at ep 0x81 [1131 1:1: cannot get freq at ep 0x81
- /var/log/alternatives.log — Виведення програми update-alternatives , в якому знаходяться символічні посилання на команди або бібліотеки за промовчанням.
- /var/log/anaconda.log — Записи, зареєстровані під час встановлення системи.
- /var/log/audit - Записи, створені службою аудиту auditd.
- /var/log/boot.log — Інформація, що пишеться під час завантаження операційної системи.
- /var/log/cron — Звіт служби crond про команди, що виконуються, та повідомлення від самих команд.
- /var/log/cups — Все, що пов'язане з печаткою та принтерами.
- /var/log/faillog - Невдалі спроби входу до системи. Дуже корисно при перевірці загроз у системі безпеки, атаках хакерів, спроб злому методом перебору. Прочитати вміст можна за допомогою команди faillog.
- var/log/kern.log — Журнал містить повідомлення від ядра та попередження, які можуть бути корисні при усуненні помилок модулів вбудованих в ядро.
- /var/log/maillog/ або /var/log/mail.log — Журнал поштового сервера, який використовується на ОС.
- /var/log/pm-powersave.log — Повідомлення заощадження батареї.
- /var/log/samba/ — Логи файлового сервера Samba, який використовується для доступу до спільних папок Windows та надання доступу користувачам Windows до спільних папок Linux.
- /var/log/spooler — Для представників старої школи містить повідомлення USENET.Найчастіше буває порожнім та покинутим.
- /var/log/Xorg.0.log - Логи сервера X. Найчастіше марні, але якщо в них є рядки, що починаються з EE, то слід звернути на них увагу.
Для кожного дистрибутива буде окремий журнал менеджера пакетів.
- /var/log/yum.log — Для програм встановлених за допомогою Yum у RedHat Linux.
- /var/log/emerge.log - Для ebuild-ів встановлених з Portage за допомогою emerge у Gentoo Linux.
- /var/log/dpkg.log — Для програм встановлених за допомогою dpkg у Debian Linux та всій родині родинних дистрибутивах.
І трохи бінарних журналів обліку користувальницьких сесій.
- /var/log/lastlog - Остання сесія користувачів. Прочитати можна командою last.
- /var/log/tallylog - Аудит невдалих спроб входу до системи. Виведення на екран за допомогою утиліти pam_tally2.
- /var/log/btmp — Що один журнал запису невдалих спроб входу до системи. Просто так, про всяк випадок, якщо ви ще не здогадалися, де слід шукати сліди активності зломщиків.
- /var/log/utmp - Список входів користувачів у систему на даний момент.
- /var/log/wtmp - Ще один журнал запису входу користувачів до системи. Виведення на екран командою utmpdump.
(5:535)$ sudo utmpdump /var/log/wtmp [5] [02187] [l0 ] [ ] [4.0.5-gentoo ] [0.0.0.0 ] [Вт сер 11 16:50:07 2015] [1 ] [00000] [~~ ] [shutdown] [4.0.5-gentoo ] [0.0.0.0 ] [Вт сер 11 16:50:08 2015] [2] [00000] [~~ ] [reboot ] [3.18.12-gentoo ] [0.0.0.0 ] [Вт сер 11 16:50:57 2015] [8] [00368] [rc ] [ ] [3.18.12-gentoo ] [0.0.0.0 ] [Вт сер 11 16:50:57 2015] [1] [20019] [~~ ] [runlevel] [3.18.12-gentoo ] [0.0.0.0 ] [Вт сер 11 16:50:57 2015]
та інші журнали
Так як операційна система, навіть така чудова як Linux, сама по собі ніякої відчутної користі не несе в собі, то швидше за все на сервері або робочій станції крутиться база даних, веб сервер, різноманітні додатки. Кожна програма або служба може мати свій власний файл або каталог журналів подій та помилок. Усіх їх природно неможливо перерахувати лише деякі.
- /var/log/mysql/ - Лог бази даних MySQL.
- /var/log/httpd/ або /var/log/apache2/ — Лог веб-сервера Apache, журнал доступу знаходиться в access_log , а помилки — в error_log .
- /var/log/lighthttpd/ - Лог веб-сервера lighttpd.
У домашньому каталозі користувача можуть бути журнали графічних додатків, DE.
Initializing "kcm_input" : "kcminit_mouse" Initializing "kcm_access" : "kcminit_access" Initializing "kcm_kgamma" : "kcminit_kgamma" QXcbConnection: XCB error: 3 (BadWindow), sequence:40 code: 20 (GetProperty), minor code: 0 kf5.kcoreaddons.kaboutdata: Неможливо, щоб подібні властивості Q*Application: no instance (yet) existing. QXcbConnection: XCB error: 3 (BadWindow), sequence: 181, resource id: 10486050, major code: 20 (GetProperty), minor code: 0 Qt: Session management error: networkIdsList argument is NULL
Чим переглядати lnav
Багато хто знає про утиліту less і команду tail-f. Також для цих цілей згодиться редактор vim та файловий менеджер Midnight Commander. Всі мають свої недоліки: less неважливо обробляє журнали з довгими рядками, приймаючи їх за бінарники. Midnight Commander підходить тільки для швидкого перегляду, коли немає необхідності шукати за складним шаблоном і переходити багато взад і вперед між збігами.Редактор vim розуміє і підсвічує синтаксис безлічі форматів, але якщо журнал часто оновлюється, то з'являються повідомлення, що відволікають, про зміни у файлі. Втім, це легко можна обійти за допомогою.
Нещодавно я виявив ще одну придатну і багатообіцяючу, але трохи сиру, утиліту. lnavу розшифровці Log File Navigator.
Встановлення пакета зазвичай однією командою.
$ aptitude install lnav #Debian/Ubuntu/LinuxMint $ yum install lnav #RedHat/CentOS $ dnf install lnav #Fedora $emerge -av lnav #Gentoo, потрібно додати у файл package.accept_keywords $yaourt -S lnav #Arch
Навігатор журналів lnav розуміє низку форматів файлів.
- Access_log веб-сервер.
- CUPS page_log
- Syslog
- glog
- dpkg.log
- strace
- Довільні записи з часовими відмітками
- gzip, bzip
- Журнал VMWare ESXi/vCenter
Що означає розуміння форматів файлів? Фокус у тому, що lnav більше, ніж утиліта для перегляду текстових файлів. Програма вміє щось ще. Можна відкривати кілька файлів відразу і перемикатися між ними.
(5:471)$ sudo lnav /var/log/pm-powersave.log /var/log/pm-suspend.log
Програма може безпосередньо відкривати архівний файл.
(5:471) $ lnav -r /var/log/Xorg.0.log.old.gz
Відображає гістограму інформаційних повідомлень, попереджень та помилок, якщо натиснути клавішу . Це з мого syslog.
Mon May 02 20:25:00 123 normal 3 errors 0 warnings 0 marks Mon May 02 22:40:00 2 normal 0 errors 0 warnings 0 marks Mon May 02 23:25:00 10 normal 0 errors 0 warnings 0 mark 03 07:25:00 96 normal 3 errors 0 warnings 0 marks Tue May 03 23:50:00 10 normal 0 errors 0 warnings 0 marks Wed May 04 07:40:00 96 normal 3 errors 0 warnings 0 marks Wed May 04 08:30:00 errors 0 warnings 0 marks Wed May 04 10:40:00 10 normal 0 errors 0 warnings 0 marks Wed May 04 11:50:00 126 normal 2 errors 1 warnings 0 marks
Крім цього підтримується підсвічування синтаксису, доповнення по табу та різні корисності у статусному рядку. До недоліків можна віднести нестабільність поведінки та зависання. lnav активно розвиватиметься, дуже корисна програма на мій погляд.
Використані матеріали
Де подивитися та як читати логи з помилками сервера
Блоги, форуми, посадкові сторінки та інші інтернет-ресурси є сукупністю графічного, текстового, аудіо- та відео-контенту, розміщеного на веб-сторінках у вигляді коду. забезпечення (персональний комп'ютер або робоча станція), на жорсткому диску якого зберігається код. Ключові функції виконуються без участі людини, що актуально для всіх типів обладнання, включаючи віртуальний виділений сервер. Але це не означає, що контроль не здійснюється. читати.
Що таке логі
Це текстові файли, які зберігаються на жорсткому диску сервера.Створюються та заповнюються в автоматичному режимі, у хронологічному порядку. У них записуються:
- системна інформація про передані користувачеві дані;
- повідомлення про збої та помилки;
- дані про відвідувачів платформи.
Подивитися логи сервера може кожен, хто має до них доступ, але непосвяченому обивателю цей набір символів може здатися безглуздим. Інтерпретувати записи та отримати користь після прочитання простіше професіоналу.
Класифікація логів
Для кожного різновиду програмного забезпечення передбачені відповідні файли. Усі логи сервера можуть зберігатися на одному диску або навіть окремому сервері. Існує досить багато різновидів ліг, ось найбільш поширені:
- доступу (access_log) - записують IP-адресу, час запиту, іншу інформацію про користувачів;
- помилок (error_log) - показують файли, в яких виявлено помилки та класифікують збої;
- FTP-авторизацій - відображають дані про спроби входу по FTP-з'єднанню;
- завантаження системи — з його допомогою виконується налагодження з появою проблем, файл записуються основні системні події, включаючи збої;
- основний - містить інформацію про дії з фаєрволом, DNS-сервером, ядром системи, FTP-сервісом;
- планувальника завдань - у ньому виконується протоколювання завдань, відображаються помилки під час запуску cron;
- баз даних - зберігає подробиці про запити, збої, помилки в логах сервера відображаються нарівні з іншою важливою інформацією;
- хостингової панелі – включає статистику використання ресурсів сервера, час та кількість входів у панель, оновлення ліцензії;
- веб-сервера - містить інформацію про помилки, звернення, що виникали;
- поштового сервера — в ньому ведуться записи про вхідні та вихідні повідомлення, відхилення листів.
Записи до системних журналів виконує встановлений софт.
Навіщо потрібні логи
Аналіз логів сервера — це невід'ємна частина роботи системного адміністратора або веб-розробника. Обробляючи їх, фахівці одержують масу корисних відомостей. Використовуються з такою метою:
- пошук помилок та збоїв у роботі системи;
- виявлення шкідливої активності;
- збирання статистики відвідування веб-ресурсу.
Після вивчення інформації можна отримати точну статистику як зведених цифр, інформацію про користувачах, виявити поведінкові закономірності користувальницьких груп.
Читайте також
Де подивитись логи
Розташування визначається хостинг-провайдером або параметрами встановленого софту. На віртуальному хостингу доступ до лог-файлів надається з панелі керування хостингом. Якщо адміністратор не відкрив його для власника сайту, отримати інформацію не вдасться. Але більшість провайдерів дозволяють вільно користуватися журналами та проводити аналіз логів сервера. Незалежно від різновиду сервера лог-файли зберігаються у текстовому документі. За промовчанням він називається access.log, але налаштування дозволяють перейменувати файл. Це актуально для Nginx, Apache, проксі-різновидів squid, інших типів. Для перегляду їх треба завантажити та відкрити у текстовому редакторі. В якості альтернативи можна використовувати Grep та схожі утиліти. Вони дозволяють відкрити та відфільтрувати логи прямо на сервері.
Як читати логі. приклад
Існує чимало форматів запису, combined — одне із найпоширеніших. У ньому рядок коду може мати такий вигляд:
Директиви мають таке значення:
- %h — IP-адреса, з якої було зроблено запит;
- %l – довге ім'я віддаленого хоста;
- %u - віддалений користувач, якщо запит був зроблений автентифікованим користувачем;
- %t — час запиту до сервера та його часовий пояс;
- %r — тип та вміст запиту;
- %s - код стану HTTP;
- %b - кількість байт інформації, відданих сервером;
- % - URL-джерело запиту;
- % - HTTP-заголовок.
Ще один приклад читання логів можна переглянути у статті "Як читати логи сервера".
Досвідчені веб-майстри для збирання та читання лог-файлів використовують програми-аналізатори. Вони дозволяють читати логи сервера без значних часових витрат. Ось деякі з найбільш затребуваних:
- Аналог. Один із найпопулярніших аналізаторів, що багато в чому пояснюється високою швидкістю обробки даних та економним витрачанням системних ресурсів. Добре справляється з об'ємними записами, сумісним із будь-якими ОС.
- Weblog Expert. Програма доступна у трьох варіаціях: Lite (безкоштовна версія), Professional та Standard (платні релізи). Версії відрізняються функціональними можливостями, але кожна дозволяє аналізувати лог-файли та створює звіти у PDF та HTML.
- SpyLOG Flexolyzer. Простий аналітичний інструмент, що дозволяє отримувати звіти з високим ступенем деталізації. Інтегрується з системою статистики SpyLOG, що дозволяє вирішувати завдання будь-якої складності.
Логи сервера з помилками error.log
Це журнал із інформацією про помилки на сайті. У ньому можна подивитися, які сторінки відсутні, звідки прийшов користувач із конкретним запитом, чи є «биті» посилання, інші недоліки, включаючи ті, які вдалося класифікувати. Використовується для виявлення багів та похибок у коді.
Кожна помилка в лозі сервера error.log відображається з нового рядка. Ідентифікувавши та усунувши її, програміст зможе налагодити роботу сайту. Використовуючи журнал, можна виявити слабкі місця веб-платформи. Це простий та зручний інструмент аналізу, яким має вміти користуватися кожен веб-майстер, системний адміністратор та програміст.