Логи лінуксу час роботи програми. Лог файли Linux по порядку. та інші журнали

💖 Подобається?Поділися з друзями посиланням

Introduction

Один з цих думок, які генерують GNU/Linux, є широким функціонуванням системи, що вірогідно будь-який, і всі, хто збирається і на цю систему може бути ввібраний у певний manner. Ця інформація є невід'ємною для використання системи в інформованому manager, і повинна бути одним з перших ресурсів, які ви використовуєте для надійної системи і застосування. Logs може tell you майже anything you need to know, as long as you ha an idea where to look first.

Ваша система Ubuntu забезпечує питому інформацію, використовуючи різні системи логових файлів. Ці log files є типово площина ASCII тексту в стандартному форматі log файлу, і найбільша кількість їх в традиційній системі log subdirectory /var/log . Багато хто генерується з системою log daemon, syslogd на основі системи і певних applications, while деякі applications генерують свої власні logs за допомогою directly to files in /var/log .

Це керує розмовами про те, як читати і використовувати низку цих систем log files, як використовувати і configure системи loging daemon, syslogd , і як log rotation works. See the Resources section for additional information.

Target Audience

Це керування буде простим доступом до використання, якщо ви маєте будь-який досвід, використовуючи консолі і редагування текстових файлів, використовуючи текст editor. Подивіться на цей документ для деяких важливих слів, які можуть допомогти вам досягти свого способу за допомогою цих повідомлень, якщо ви є відносно новим до команди line.

System Logs

System logs deal primaryily з функціонуванням Ubuntu system, необов'язково with additional applications added by users. До прикладів належать авортизація механізмів, системи героїв, системи messages, і все-відкомплексування системи log itself, syslog.

Authorization Log

Ауторизація Log Tracks за допомогою authorization systems, mechanisms for authorizing users which prompt for user passwords, так само як Pluggable Authentication Module (PAM) system, sudo command, remote logins to sshd and so on. Authorization Log file можна використовувати на /var/log/auth.log . Це log use useful для розпізнавання про user logins і використання sudo command.

За допомогою grep до cut down on the volume. Для прикладу, щоб отримати тільки інформацію в Асоціації Log, щоб отримати до logins sshd, use this:

grep sshd /var/log/auth.log | less

Daemon Log

Daemon is a program, що runs in the background, здебільшого без людського intervention, роблячи деякі операції важливі до поточного ведення вашої системи. Daemon log на /var/log/daemon.log і докладні відомості про керування системою і application daemons так само як Gnome Display Manager daemon gdm , Bluetooth HCI daemon hcid , або MySQL database daemon mysqld . Це може допомогти вам потрібен-shoot problems with a particular daemon.

У зв'язку з використанням grep до find specific info, plugging in the name of the daemon you"re interested in.

Debug Log

Debug log at /var/log/debug and provides detailed debug messages from the Ubuntu system and applications which log to syslogd at the DEBUG level.

Kernel Log

kernel log at /var/log/kern.log дає змогу повідомити про log log messages from the Ubuntu Linux kernel. Ці messages можуть бути застосовані для трейл-програми для нового або custom-built kernel, для прикладу.

Kernel Ring Buffer

kernel ring buffer не реально log file per se, але ще одна область в керуванні kernel ви можете знайти для kernel bootup messages via the dmesg utility. Для того, щоб messages, use this:

dmesg | less

Або search for lines that mention Plug & Play system, for example, use grep like this:

dmesg | grep pnp | less

Залежно від того, система ініціалізації script /etc/init.d/bootmisc.sh sends all bootup messages до файлу /var/log/dmesg as well. Ви можете переглядати і шукати цей файл в будь-який спосіб.

System Log

Систему log типово містить в собі велику ціну інформації, за якістю про свою Ubuntu system. Це located at /var/log/syslog , і може мати інформацію про інші logs do not. Консультувати System Log, коли ви можете розташувати утилізований log інформації в іншому log.

Application Logs

Багато applications also create logs in /var/log . Якщо ви збираєтеся contents of your /var/log subdirectory, ви будете знайомі назви, так як /var/log/apache2, що представляють logs для Apache 2 веб-сервер, або /var/log/samba , які містять logs for Samba server. Ця секція керівних повідомлень містить деякі специфічні приклади application logs, і інформацію, що міститься в них.

Apache HTTP Server Logs

Більша кількість установок для Apache2 на Ubuntu створюється в log subdirectory: /var/log/apache2 . Within this subdirectory є два log files with two distinct purposes:

    /var/log/apache2/access.log - записи про кожну сторінку, яку ви використовуєте і всі файли loaded by the web server.

    /var/log/apache2/error.log - записи всіх нагальних умов reported by the HTTP server

Будь-який, щонайменше час Apache accesses file or page, access logs record the IP address, time and date, browser identification string, HTTP result code and text of the actual query, which will generally be get for page view. Look at Apache documentation for complete rundown; quite a lot can be gleaned from this file, and indeed many statistical packages exist that perform analyses of these logs.

Also, every time any error occurs, Apache adds a line to the error log. Якщо ви збираєтеся PHP з error і warning messages disabled, це може бути тільки на шляху до identify bugs.

CUPS Print System Logs

Комунальний Unix Printing System (CUPS) застосовує додатковий log файл /var/log/cups/error_log для доставки інформаційних і повідомлень про помилку. Якщо ви потребуєте, щоб printing issue в Ubuntu, цей log може бути приємним місцем для запуску.

Rootkit Hunter Log

Rootkit Hunter utility (rkhunter) checks your Ubuntu system for backdoors, sniffers and rootkits, which are all signs of compromise of your system. log rkhunter use located на /var/log/rkhunter.log .

Samba SMB Server Logs

Server Message Block Protocol (SMB) сервер, Samba є популярним використанням для збирання файлів між вашим Ubuntu комп'ютером та іншими комп'ютерами, які підтримують SMB протокол. Samba keeps три різні типи logs в subdirectory /var/log/samba:

    log.nmbd - messages related to Samba's NETBIOS over IP functionality (the network stuff)

    log.smbd - messages related to Samba's SMB/CIFS функціональність (the file and print sharing stuff)

    log. - Messages related to requests for services of IP address contained in log file name, for example, log.192.168.1.1 .

X11 Server Log

Більшість X11 Windows Server в системі з Ubuntu є Xorg X11 сервер, і доступ до вашого комп'ютера тільки на одному дисплеї вказано, його заклади log messages в файлі /var/log/Xorg.0.log . Цей log є сприятливим для diagnosing issues with your X11 environment.

