Т.е. вопрос понятен? : как управлять логированием в системе?dmitriev писал(а):Присоединяюсь к вопросу. И немного расширяю его:Может быть как-то можно сделать ведение логов поподробнее?
Как заставить систему вести логи нужного процесса?
В моем случае - логи сетевого подключения (wvdial и ppp).
Системный журнал
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Системный журнал
Вопрос переплыл вот отсюда: viewtopic.php?f=19&t=1792&start=0
Re: Системный журнал
Можно и так сказать.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Системный журнал
Давайте разбираться ...dmitriev писал(а):Можно и так сказать.
Кое-что я знаю и могу сказать, кое-что потребует разборок .
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Системный журнал
Я уже в исходной теме заметил, что здесь, как минимум, 3 вопроса одновременно:dmitriev писал(а):Присоединяюсь к вопросу. И немного расширяю его:Может быть как-то можно сделать ведение логов поподробнее?
Как заставить систему вести логи нужного процесса?
В моем случае - логи сетевого подключения (wvdial и ppp).
1. как управлять порогом логирования системы?
2. как программа пишет лог, и как она определяет уровень логирования?
3. как заставить конкретную программу писать детальные логи?
Начнём с п.1
Вот здесь, в тексте книги Модули ядра Linux, мы с моей группой слушателей разбирались (но только отчасти) с этими вопросами: Вывод диагностики модуля
- система логирования Linux предусматривает целую сетку уровней важности, "тревожности" сообщений...Определения констант для 8 уровней сообщений, записываемых в вызове printk() вы найдёте в файле /lib/modules/2.6.18-92.el5/build/include/linux/kernel.h:Код: Выделить всё
#define KERN_EMERG "<0>" /* system is unusable */ #define KERN_ALERT "<1>" /* action must be taken immediately */ #define KERN_CRIT "<2>" /* critical conditions */ #define KERN_ERR "<3>" /* error conditions */ #define KERN_WARNING "<4>" /* warning conditions */ #define KERN_NOTICE "<5>" /* normal but significant condition */ #define KERN_INFO "<6>" /* informational */ #define KERN_DEBUG "<7>" /* debug-level messages */
- система логирования записывает в системный журнал только те сообщения, уровень "тревожности" которых численно ниже (важнее) порога, установленного для демона системного журнала ...
- порог уровня логирования устанавливается при старте или рестарте демона системного журнала...
- рестарт, обычно, предусматривается посылкой (kill) демону сигнала SIGHUP;
- порог логирования демона определяется его конфигурациями (иногда и опциями запуска демона)...
- к неприятности, принятая система логирования Linux меняется время от времени (довольно радикально): был syslogd, потом rsyslogd, сейчас в Fedora Леннарт Поттеринг со всей своей дурью настырно пробивает новую систему логирования, связанную с systemd (перевод: зачем переходить на systemd)...
В любом случае, программа тупо выдаёт лог-сообщение (ничего не зная о деталях системного журнала), а логируется это сообщение или нет в журнал - решает демон журнала по своим текущим настройкам, и записывается сообщение в журнал только в том случае, если его индекс ниже установленного порога, все остальные сообщения просто игнорируются.
Обычно программы (особенно демоны, службы) сыпят лог-сообщения самых разных уровней тревожности ... а уже настройки системы логирования определяют какие из них отфильтровать в мусор.
P.S. там же, по показанному URL, в главе, показаны некоторые приёмы переконфигурирования уровня порога демона системного журнала ... но лучше это проверять-смотреть не по публикации на HTML странице книги, а в её более поздних обновлениях... чтоб не искать такие обновления, я наиболее свежую версию книги прикрепляю прямо сюда.
- Вложения
-
- BOOK_KERN_162.odt
- (493.8 КБ) 481 скачивание
Re: Системный журнал
Ну и как же это регулировать на уровне конечного пользователя?
Re: Системный журнал
dmitriev писал(а):Ну и как же это регулировать на уровне конечного пользователя?
В/etc/ppp/ppp.options добавить переменную:debug Enables connection debugging facilities. If this option is given, pppd will log the contents of all control packets sent or received in a
readable form. The packets are logged through syslog with facility daemon and level debug. This information can be directed to a file by
setting up /etc/syslog.conf appropriately (see syslog.conf(5)).
Код: Выделить всё
debug # см. man pppd
Код: Выделить всё
!ppp
*.* /var/log/ppp.log
UPD
Как сделать в случае systemd ???
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Системный журнал
Это уже к вопросу, который я назвал №3Ali писал(а):dmitriev писал(а):Ну и как же это регулировать на уровне конечного пользователя?В/etc/ppp/ppp.options добавить переменную:debug Enables connection debugging facilities. If this option is given, pppd will log the contents of all control packets sent or received in a
readable form. The packets are logged through syslog with facility daemon and level debug. This information can be directed to a file by
setting up /etc/syslog.conf appropriately (see syslog.conf(5)).
Код: Выделить всё
debug # см. man pppd
Ali, какая у вас система, дистрибутив, релиз?
Вот какие чудеса происходят в Fedora 17:
Код: Выделить всё
[root@notebook sysconfig]# cat /etc/system-release
RFRemix release 17 (Beefy Miracle)
Ali писал(а): в /etc/syslog.confКод: Выделить всё
!ppp *.* /var/log/ppp.log
Код: Выделить всё
[root@notebook sysconfig]# ls /etc/syslog*
ls: невозможно получить доступ к /etc/syslog*: Нет такого файла или каталога
Какой из них? :Ali писал(а): перезапустить демон.
Код: Выделить всё
[root@notebook sysconfig]# ps -A | grep log
644 ? 00:00:00 abrt-watch-log
665 ? 00:00:00 systemd-logind
684 ? 00:00:00 rsyslogd
694 ? 00:00:00 mcelog
Вот и я о том же!Ali писал(а): UPD
Как сделать в случае systemd ???
Re: Системный журнал
Код: Выделить всё
root@ali ~]# grep ppp /etc/rsyslog.conf
:msg, contains, "pppd" -/var/log/ppp.log
[root@ali ~]# systemctl restart rsyslog.service
[root@ali ~]# /usr/sbin/pppd debug /dev/ttyS0 38400
[root@ali ~]#
Код: Выделить всё
[root@ali log]# tailf ppp.log
Aug 16 15:57:19 ali pppd[2348]: pppd 2.4.5 started by ali, uid 0
как-то так
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Системный журнал
Здесь я протупил относительно /etc/syslog.conf & /etc/rsyslog.conf ... хотя сам описывал в Вывод диагностики модуля конфигурирование rsyslogd.Ali писал(а):Код: Выделить всё
root@ali ~]# grep ppp /etc/rsyslog.conf :msg, contains, "pppd" -/var/log/ppp.log
А вот этот номер с systemd не пройдёт
См. :Ali писал(а):Код: Выделить всё
[root@ali ~]# systemctl restart rsyslog.service [root@ali ~]# /usr/sbin/pppd debug /dev/ttyS0 38400 [root@ali ~]#
потерялся sshd в Fedora 17
не могу поднять сервер ftp с systemd
управление systemd
Скрипты запуска сервисов systemd должны быть прописаны в:
Код: Выделить всё
bash-4.2$ pwd
/usr/lib/systemd/system
Код: Выделить всё
bash-4.2$ sudo systemctl stop proftpd.service
bash-4.2$ sudo systemctl start proftpd.service
bash-4.2$ sudo systemctl status proftpd.service
Но там тоже что-то странное:
Код: Выделить всё
bash-4.2$ ls | grep *log*
grep: syslog.target.wants: Это каталог
bash-4.2$ ls syslog.target.wants
bash-4.2$
Заставить перечитать конфиоурацию rsyslogd можно и без его рестарта:
Код: Выделить всё
bash-4.2$ ps -Af | grep logd
root 684 1 0 10:05 ? 00:00:00 /sbin/rsyslogd -n -c 5
olej 3461 3315 0 15:56 pts/5 00:00:00 grep logd
bash-4.2$ sudo kill -HUP 684
Код: Выделить всё
bash-4.2$ sudo tail -n1 /var/log/messages
Aug 16 15:57:22 notebook rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="684" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Системный журнал
В запуске "по старому стилю" rsyslogd, естественно, нет:Olej писал(а): Каким образом они начально стартовали rsyslogd мне непонятно!
Код: Выделить всё
bash-4.2$ ls /etc/init.d
functions hsqldb ipsec livesys livesys-late netconsole network rfremixconf spice-vdagentd tcsd wine
Но рестарт сервиса rsyslog происходит:Ali писал(а):Код: Выделить всё
[root@ali ~]# systemctl restart rsyslog.service [root@ali ~]# /usr/sbin/pppd debug /dev/ttyS0 38400 [root@ali ~]#
Код: Выделить всё
bash-4.2$ sudo systemctl restart rsyslog.service
bash-4.2$ sudo tail -n4 /var/log/messages
Aug 16 16:14:50 notebook kernel: Kernel logging (proc) stopped.
Aug 16 16:14:50 notebook rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="684" x-info="http://www.rsyslog.com"] exiting on signal 15.
Aug 16 16:14:50 notebook kernel: imklog 5.8.10, log source = /proc/kmsg started.
Aug 16 16:14:50 notebook rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="3533" x-info="http://www.rsyslog.com"] start
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей