Денис Колисниченко - Linux-сервер своими руками Страница 44
Денис Колисниченко - Linux-сервер своими руками читать онлайн бесплатно
cron.=warn –/var/log/cron/warnings
cron.err –/var/log/cron/errors
# Протоколирование ядра
kern.=debug;kern.=info;kern.=notice –/var/log/kernel/infо
kern.=warn –/var/log/kernel/warnings
kern.err –/var/log/kernel/errors
# Протоколирование очереди печати
lpr.=debug;lpr.=info;lpr.=notice –/var/log/lpr/info
lpr.=warn –/var/log/lpr/warnings
lpr.err –/var/log/lpr/errors
# Протоколирование новостей
news.=debug;news.=infо;news.=notice –/var/log/news/info
news.=warn –/var/log/news/warnings
news.err –/var/log/news/errors
# Протоколирование демонов
daemon.=debug;daemon.=info;daemon.=notice –/var/log/daemons/infо
daemon.=warn –/var/log/daemons/warnings
daemon.err –/var/log/daemons/errors
# Критические сообщения *.emerg *
# Сохранять ошибки почты и новостей (уровень err и выше)
# в отдельном файле
uucp,news.crit –/var/log/spooler
# Загрузочные сообщения
local?.* –/var/log/boot.log
Как вы уже заметили, файл конфигурации состоит из двух полей: объект протоколирования и файл, в который будут записываться сообщения, порождаемые этим объектом. Для каждого объекта можно указать один из уровней протоколирования: debug, info, notice, warn, err. Первые три относятся к информационным сообщениям. Уровень warn — это предупреждения, а err — ошибки. Существуют специальные сообщения — критические. Обычно они выводятся прямо на консоль.
Как для обозначения объектов, так и для обозначения уровней протоколирования можно использовать символ *, который обозначает все объекты или все уровни. Например, если вы хотите протоколировать все сообщения демонов в файл /var/log/daemons, то используйте такую конструкцию: daemon.* /var/log/daemons.
Пример протоколирования всех сообщений уровня emerg (критический уровень) приведен выше. Если вы хотите отправлять сообщения не в файл, а в поименованный канал (FIFO), используйте символ | перед именем файла-потока.
5.8.4. Сетевое протоколирование
Сейчас разберемся, как обеспечить протоколирование в сети. Протоколирование в сети — это перенаправление сообщений на демон syslogd, запущенный на другой машине, где они будут записаны на диск.
Для передачи сообщений используется протокол UDP. Он менее надежный, чем TCP, но отправление пакетов происходит несколько быстрее. Начните с того, что убедитесь, не закомментирована ли следующая строка в вашем файле /etc/services:
syslog 514/udp
Затем необходимо внести некоторые коррективы в файл конфигурации. Как и прежде, определите объекты протоколирования, а вместо файлов протоколов используйте параметр @hostname, где hostname — это имя компьютера, на который будут перенаправлены сообщения. Например, для перенаправления всех сообщений об ошибках на узел сети hostname можно использовать такую запись:
*.err @hostname
Для перенаправления всех сообщений используется запись:
*.* @hostname
Имя узла желательно указать в файле /etc/hosts, так как демон syslogd может быть запущен после сервера доменных имен или сервер DNS окажется недоступным.
Вы можете организовать центральный сервер протоколирования для всей вашей локальной сети. Для того, чтобы указать, какие хосты вы хотите протоколировать, используйте опцию –l список_хостов. В списке указываются простые имена машин, то есть без указания имени домена. Имена машин разделяются двоеточием (:). Возможно, вы также захотите использовать опцию –s для указания дополнительного сокета для прослушивания. Для перенаправления сообщений используйте опцию –r на машине-клиенте, при этом сообщения будут перенаправлены на сервер (см. табл. 5.7).
5.8.5. Демон klogd
Демон klogd предназначен для перехвата и протоколирования сообщений ядра Linux (klogd расшифровывается как kernel-logging daemon). В своей работе вы можете использовать параметры демона, указанные в табл. 5.9.
Параметры демона klogd Таблица 5.9
Параметр Описание -c n Устанавливает уровень сообщений, которые будут выводиться на экран -d Режим отладки -f файл Записывать сообщения в указанный файл раньше демона syslogd -i Позволяет перезагрузить символьную информацию ядра о модулях -l Перезагружает статическую символьную информацию и информацию о модулях ядра -n Не переходить в фоновый режим. Этот параметр используется, когда демон управляется программой init -o Демон читает и протоколирует все сообщения, которые он найдет в буферах сообщений ядра. После одного цикла чтения/протоколирования демон завершает работу -s Заставляет демон klogd использовать системные вызовы для обращений к буферам сообщений ядра -k файл Использует указанный файл в качестве файла, содержащего символьную информацию ядра -v Выводит версию и завершает работуДля просмотра сообщений ядра используется команда dmesg. Обычно она используется так:
dmesg | less
Данная команда выводит сообщения ядра при запуске системы. С помощью параметра –с этой команды можно очистить ring-буфер ядра. Параметр –n задает уровень сообщений, которые будут выводиться на консоль.
По умолчанию демон klogd вызывается системным вызовом для того, чтобы препятствовать отображению всех сообщений на консоль. Это правило не распространяется на критические сообщения ядра (kernel panic), так как эти сообщения все равно будут отображены на консоли.
Демон реагирует на сигналы: SIGHUP, SIGKILL, SIGINT, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2, SIGCONT. Сигналы SIGTSTP и SIGCONT используются для начала и завершения протоколирования сообщений ядра. Сигналы SIGUSR1 и SIGUSR2 аналогичны опциям –i и –I соответственно. То есть первый перезагружает информацию о модулях, а второй статическую информацию и информацию о модулях. Использовать сигнал GIGUSR1 (как и все остальные) можно так:
# kill –USR1 PID
5.8.6. Параметры ядра
Параметр debug ядра Linux задает уровень отладки. Сообщения ядра (важные и не очень) передаются через функцию prinfk(). Если сообщение очень важное, то его копия будет передана на консоль, а также демону klogd для регистрации сообщения на жестком диске. Сообщения передаются на консоль, потому что иногда невозможно запротоколировать сообщение на жестком диске (например, отказ диска).
Предел того, что будет отображаться на консоли, задается переменной console_loglevel. По умолчанию на консоли отображается все, что выше уровня DEBUG (7). Список уровней можно найти в файле kernel.h.
6
Русификация Linux
6.1. Русификация консоли
Выбор языка системы производится при установке системы или при помощи соответствующих конфигураторов: keyboarddrake в Linux Mandrake и setup в Linux Red Hat. В случае некорректного отображения русских символов нужно подправить файл /etc/inputrc (см. листинг 6.1), изменив следующие строки:
Листинг 6.1. Фрагмент файла inputrc# 8Bits supports.
set meta-flag on
set convert-meta off
set input-meta on
set output-meta on
Для русификации Midnight Commander в меню Options/Display bits необходимо включить поддержку восьмибитного ввода и вывода. После чего требуется сохранить текущую конфигурацию.
6.2. Русификация системы X Window
Как ни странно, при выборе русскоязычного варианта установки русские шрифты устанавливаются на диск, но не прописываются в конфигурационных файлах. Конечно, оконная среда KDE (K Desktop Environment), как и Gnome, в большинстве случаев использует эти шрифты, но некоторые элементы меню или подписи значков отображаются совсем не так, как нужно.
Для корректного отображения русскоязычной информации на экране в системе X Window нужно сделать следующее. Зарегистрировавшись как пользователь root, открыть в любом текстовом редакторе файл конфигурации XFree86 — /etc/xll/XF86Config и перед строкой
FontPath "unix/:-1"
добавить строку
FontPath "/usr/XI1R6/lib/fonts/Cyrillic/"
Естественно, пакет XFree86-cyrillic-fonts должен быть предварительно установлен. Проверить наличие этого пакета можно с помощью команды
rpm –qi XFree86-cyrillic-fonts
Желательно проверить также каталог, в который был установлен данный пакет — возможно у вас он будет другим.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.