Non-Human-Readable Logs

Деякі файли файлів з /var/log subdirectory є розроблені для readable by applications, необов'язково для людей. Кілька прикладів з таких log файлів, які відображаються в /var/log follow.

Login Failures Log

Login failures log located at /var/log/faillog є в даний час designed для того, щоб перевірити і переглянути в повідомленні. Для прикладу, щоб виконати print recent login failures, use this:

faillog

Last Logins Log

Останні logins log at /var/log/lastlog не повинні бути типово неперевіреними і вивченими в людях, але інші повинні бути використані в з'єднанні з останньою комбінацією. Для того, щоб додати листування logins with lastlog command, відобразити одну сторінку на екрані з the less command, use the following command:

lastlog | less

Login Records Log

File /var/log/wtmp містить посилання на записи, але unlike /var/log/lastlog вище, /var/log/wtmp не використовується в список останніх logins, але використовується для використання інших інструментів. command to present a listed of currently logged in users. Ця команда буде показувати користувачів, які поточно підтримуються в машині:

who

System Logging Daemon (syslogd)

Систему навігації daemon syslogd , а також відомі як sysklogd , відхиляють ведення повідомлень з кількох джерел і повідомлень повідомлень до відповідного файлу або мережі destination. Messages logged to syslogd зазвичай містить спільні елементи як система hostnames і time-stamps в додатку до specific log information.

Configuration of syslogd

У syslogd daemon's configuration file is /etc/syslog.conf . Натисніть на цей файл, що містить два fields, selector and the action. auth facility which deals with authorization, і як priority level to log such information at, such as info, or warning. Дія поля містить логотип для log information, так як standard log file (i.e. /var/log/syslog), або hostname of remote computer to send log information to.

Echoing Messages to syslogd З Logger

Додаткові інструменти існують в logger tool, які дозволяють одному до місця Messages в System Log (і.е. /var/log/syslog) arbitrarily. Для прикладу, розмір вашого user name is buddha , і ви повинні бути введені в message в syslog про особливу втілену pizza ви їдять, ви можете використовувати якість такої як following at terminal prompt:

logger This Pizza from Vinnys Gourmet Rocks

and you would end up with a line в файлі /var/log/syslog як це:

Jan 12 23:34:45 localhost buddha: This Pizza from Vinnys Gourmet Rocks

Ви можете навіть повідомити про tag messages come from, and redirect the output standard error too.

# # sample logger error jive # logmsg="/usr/bin/logger -s -t MyScript " # announce what this script is, even to the log $logmsg "Directory Checker FooScript Jive 1.0" # test for the existence of Fred" s home dir on this machine if [ -d /home/fred ]; then $logmsg "I. Fred"s Home Directory Found" else $logmsg "E. Fred"s Home Directory was NOT Found. Boo Hoo." exit 1 fi

Використовуючи цей script як chkdir.sh на матеріалах, де Fred does не має home directory, /home/fred , дає наступні результати:

bumpy@butters:~$./chkdir.sh MyScript: Directory Checker FooScript Jive 1.0 MyScript: E. Fred's Home Directory was NOT Found. Boo Hoo. Jan 12 23:23:11 Місто localhost: Directory Checker FooScript Jive 1.0 Jan 12 23:23:11 Місто localhost: E. Fred's Home Directory was NOT Found. Boo Hoo.

So, as you can see, we received messages both via standard error, at terminal prompt, and they also appear in our syslog.

Log Rotation

Коли ви переглядаєте директорії літери в /var/log або будь-яких своїх підdirectories, ви можете написати log files з names such as daemon.log.0 , daemon.log.1.gz , і so on. What are these log files? Вони є "розбиті" log файли. Що це, вони мають автоматично бути renamed після того, як був визначений time-frame, і новий оригінальний log started. Після того, як більше часу log files є схвалений з gzip utility as case of example daemon.log.1.gz . Природа log ротації є архівом і композитором old logs так, що вони consume less disk space, але still available for inspection as needed. What handles this functionality? Why, the logrotate command of course! Typically, logrotate називається system-wide cron script /etc/cron.daily/logrotate , і кілька defined by the configuration file /etc/logrotate.conf . Індивідуальні налаштування файлів можуть бути внесені в /etc/logrotate.d (якщо apache2 і mysql налаштування будуть встановлені для прикладу).

Ця програма не може охопити myriady з способів, щоб вибрати його можна, щоб налаштувати на автоматичне керування будь-якого log файлу на вашій Ubuntu системи. For more detail, check the Resources section of this guide.

NOTE:Ви можете також rotate system log files via cron.daily script /etc/cron.daily/sysklogd instead of using logrotate. Насправді, функція захисту логотип може викликати невідповідні результати на log rotation, які configuring logotate seems to have no effect on. У цих випадках, ви повинні виконати схил. logrotate.

Essential Commands

Якщо ви з'єднуєтеся з консолею і Linux підтримкою лінії, ці команди будуть отримувати і керувати точкою, де ви можете працювати з log files at a basic level.

Getting Started

Для зміни до log directory, де є найбільший вміст цих файлів, використовуйте cd command. Це сприйняття має тип з повного титулу файлів для кожного subsequent command:

cd /var/log

Editing Files

Ви можете переглядати і edit files в GEdit або Kate, прямі текстові editors, які ведуть з Ubuntu і Kubuntu respectively, але вони можуть бути переміщені, коли всі ви хочете, щоб дивитися на файл або зробити необхідні зміни. Досить editor для використання від console є nano, які є міцним, але також нескладно, якщо вим або emacs. Натисніть на особливий logfile /var/log/example.log using nano is:

nano example.log

Press Ctrl+X для виходу. Це буде вирішити, якщо ви хочете змінити ваші зміни, якщо ви збираєтеся, але не можна йти за допомогою судна, щоб повідомити файли, які будуть бути введені.

Viewing Files

Для того, щоб simple look на файлі, editor є overkill. Використовуйте less command, яких сторінок через файл одного екрана при часі:

less example.log

Ви не потрібні sudo to look at a file. Press h for help, or q to quit. Кнопки клавіш і сторінка вгору / вниз клавіатури будуть працювати як виявлені, і клацнути key ("/") will do a case- sensitive search; the n key repeats the last search.

Viewing the Beginning of Files

Для того, щоб побачити перші 1 ліні файлу, використовувати head command:

head example.log

Для того, щоб скористатися іншим номером lines від початку файлу, add the -n switch, thus:

head -n 20 example.log

Viewing the End of Files

Для того, щоб повідомити про останні 1 ліні файлу, аналогічний список є тайм:

tail example.log

Again, -n switch gives you control over how багато lines it displays:

tail -n 20 example.log

Watching a Changing File

Also, the -f ("follow") switch puts tail into a loop, constantly waiting for New additions to the file it"s displaying. This is useful for monitoring files that are being updated in real time:

tail -f example.log

Натисніть клавішу Ctrl+C.

Searching Files

Тому що log files може бути великим і незвичайним, це вказує на те, що може бути спрямований. grep command helps you strip out only content you care about. Для початку всіх ліній в файлі містить слово "система", для прикладу, за допомогою цього:

grep "system" example.log

Для завершення всіх ліній розташований "система" на початку лінії, використовуючи це:

grep "^system" example.log

Зауважте, що карта символ, регулярний вираз, що матчі тільки start of a line. Це є ефективним для стандартних логових файлів, які завжди start with date and time, але це може бути краще іншим. Не всі файли мають стандартний формат.

У будь-який час результат grep is still too long, вам може бути піп it через less:

grep "system" example.log | less

Resources

Додаткові відомості про систему і застосування logs і syslogd є доступними за допомогою наступних ресурсів:

Local System Resources

System manual page for dmesg kernel ring buffer utility

System manual page for faillog command (and also faillog configuration file via man 5 faillog)

System manual page for grep pattern searching utility

System manual page for the head utility

System manual page for kernel log daemon (klogd)

System manual for the last command which shows last logged in users

System manual page for the less paging utility

System manual page for logger command-line interface to syslog utility

System manual page for the logrotate utility

System manual page for savelog log file saving utility

System manual page for system log daemon (syslogd)

System manual page for syslogd configuration file

System manual page for the tail utility

Якщо ви взялися за адміністрування Linux, будьте готові до того, що перегляд та аналіз лог-файлів буде забирати левову частку того часу, що ви проводите в консолі. Аналіз лога основний (а найчастіше і єдиний) спосіб розібратися у поведінці сервера.

Найчастіше, лог містить тисячі рядків, так мало того, щосекундно може збільшуватися на ще кілька записів. А дивитися бажано живою, відстежуючи реакцію на ті чи інші дії. Тут нам допоможуть дві утиліти tail і less.

Перегляд логів у Linux за допомогою tail.

tail (перекладається як хвіст) дозволяє переглянути 10 останніх рядківфайлу. Якщо потрібно більше, достатньо про це сказати. Наприклад, 25:

# tail -n 25 /var/log/httpd/error_log

[ hc @ host ~ ] # tail -n 25 /var/log/httpd/error_log

А можна просто:

# tail -25 /var/log/httpd/error_log

[ hc @ host ~ ] # tail -25 /var/log/httpd/error_log

Другий корисний параметр, який можна передати -f. З цим параметром tail виводить задану кількість останніх рядків і продовжує зчитувати рядки, що додаються, до тих пір поки ви не натиснете Сtrl+C – тобто. ви можете відстежувати зміни в лог-файлі:

# tail -5f /home/sites/web/site.ru/logs/site.ru.log 178.45.0.0 - - "GET / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "Mozilla /5.0 (iPad; CPU OS 8_0_2 як Mac OS X) AppleWebKit/600.1.4 (KHTML, як Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4" 217.118.0.0 - - "GET /allsorts HTTP - "http://site.ru/" 217.118.0.0 - - "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 85.95.0.0 - - "GET / HTTP/1.0" 200 17401 "http://vk.com/away.ph Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, як Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50 85.95.0.0.0.0 16663 "http://site.ru/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, як Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036

[ hc @ host ~ ] # tail -5f /home/sites/web/site.ru/logs/site.ru.log

178.45.0.0 - - [ 23 / Jan / 2016 : 19 : 45 : 02 + 0300 ] "GET / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "Mozilla/5.0 (iPad; CPU OS 8_0_2 як Mac OS X) AppleWebKit/600.1.4 (KHTML, як Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4"

217.118.0.0 - - [ 23 / Jan / 2016 : 19 : 46 : 34 + 0300 ] "GET /allsorts HTTP/1.0" 301 - "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

217.118.0.0 - - [ 23 / Jan / 2016 : 19 : 46 : 35 + 0300 ] "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

85.95.0.0 - - [ 23 / Jan / 2016 : 19 : 47 : 34 + 0300 ] "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, як Gecko) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50"

Але найбільше зручність tail у цьому, як параметрів може бути передано кілька файлів, тобто. ви можете відстежувати кілька пов'язаних лог-файлів одночасно:

# tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log ==> /home/ sites/web/site.ru/logs/site.ru.log<== 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" ==>/var/log/httpd/domains/site.ru.error.log<== client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php

[ hc @ host ~ ] # tail -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log

==>/home/site/web/site. ru/logs/site. ru . log<= =

37.113.0.0 - - [ 23 / Jan / 2016 : 19 : 55 : 45 + 0300 ] "GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

"GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] "GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] "GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

37.113.0.0 - - [ 23 / Jan / 2016 : 19 : 55 : 46 + 0300 ] "GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 як Mac OS X) AppleWebKit/601.1.46 (KHTML, як Gecko) Version/9.0 Mobile/13C75 Safari/601.1"

==>/var/log/httpd/domains/site. ru . error. log<= =

[ Wed Jan 20 04: 38 : 36 2016 ] [ error ] [ client 46.166.0.0 ] client denied by server configuration : / home / sites / web / site . ru/public_html/xmlrpc. php

[ Wed Jan 20 13: 15 : 43 2016 ] [ error ] [ client 69.84.0.0 ] client denied by server configuration : / home / sites / web / site . ru/public_html/xmlrpc. php

[ Wed Jan 20 20 : 48 : 58 2016 ] [ error ] [ client 185.112.0.0 ] client denied by server configuration : / home / sites / web / site . ru/public_html/xmlrpc. php

[ Wed Jan 20 22 : 42 : 02 2016 ] [ error ] [ client 5.255.0.0 ] client denied by server configuration : / home / sites / web / site . ru/public_html/xmlrpc. php

Зверніть увагу, я використав конструкцію -s 3 – за допомогою даного ключа задається інтервал оновлення секунд, тобто. у цьому випадку перечитуватиметься файли раз на 3 секунди.

Перегляд логів у Linux за допомогою less.

При всій простоті та зручності tail має один істотний недолік – він показує тільки останні рядки і ви не маєте можливості подивитися, що відбувалося до цих записів або в певний момент часу. Для таких ситуацій краще підходить утиліта less.

Відкриємо файл:

# less /var/log/httpd/domains/big-roll.ru.error.log

[ hc @ host ~ ] # less /var/log/httpd/domains/big-roll.ru.error.log

Як бачите ми можемо спокійно перегортати вміст файлу за допомогою стрілок курсору та клавіш PgUp та PgDn.
Запам'ятайте ще кілька корисних клавіш:
q – вихід;
g – перейти на початок файла;
G – перейти до кінця файла;
Ng – перейти на рядок N (наприклад, на 14 рядок 14g);
N% – перейти на позицію N% (наприклад, 35%);
F – перейти до режиму відстеження оновлення файлу, тобто. аналог tail-f;
/pattern - прямий (вниз по файлу) пошук за зразком pattern;
?pattern - зворотний (вгору по файлу);
n - наступний збіг зразка пошуку;
N – попередній збіг;
Вихід із режиму відстеження Ctrl+C ;
Повний список решти клавіш і режимів ви можете подивитися самостійно – натиснувши h – допомогу (дуже раджу натиснути).

Linux Administrator повинен бути здатний до читання і підтримувати різні типи повідомлень, які будуть створені за допомогою всіх Linux систем в порядку, що потребують. Ці messages, названі logs, є initiated by Linux і applications running on it. Linux продовжує створювати, магазини і переробки цих logs за допомогою різних параметрів файлів, програм, команд, і daemons. Якщо ви знаєте, як виконати ці файли і зробити найкраще використання різних композицій буде ментування в цьому словнику, ви можете розглянути ваші потреби як про!

Це важливо, щоб помітити, що Linux зберігає свої файли в файлі /var/log в текстовому форматі.

Viewing System Logs on Ubuntu

У відповідь на те, що мова йде про те, або бачити, якщо ваше застосування або система є бігаючим в захищеному manner, ви можете побачити системи log files її графічно або через команда line в following ways:

  • Gnome Logs utility (Graphic)
  • Log File Viewer utility (Graphic)
  • Linux Terminal (Command Line)

View Log Files Through Gnome Logs

'Logs' is the default utility that comes with the latest versions of Ubuntu e.g., Ubuntu 18.04 LTS (Bionic Beaver). In order to access it,

Type Logs in the Ubuntu dash:

Ви можете завантажити Logs utility open, with option to view logs for Applications, System, Security and Hardware.

Click on the System tab to view system logs:

Тут можна побачити всі системи logs along with the time they were generated. Ви можете зробити наступні дії через це window:

  • Відобразити contents of log by clicking on it.
  • Search for log by clicking the search icon і підтримують ключові слова в search bar. Search bar also offers number of filters that you can apply in order to exactly specify What(Виберіть Journal field to filter the logs according to it) and When(Select the timestamp range of the log entries to be shown) you want to see:

  • Ви можете також export logs to a file click the export button located at the top right corner of the Logs window. Ви можете записати файл файлу відповідно до імені та місця.

Через Log File Viewer

Log Log File Viewer is default utility that comes with the version of Ubuntu. Якщо ваше редагування Ubuntu не має цього пристосування до default, ви можете download and install it через Ubuntu Software.

За допомогою програми Log File Viewer:

  • Enter Log Viewe r in Ubuntu Dash
  • Якщо ви маєте налаштований цей програма через Ubuntu Software, ви можете вивчати це для пошуку в ньому в Ubuntu Software, як follows and then clicking the Launch button:

The Log File Viewer буде appear as follows:


У лівій частині вікна показують рядок послідовних категорій категорій і правий panel показують список logs для вибраних категорій.

Click on the syslog tab to view system logs. Ви можете знайти на конкретний лог за допомогою ctrl+F control and then enter the keyword. Коли новий log event is generated, it is automatically added to the list of logs and you can see it in bolded form. You can also filter your logs через Filters Menu located in the top menu bar.

В ордер для перегляду log для specific application, click the Open option from the File menu. The following Open Log window will open for you to choose the log from:

Click on a log file and click Open. Ви повинні знати, що logs logs from the selected log file in the Log File Viewer.

View Log Files Через terminal

Ви можете також побачити систему logs через команда line, i.e., Ubuntu Terminal.

Open the Terminal and enter the following command:

Це комбінація збирає всі messages з kernel's buffer. Ви можете відвідати як follows:

Ви будете говорити, що це багато інформації. Ця інформація буде тільки бути використаною, якщо ми можемо мати деякі filtrи для перегляду, які можуть бути.

Customizing dmesg output

  • У порядку для повідомлень messages на вашому своєму місці, використовуючи наступні команди:

$dmesg |less

Цей command буде відображатись тільки на конкретній кількості messages per screen. Ви можете натиснути клавішу Enter, щоб перейти до наступного повідомлення або натиснути Q, щоб завершити command.

  • У порядку для пошуку для повідомлення, що містить конкретне слово, використовуючи following command:
$dmesg |grep

Для прикладу, якщо ви намагаєтеся знайти для всіх повідомлень, що містять слово core, ви можете використовувати following command:

$dmesg |grep core

The Terminal will now display only those messages containing the word “core” in red color.

Open a Log File with cat Command

Dmesg command opens all the logs з /var/log directory. У відповідності до відкритого файлу файлу з деяких інших місць, використовуючи following command:

$cat

$ cat /var/log/syslog

Ця команда буде print logs from the syslog file to the screen. Ви будете помічати, що ці приписи всіх повідомлень і це не добре до skim через. Тут ви можете використовувати 'grep' and 'less' filters для відтворення захищеного output as follows:

$cat |grep

$ cat |less

Writing To the System Log

Деякий час ми потрібні для отримання клієнтів повідомлень до нашої системи log при допомозі процесів. У той час, як Gnome Log і Log File Viewer programs є побудована для відображення customized message that you can write through the Terminal.

Open the Ubuntu Terminal and type the following command:

$ logger "Тим є custom message"


Ви можете додати custom log message, наприкінці над log list, що відображається в графічному log file viewer.

Ви можете використовувати logger command within script for providing additional information. У тому випадку, можна використовувати following command within your script:

$ logger -t scriptname “Цей є custom message”

Будучи практикувати протягом цього літератури, ви можете дізнатися, щоб стежити за своєю системою і application issues за допомогою accessing and understanding system logs.

How to View System Log Files on Ubuntu 18.04 LTS

Системні адміністратори, та й звичайні користувачі Linux, часто повинні дивитися лог файли для усунення несправностей. Насправді це перше, що повинен зробити будь-який сисадмін при виникненні будь-якої помилки в системі.

Сама операційна система Linux та працюючі програми генерують різні типи повідомлень, які реєструються в різних файлах журналів. У Linux використовуються спеціальне програмне забезпечення, файли та директорії для зберігання лог файлів. Знання в яких файлах є логи яких програм допоможе вам заощадити час і швидше вирішити проблему.

У цій статті ми розглянемо основні частини системи логування в Linux, файли логів, а також утиліти, за допомогою яких можна переглянути Linux.

Більшість файлів логів Linux знаходяться в папці /var/log/ Ви можете список файлів логів для вашої системи за допомогою команди ls:

Rw-r--r-- 1 root root 52198 трав 10 11:03 alternatives.log
drwxr-x--- 2 root root 4096 лист 14 15:07 apache2
drwxr-xr-x 2 root root 4096 кві 25 12:31 apparmor
drwx------ 2 root root 4096 трав 5 10:15 audit
-rw-r--r-- 1 root root 33100 трав 10 10:33 boot.log

Нижче ми розглянемо 20 різних файлів логів Linux, розміщених у каталозі /var/log/. Деякі з цих логів зустрічаються лише у певних дистрибутивах, наприклад, dpkg.log зустрічається лише у системах, заснованих на Debian.

/var/log/messages- Містить глобальні системні логи Linux, у тому числі ті, які реєструються при запуску системи. У цей лог записуються кілька типів повідомлень: це пошта, cron, різні сервіси, ядро, автентифікація та інші.

/var/log/dmesg- Містить повідомлення, отримані від ядра. Реєструє багато повідомлень ще на етапі завантаження, в них відображається інформація про апаратні пристрої, які ініціалізуються під час завантаження. Можна сказати, це ще один лог системи Linux. Кількість повідомлень у лозі обмежена, і коли файл буде переповнений, з кожним новим повідомленням старі будуть перезаписані. Ви також можете переглянути повідомлення з цього лога за допомогою команди dmseg.

/var/log/auth.log- містить інформацію про авторизацію користувачів у системі, включаючи логіни користувача та механізми автентифікації, які були використані.

/var/log/boot.log- Містить інформацію, що реєструється під час завантаження системи.

/var/log/daemon.log- Включає повідомлення від різних фонових демонів

/var/log/kern.log- Також містить повідомлення від ядра, корисні при усуненні помилок модулів, вбудованих в ядро.

/var/log/lastlog- Відображає інформацію про останню сесію всіх користувачів. Це нетекстовий файл, для перегляду необхідно використовувати команду lastlog.

/var/log/maillog /var/log/mail.log- журнали сервера електронної пошти, запущеного у системі.

/var/log/user.log- Інформація зі всіх журналів на рівні користувачів.

/var/log/Xorg.x.log- Лог повідомлень Х сервера.

/var/log/alternatives.log- Інформація про роботу програми update-alternatives. Це символічні посилання на команди або бібліотеки за промовчанням.

/var/log/btmp- лог файл Linux містить інформацію про невдалі спроби входу. Для перегляду файлу зручно використовувати команду last -f /var/log/btmp

/var/log/cups- Всі повідомлення, пов'язані з друком та принтерами.

/var/log/anaconda.log- всі повідомлення, зареєстровані під час встановлення, зберігаються в цьому файлі

/var/log/yum.log- реєструє всю інформацію про встановлення пакетів за допомогою Yum.

/var/log/cron- Щоразу, коли демон Cron запускає виконання програми, він записує звіт і повідомлення самої програми в цьому файлі.

/var/log/secure- містить інформацію, що стосується аутентифікації та авторизації. Наприклад, SSHd реєструє тут все, у тому числі невдалі спроби входу до системи.

/var/log/wtmp або /var/log/utmp -системні логи Linux , містять журнал входів користувачів у систему. За допомогою команди wtmp ви можете дізнатися, хто і коли увійшов до системи.

/var/log/faillog- Лог системи linux, містить невдалі спроби входу в систему. Використовуйте faillog, щоб відобразити вміст цього файлу.

/var/log/mysqld.log- Файли логів Linux від сервера баз даних MySQL.

/var/log/httpd/ або /var/log/apache2- лог файли linux11 веб-сервера Apache. Логи доступу знаходяться у файлі access_log, а помилок у error_log

/var/log/lighttpd/- логи linux веб-сервера lighttpd

/var/log/conman/- Файли логів клієнта ConMan,

/var/log/mail/- цей каталог містить додаткові логи поштового сервера

/var/log/prelink/- Програма Prelink пов'язує бібліотеки та файли, що виконуються, щоб прискорити процес їх завантаження. /var/log/prelink/prelink.log містить інформацію про файли, які були змінені програмою.

/var/log/audit/- Містить інформацію, створену демоном аудиту auditd.

/var/log/setroubleshoot/ - SE Linux використовує демон setroubleshootd (SE Trouble Shoot Daemon) для сповіщення про проблеми з безпекою. Цей журнал містить повідомлення цієї програми.

/var/log/samba/- містить інформацію та журнали файлового сервера Samba, який використовується для підключення до спільних папок Windows.

/var/log/sa/- Містить .cap файли, зібрані пакетом Sysstat.

/var/log/sssd/- Використовується системним демоном безпеки, який керує віддаленим доступом до каталогів та механізмами автентифікації.

Перегляд логів у Linux

Щоб подивитися логи на Linux, зручно використовувати кілька утиліт командного рядка Linux. Це може бути будь-який текстовий редактор або спеціальна утиліта. Швидше за все, вам знадобляться права суперкористувача для того, щоб подивитися логи в Linux. Ось команди, які найчастіше використовуються для цих цілей:

  • zgrep
  • zmore

Я не буду зупинятися докладно на кожній із цих команд, оскільки більшість із них вже детально розглянуті на нашому сайті. Але наведу кілька прикладів. Перегляд логів Linux виконується дуже просто:

Дивимося лог /var/log/messages, з можливістю прокручування:

less /var/log/messages

Перегляд логів Linux у реальному часі:

tail -f /var/log/messages

Відкриваємо лог файл dmesg:

cat /var/log/dmesg

Перші рядки dmesg:

head /var/log/dmesg

Виводимо лише помилки з /var/log/messages:

grep -i error /var/log/messages

Крім того, подивитися логи на linux можна і за допомогою графічних утиліт. Програма System Log Viewer може бути використана для зручного перегляду та відстеження системних журналів на ноутбуці або персональному комп'ютері з Linux.

Ви можете встановити програму в будь-якій системі із встановленим X сервером. Також для перегляду ліг може використовуватися будь-який графічний тестовий редактор.

Висновки

У каталозі /var/log можна знайти всю необхідну інформацію про роботу Linux. З сьогоднішньої статті ви достатньо дізналися, щоб знати, де шукати, і що шукати. Тепер перегляд логів у Linux не викликає проблем. Якщо залишилися питання, ставте у коментарях!

Розміщення перед ім'ям файлу символу каналу (|) дозволить використовувати fifo (first in - first out,перший прийшов - перший вийшов) або іменований канал (named pipe)як приймач для повідомлень. Перш ніж запускати (або перезапускати) syslogd, необхідно створити fifo за допомогою команди mkfifo. Іноді fifo використовується для налагодження.

Термінал та консоль

Термінал, такий як /dev/console.

Віддалена машина

Щоб повідомлення надсилалося на інший хост, помістіть перед ім'ям хоста символ (@). Зверніть увагу, що повідомлення не надсилаються з приймаючого хоста. (для роботи даного призначення на клієнті та сервері у файлі /etc/servicesповинен бути прописаний рядок syslog 514/udp, і відкритий UTP-порт 514)

список користувачів

Розділений комами список користувачів, які отримують повідомлення (якщо користувач зареєстрований у системі). Сюди часто вмикається користувач root.

Усі зареєстровані користувачі

Щоб сповістити всіх зареєстрованих користувачів за допомогою команди wall, використовуйте символ зірочки (*).

Приклад нескладного syslog.conf:

# Всі повідомлення ядра видавати на консоль. #kern.* /dev/console # Усі логи рівня info або вище, крім повідомлень електронної пошти, а також # не логувати повідомлення автентифікації та повідомлень демона cron! *.info;mail.none;authpriv.none;cron.none /var/log/messages # Записувати в окремий файл повідомлення, що містять конфіденційну інформацію # аутентифікації, незалежно від їх рівня. authpriv.* /var/log/secure # Усі повідомлення поштової системи також записувати в окремий файл. mail.* -/var/log/maillog # Логувати повідомлення планувальника у файл /var/log/cron cron.* /var/log/cron # Повідомлення про надзвичайні ситуації повинні негайно отримати # всі користувачі системи *.emerg * # Зберігати повідомлення новин рівня crit та вище в окремий файл. uucp,news.crit /var/log/spooler # Зберігати повідомлення завантаження в boot.log local7.* /var/log/boot.log

Як і в багатьох конфігураційних файлах синтаксис наступний:

  • рядки, що починаються з # і порожні рядки ігноруються.
  • Символ * можна використовувати для вказівки всіх категорій або всіх пріоритетів.
  • Спеціальне ключове слово none вказує, що журнал для цієї категорії не повинен бути виконаний для цієї дії.
  • Дефіс перед ім'ям файлу (як -/var/log/maillog у цьому прикладі) вказує, що після кожного запису журнал не повинен синхронізуватись. У разі аварії системи ви можете втратити інформацію, але відключення синхронізації дозволить підвищити продуктивність.

У синтаксисі конфігураційного файлу можна поставити перед пріоритетом знак!щоб показати, що дія не повинна застосовуватися, починаючи з цього рівня та вище. Подібним чином, перед пріоритетом можна поставити знак =, щоб показати, що правило застосовується тільки до цього рівня, або != , щоб показати, що правило застосовується до всіх рівнів, крім цього. Нижче наведено кілька прикладів (man syslog.conf можна знайти безліч інших прикладів):

# Надсилати всі повідомлення ядра в /var/log/kernel. # Надсилати всі повідомлення рівня critical і higher на віддалену машину sysloger і на консоль # Посилати всі повідомлення рівня info, notice і warning в /var/log/kernel-info # kern.* /var/log/kernel kern.crit @sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # Надсилати всі повідомлення поштової системи, крім рівня info в /var/log/mail. mail.*;mail.!=info /var/log/mail

Я постарався максимально зрозуміло роботу syslogd показати на схемі:

Запуск демона syslogd

Запуск демона протоколювання запускається на етапі ініціалізації системи за допомогою скрипту /etc/rc.d/init.d/syslogОднак для того, щоб задати параметри запуску, немає необхідності коригувати цей скрипт - починаючи з версії 7.2, опції запуску зчитуються з окремого конфігураційного файлу /etc/sysconfig/syslog (/etc/default/syslogв debian).

Ось деякі можливі параметри запуску демона syslogd:

  • -a /folder/socket- вказівка ​​додаткового слухаючого сокету (не забудьте заздалегідь створити сокет)
  • -d- режим налагодження. При цьому демон не переходить у фоновий режим та видає всі повідомлення на поточний термінал;
  • -f ім'я-конфігураційного-файлу. Задає ім'я альтернативного конфігураційного файлу, який використовуватиметься замість заданого за умовчанням /etc/syslog.conf;
  • -l список-хостів- Завдання списку хостів, імена яких не повинні записуватися із зазначенням повного доменного імені (FQDN - Full Qwalified Domain Name);
  • -m хвилин- запущений без цієї опції sysklogd через кожні 20 хвилин записує протокол повідомлення категорії mark (тимчасові позначки). За допомогою опції -m можна змінити інтервал між відмітками, або зовсім скасувати видачу таких повідомлень;
  • -p socket- завдання альтернативного сокету UNIX (замість прослуховування за замовчуванням /dev/log);
  • -r- дозвіл приймати повідомлення від віддалених хостів;
  • -x- заборона визначення імені хоста на його адресу для запобігання зависання при роботі на одному хості з сервером DNS.
  • -v- показати версію та закінчити роботу

Після запуску демону syslogd створюється файл статусу /var/lock/subsys/syslogнульової довжини, та файл з ідентифікаційним номером процесу /var/run/syslogd.pid.

За допомогою команди
kill -SIGNAL `cat /var/run/syslogd.pid`

можна надіслати демону syslogdодин із наступних сигналів: SIGHUP- Перезапуск демона; SIGTERM- завершення роботи; SIGUSR1- увімкнути/вимкнути режим налагодження.

Взагалі-то в системі запускаються два демони протоколювання - syslogdі klogd. Обидва демони входять до складу пакету sysklogd.

Демон klogdвідповідає за журналування подій, що відбуваються в ядрі системи. Необхідність окремого демону klogd пояснюється тим, що ядро ​​не може використовувати стандартну функцію syslog. Справа в тому, що стандартні бібліотеки С (включаючи бібліотеку, в якій знаходиться функція syslog) призначені для використання тільки звичайними додатками. Оскільки ядро ​​також потребує функцій журналування, у нього включені свої бібліотеки, недоступні додаткам. Тому ядро ​​використовує власний механізм генерації повідомлень.

Демон klogdпризначений для організації обробки цих повідомлень. В принципі він може робити таку обробку повністю самостійно і незалежно від syslogd, наприклад, записуючи ці повідомлення у файл, але в більшості випадків використовується прийнята за замовчуванням налаштування klogd, при якій всі повідомлення від ядра пересилаються тому самому демону syslogd.

Автоматична ротація (оновлення заповнених файлів) та архівування журналів

Згодом файл журналу має властивість збільшуватися, особливо при інтенсивній роботі будь-якого сервісу. Відповідно необхідно мати можливість контролювати розмір журналів. Це робиться за допомогою команди logrotate, яка зазвичай виконується демоном cron. Про роботу cron я розповім у наступних статтях. Головна мета команди logrotateполягає в тому, щоб періодично створювати резервні копії журналів та створювати нові чисті журнали. Зберігається кілька поколінь журналів і, коли закінчується термін життя журналу останнього покоління, може бути заархівований (стиснутий). Результат може бути відправлений поштою, наприклад, відповідальним за ведення архівів.

Для визначення порядку ротації та архівування журналів використовується конфігураційний файл /etc/logrotate.conf . Для різних журналів можна задати різну періодичність, наприклад, щодня, щотижня або щомісяця, крім того, можна регулювати кількість поколінь, що накопичуються, а також вказати, чи будуть копії архівів відправлятися відповідальному за ведення архівів і, якщо будуть, коли. Нижче показано приклад файлу /etc/logrotate.conf:

# спочатку задані параметри "за замовчуванням" (глобальні опції) # оновлювати файли журналу щотижня weekly # зберігати архів логів за 4 останні тижні rotate 4 # створювати новий (порожній) файл після ротації (оновлення) create # розкоментуйте, якщо бажаєте, щоб збережені файли стискалися #compress # увімкнути налаштування ротації із зазначеного каталогу include /etc/logrotate.d # не зберігати wtmp, або btmp -- налаштування ротації даних журналів такі: /var/log/wtmp ( missingok monthly create 0664 root utmp rotate 1 ) / var/log/btmp ( missingok monthly create 0664 root utmp rotate 1 ) # специфічні системні журнали можуть бути налаштовані нижче

Глобальні опції розміщуються на початку файлу logrotate.conf. Вони використовуються за замовчуванням, якщо десь в іншому місці не встановлено нічого більш визначеного. У прикладі ротація журналів відбувається щотижнята резервні копії зберігаються протягом чотирьохтижнів. Як тільки виконується ротація журналу, на місці старого журналу автоматично створюється новий. Файл logrotate.confможе містити специфікації інших файлів. Так, до нього включаються всі файли з каталогу /etc/logrotate.d.

У цьому прикладі також містяться спеціальні правила для /var/log/wtmpі /var/log/btmp(що зберігають інформацію про вдалі та невдалі спроби входячи в систему), ротація яких відбувається щомісяця. Якщо файли відсутні, повідомлення про помилку не видається. Створюється новий файл та зберігається лише одна резервна копія.

У цьому прикладі після досягнення резервної копією останнього покоління вона видаляється, оскільки не визначено, що слід з нею робити.

Резервні копії журналівможуть створюватися, коли журнали досягають певного розміру, і можуть бути створені скрипти з наборів команд для виконання до або після операції резервного копіювання. Приклад:

/var/log/messages ( rotate 5 mail logadmin@sysloger size 100k postrotate /usr/bin/killall -HUP syslogd endscript )

У цьому прикладі ротація /var/log/messagesпровадиться після досягнення ним розміру 100 КБ. Накопичується п'ять резервних копій, і коли закінчується термін життя найстарішої резервної копії, вона надсилається поштою на адресу logadmin@sysloger. Командне слово postrotate включає скрипт, що перезапускає демон syslogd після завершення ротації шляхом надсилання сигналу HUP. Командне слово endscript необхідне для завершення скрипта, а також у випадку, якщо є скрипт prerotate. Більш повну інформацію див. у сторінках посібника man для logrotate.

Параметри, що задаються у конфігураційному файлі logrotate.conf:

  • compress| nocompress(старі версії стискаються або не стискаються за допомогою gzip)
  • compresscmd(Встановлює програму стиснення, за замовчуванням - gzip)
  • uncompresscmd(задає програму розтискання, за замовчуванням – ungzip)
  • compressext(Визначає суфікс для стиснутих файлів)
  • compressoptions(задає параметри програми стиснення; за замовчуванням - "-9", тобто максимальний стиск gzip)
  • copytruncate| nocopytruncate(зазвичай стара версія перейменовується і створюється нова версія журналу; при заданні цього параметра logrotate копіює журнал у новий файл, а потім обрізає старий; використовується, якщо програма, що створює журнал, не вміє його закривати; губляться записи, зроблені в проміжку між копіюванням та обрізанням ;а чи допоможе, якщо програма, яка створює журнал, замість режиму append просто пише у файл, використовуючи внутрішній покажчик?)
  • create[право-доступу власник група] | nocreate(відразу після перейменування старої версії журналу і до виклику postrotate створюється новий журнал із зазначеними атрибутами - права доступу задаються у вісімковому вигляді, як у chmod.2; якщо атрибути не вказані, беруться від старого журналу)
  • daily(Зміна версій у серії відбувається щодня)
  • delaycompress| nodelaycompress(Деякі програми не відразу закривають журнал, в цьому випадку стиснення треба відкласти до наступного циклу)
  • errorsemail(кому надсилати повідомлення про помилки)
  • extensionсуфікс(задається суфікс, що додається до імен файлів при ротації перед суфіксом стиснення)
  • ifempty| notifempty(Зміна версій навіть якщо файл порожній; діє за замовчуванням)
  • includeім'я файлу| ім'я-директорії (текстуально підставити файл або всі файли із зазначеної директорії; не включаються піддиректорії, спеціальні файли та файли із суфіксами зі списку винятків; не можна використовувати всередині секції)
  • mailадреса| nomail(коли зміна версій призводить до необхідності видалити старий журнал, то надіслати його за вказаною адресою)
  • mailfirst(Посилати не видалену версію журналу, а першу)
  • maillast(посилати версію журналу, що видаляється; діє за замовчуванням)
  • missingok| nomissingok(не надсилати повідомлення про помилку, якщо журнал відсутній)
  • monthly(Зміна версій відбувається щомісяця)
  • olddirдиректорія| noolddir(Під час зміни версій журнал переміщається у вказану директорію; д.б. на тому ж фізичному пристрої)
  • postrotate(усі подальші рядки до рядка endscript виконуються як команди shell після процесу зміни версії)
  • prerotate(усі подальші рядки до рядка endscript виконуються перед процесом зміни версії)
  • rotateчисло(скільки старих версій зберігати; якщо 0, то жодної)
  • sizeбайт(Зміна версії відбувається, якщо розмір журналу перевищив вказане число; можна використовувати суфікси "k" - кілобайт - та "M" - мегабайт)
  • sharedscripts| nosharedscripts(виконувати команди prerotate та postrotate лише один раз для всіх файлів, описаних у секції)
  • tabooext[+] список-суфіксів(завдання списку суфіксів-виключень для include; якщо вказано знак "плюс", то доповнення, інакше заміна; за замовчуванням: .rpmorig, .rpmsave, .rpmnew, ",v", .swp та "~")
  • weekly(Зміна версій відбувається щотижня)

Вивчення та моніторинг журналів

Записи в журналах зазвичай містять мітку часу, ім'я хоста, на якому виконується описуваний процес, та ім'я процесу. Переглядати журналиможна за допомогою програми посторінкового висновку, наприклад, less, шукати певні записи (наприклад, повідомлення ядра від певного демона) можна за допомогою команди grep:

# less /var/log/messages # grep "ppp" /var/log/messages | tail Dec 17 16:34:25 proxy pppd: Connection terminated. Dec 17 16:34:25 proxy pppd: Exit. Dec 17 16:35:57 proxy pppd: LCP terminated by peer (^P]kV^@

Комп'ютер може працювати не завжди і вимикатися, скажімо на ніч. Тому /var/log/messages записи зберігаються циклічно від запуску комп'ютера до вимкнення, це можна помітити за повідомленнями:

Гру 17 08:32:56 syslog-server syslogd 1.4-0: restart. Груд 17 08:32:56 syslog-server syslog: запуск syslogd succeeded Гру 17 08:32:56 syslog-server kernel: klogd 1.4-0, log source = /proc/kmsg started. Грудень 17 08:32:56 syslog-server syslog: запуск klogd succeeded

Dec 17 08:32:56 syslog-server kernel: Kernel command line: auto 10:00 125652k/130560k available (1365k kernel code, 4200k reserved, 92k data, 236k init, 0k highmem) Dec 17 08:32:56 syslog-server kernel: CPU: Intel(R) Pentium

Так само, в цьому файлі можна знайти інформацію про дискову пам'ять (включаючи інформацію про геометрію диска, структуру розділів і переривання, що використовуються), інформацію про периферійні пристрої, про запуск окремих служб і сервісів, інформацію про підключення файлових систем і повідомлення про вхід користувачів в систему , а також повідомлення про помилки.

Іноді може виникати потреба моніторингу системних журналівз метою пошуку поточних подій. Наприклад, можна спробувати зловити подію, що рідко трапляється, в той момент, коли вона сталася. У такому разі можна використати команду tailз опцією -fдля відстеження вмісту журналу. Приклад:

# tail -f /var/log/messages | grep syslog-server Dec 17 16:46:09 syslog-server pppd: pptpd-logwtmp.so ip-up ppp0 maikop 94.77.0.150 Dec 17 16:46:09 syslog-server pppd: Script /etc/ppp finished (pid 12552), status = 0x0 Dec 17 16:46:49 syslog-server pptpd: CTRL: Client 85.175.197.65 control connection started Dec 17 16:46:49 opening GRE) 17 грудня 16:46:49 syslog-server pppd: Plugin /usr/lib/pptpd/pptpd-logwtmp.so loaded.

Крім файлів-журналів, зазначених у /etc/syslog.conf, існують так само й інші файли, наприклад файл , який зберігає інформацію про процес завантаження системи до запуску syslogd, а також файли , що мають двійковий формат і зберігають інформацію про останній вхід користувача в систему, про всі вдалі входи користувачів у систему та про всі невдалі входи користувачів у систему відповідно. Так само в каталозі /var/log/ можуть бути лог-файли таких демонів як веб-сервер або проксі-сервер. Формат даних файлів аналогічний журналам syslogd.

Наостанок, хотілося б наголосити на тому, що цей протокол дуже не захищений, т.к. syslog не містить жодних засобів захисту від підробок повідомлень. Найгірше використання протоколу UDP дозволяє зловмисникам посилати повідомлення від імені будь-якого хоста. Ваша локальна мережа повинна бути захищена екраном від прийому пакетів з підробленими локальними адресами (хоча це не завадить надсилати підроблені повідомлення зсередини локальної мережі) та від прийому пакетів зовні на порт 514/udp. Відомі випадки переповнення диска неправдивими повідомленнями.

Протокол syslog і UDP не забезпечують гарантованої доставки (повідомлення можуть бути втрачені при перевантаженні мережі або перехоплені, пошкоджені повідомлення видаляються без попередження), правильної послідовності доставки (повідомлення про завершення процесу може прийти раніше повідомлення про його запуск), пріоритетної доставки.

Конфіденційність повідомлень не забезпечується, оскільки вони надсилаються відкритим текстом.

Якщо при налаштуванні генератора повідомлень вказати неправильну адресу колектора або релея, то ніяких повідомлень про помилку не буде - повідомлення видалятимуться (або записуватимуться в чужий журнал).

Було запропоновано кілька проектів покращення протоколу syslog. Наприклад, документ RFC 3195 пропонує систему протоколювання (syslog-conn), засновану на TCP, що забезпечує гарантовану доставку повідомлень у правильній послідовності. Проект syslog-sign пропонує забезпечити автентифікацію, упорядкованість, цілісність повідомлень та виявлення зниклих повідомлень за рахунок генерації спеціальних повідомлень, що містять цифровий підпис (signature) блоку попередніх повідомлень із збереженням стандартного протоколу та формату syslog та використанням UDP.

Підіб'ємо невеликий підсумок:

У лінукс є єдиний демон, який відповідає за журналування подій локальної системи та віддалених систем. Всі події збираються із сокету /dev/log, порту UDP - 514, а також від "помічника" - демона klogd, який надсилає повідомлення від ядра. Усі зібрані повідомлення фільтруються демоном syslogd через правила у файлі /etc/syslog.conf і відповідно до правил розподіляються за відповідними місцями призначення. Файли логів періодично "обрізаються". Періодичність визначає файл logrotate.conf та команда logrotate, яка запускається системним планувальником – cron.

На сьогодні це все. Сподіваюся, що описав все максимально зрозуміло. Згодом доповнюватиму статтю!

З повагою, Mc.Sim!



Розповісти друзям