Систем лог хийх нь системийг удирдахад чухал зүйл юм. Үүнийг тоног төхөөрөмж болоод програм хангамжийн асуудлууд, мөн систем дэх алдаануудыг олж илрүүлэхэд хэрэглэдэг. Аюулгүй байдлын аудит хийх болон аливаа учралд хариу үзүүлэхэд бас маш чухал үүрэг гүйцэтгэдэг. Хяналтын терминалгүй системийн демонууд мэдээллийг системийн лог хийгч рүү эсвэл бусад лог файл руу ихэвчлэн бас лог хийдэг.
Энэ хэсэгт FreeBSD системийн лог хийгч syslogd(8)-г
хэрхэн тохируулж ашиглах талаар болон логийг багасгах ба
newsyslog(8) ашиглан лог удирдах талаар хэлэлцэх болно.
Локал машин дээр syslogd
-г тохируулж
ашиглах талаар анхаарах болно. Тусдаа лог хост ашиглах талаарх
нэмэлт тохиргооны тухай дэлгэрэнгүйг Хэсэг 30.11, «syslogd
ашиглан алсын хост руу бүртгэх нь»
хэсгээс үзнэ үү.
FreeBSD-н syslogd(8)-н анхдагч тохиргоо ачаалах үед
эхэлдэг. Үүнийг /etc/rc.conf
дахь
syslogd_enable
хувьсагчаар хянадаг.
syslogd(8)-н ажиллагаанд нөлөөлдөг програмын хэд хэдэн
аргументууд байдаг. Тэдгээрийг өөрчлөхийн тулд
/etc/rc.conf
дахь
syslogd_flags
-г ашиглана.
Аргументуудын талаар дэлгэрэнгүйг
syslogd(8)-оос, rc.conf(5) ба
Хэсэг 12.3, «Гол Тохиргоо» болон Хэсэг 12.7, «FreeBSD дээр rc(8) ашиглах нь» хэсгээс
/etc/rc.conf
ба rc(8) дэд системийн
талаар дэлгэрэнгүйг үзнэ үү.
Тохиргооны файл нь анхдагчаар
/etc/syslog.conf
бөгөөд
логуудыг хүлээж авсныхаа дараа хэрхэн яаж
ажиллахыг хянадаг. Ирж байгаа үйл явдлуудтай
ажиллахыг хянах хэд хэдэн параметрүүд байдаг бөгөөд
тэдгээрээс хамгийн хялбар нь
facility ба
level юм. Хэрэгсэл нь
цөм эсвэл демон гэх мэт аль дэд систем логийг үүсгэснийг
тайлбарлах бөгөөд түвшин нь учирсан үйл явдлын хор
хөнөөлийг тайлбарладаг. Энэ нь логийг өөр лог файлууд
рүү өгөх эсвэл хаях зэргээр тохиргоо болон түвшингээс хамааруулан
хийх боломжтой болгодог. Лог илгээсэн програм болон алсаас лог
хийж байгаа тохиолдолд лог үйл явц үүсгэж байгаа машины хостын
нэрээс хамаарч арга хэмжээ авах боломж бас байдаг.
syslogd(8)-г тохируулах нь хялбар байдаг.
Тохиргооны файл нь хийх үйлдэл бүрийн хувьд нэг мөртэй
байх бөгөөд мөр бүрийн синтакс нь сонголтын талбар болон
арга хэмжээний талбараас тогтоно. Сонголтын талбарын
синтакс нь facility.level
байх
бөгөөд facility
буюу хэрэгслээс
ирж байгаа логуудыг level
түвшинд буюу түүнээс дээш түвшинд авах тохиргоо юм.
Мөн нэмэлтээр юу лог хийхийг илүү нарийн зааж өгөхийн тулд
харьцуулах флагийг түвшингийн өмнө нэмж өгөх бас боломжтой.
Адил үйлдэлд олон сонголтын талбарыг ашиглаж болох бөгөөд
тэдгээрийг цэг таслалаар (;
) тусгаарладаг.
*
-г ашиглавал бүгдийг гэсэн утгатай.
Арга хэмжээний талбар нь файл эсвэл алсын лог хост зэрэг
хаашаа логийг илгээхийг зааж өгдөг. Жишээ нь энд
FreeBSD-н анхдагч syslog.conf
байна:
# $FreeBSD$ # # Spaces ARE valid field separators in this file. However, # other *nix-like systems still insist on using tabs as field # separators. If you are sharing this file between systems, you # may want to use only tabs as field separators here. # Consult the syslog.conf(5) manpage. *.err;kern.warning;auth.notice;mail.crit /dev/console*.notice;authpriv.none;kern.debug;lpr.info;mail.crit;news.err /var/log/messages security.* /var/log/security auth.info;authpriv.info /var/log/auth.log mail.info /var/log/maillog
lpr.info /var/log/lpd-errs ftp.info /var/log/xferlog cron.* /var/log/cron *.=debug /var/log/debug.log
*.emerg * # uncomment this to log all writes to /dev/console to /var/log/console.log #console.info /var/log/console.log # uncomment this to enable logging of all log messages to /var/log/all.log # touch /var/log/all.log and chmod it to mode 600 before it will work #*.* /var/log/all.log # uncomment this to enable logging to a remote loghost named loghost #*.* @loghost # uncomment these if you're running inn # news.crit /var/log/news/news.crit # news.err /var/log/news/news.err # news.notice /var/log/news/news.notice !ppp
*.* /var/log/ppp.log !*
| |
| |
Энэ мөр нь | |
Энд програмыг хэрхэн заах
талаар жишээг харуулсан байна. Энэ нь програмыг зааж
өгсөн тэр програмын хувьд ажиллах тийм дүрэм бий
болгоно. Энэ тохиолдлын хувьд энэ мөр болон түүний
дараах нь зөвхөн |
Энэ жишээ нь олон түвшин болон дэд системүүд байгааг
харуулж байна. Түвшингүүд нь хамгийн чухлаас бага руу
жагсаагдсан байна: emerg
, alert
,
crit
, err
,
warning
, notice
,
info
ба debug
.
Хэрэгслүүд нь ямар нэг дараалалгүйгээр дараах байна:
auth
, authpriv
,
console
, cron
,
daemon
, ftp
,
kern
, lpr
,
mail
, mark
,
news
, security
,
syslog
, user
,
uucp
ба local0
-с
local7
хүртэл байна. Өөр үйлдлийн
системүүдийн хувьд өөр хэрэгслүүд байж болохыг
анхаараарай.
Эдгээрийг мэдсэний дараа notice
болон түүнээс дээш түвшинд янз бүрийн демонгоос
гарч байгаа бүгдийг /var/log/daemon.log
руу лог
хийх тохиргооны мөрийг /etc/syslog.conf
руу
нэмэх нь хялбар байх болно. Дараахийг нэмэхэд л болно:
daemon.notice /var/log/daemon.log
Түвшингүүд болон хэрэгслүүдийн талаарх дэлгэрэнгүй
мэдээллийг syslog(3) ба syslogd(8)-с үзнэ үү.
syslog.conf
болон түүний синтакс,
илүү нарийн тохиргоо бүхий жишээнүүдийн талаар дэлгэрэнгүйг
syslog.conf(5) ба Хэсэг 30.11, «syslogd
ашиглан алсын хост руу бүртгэх нь»-с үзнэ үү.
Лог файлууд нь хурдан томорч аажмаар нэмэгдэх нь элбэг
байдаг. Энэ нь тийм ч чухал биш мэдээллээр файл болон хатуу
дискийг дүүргэхэд хүргэдэг. Үүнийг арилгахын тулд логийн
удирдлагыг ашигладаг. FreeBSD-д newsyslog(8) ашиглан
лог файлуудыг удирддаг. Энэ програм нь тодорхой давтамжтайгаар
лог файлуудын хэмжээг багасгаж архивлах болон байхгүй болсон
лог файлуудыг үүсгэх, лог файлуудыг зөөх үед дохио өгөх зэрэгт
ашиглагддаг. Лог файлууд нь заавал syslog-с гарсан байх
шаардлагагүй байдаг. newsyslog(8) нь дурын програмаас
гарсан дурын логтой ажиллаж чаддаг. newsyslog
-г
cron(8)-с ихэвчлэн ажиллуулдаг бөгөөд системийн демон
биш гэдгийг санах хэрэгтэй. Анхдагч тохиргоогоор цаг бүр
ажиллахаар тохируулагдсан байдаг.
Ямар арга хэмжээ авахыг мэдэхийн тулд
newsyslog(8) анхдагчаар /etc/newsyslog.conf
тохиргооны файлыг уншдаг. Энэ тохиргооны файл нь
newsyslog(8) удирддаг файл бүрийн
хувьд нэг мөрийг агуулсан байдаг. Мөр бүр нь файлын
эзэн, зөвшөөрлүүд, файлын хэмжээг хэзээ багасгаж арвивлах болон
логийг багасгахад (шахалт гэх мэт) нөлөөлөх нэмэлт флагууд ба
логийг хэзээ багасгахыг хэлэх програмуудыг заадаг.
Жишээ нь энд FreeBSD дээрх анхдагч тохиргоо байна:
# configuration file for newsyslog # $FreeBSD$ # # Entries which do not specify the '/pid_file' field will cause the # syslogd process to be signalled when that log file is rotated. This # action is only appropriate for log files which are written to by the # syslogd process (ie, files listed in /etc/syslog.conf). If there # is no process which needs to be signalled when a given log file is # rotated, then the entry for that file should include the 'N' flag. # # The 'flags' field is one or more of the letters: BCDGJNUXZ or a '-'. # # Note: some sites will want to select more restrictive protections than the # defaults. In particular, it may be desirable to switch many of the 644 # entries to 640 or 600. For example, some sites will consider the # contents of maillog, messages, and lpd-errs to be confidential. In the # future, these defaults may change to more conservative ones. # # logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /var/log/all.log 600 7 * @T00 J /var/log/amd.log 644 7 100 * J /var/log/auth.log 600 7 100 @0101T JC /var/log/console.log 600 5 100 * J /var/log/cron 600 3 100 * JC /var/log/daily.log 640 7 * @T00 JN /var/log/debug.log 600 7 100 * JC /var/log/init.log 644 3 100 * J /var/log/kerberos.log 600 7 100 * J /var/log/lpd-errs 644 7 100 * JC /var/log/maillog 640 7 * @T00 JC /var/log/messages 644 5 100 @0101T JC /var/log/monthly.log 640 12 * $M1D0 JN /var/log/pflog 600 3 100 * JB /var/run/pflogd.pid /var/log/ppp.log root:network 640 3 100 * JC /var/log/security 600 10 100 * JC /var/log/sendmail.st 640 10 * 168 B /var/log/utx.log 644 3 * @01T05 B /var/log/weekly.log 640 5 1 $W6D0 JN /var/log/xferlog 600 7 100 * JC
Мөр бүр багасгах файлын нэрээс эхэлдэг бөгөөд
үүний дараа багасгасан болон шинээр үүссэн файлуудын
эзэн болон бүлэг нэмэлтээр байж болно.
Дараагийн талбар mode
нь файлуудын
горим бөгөөд count
нь багасгасан файл
хэдийг үлдээхийг зааж өгдөг. size
ба
when
талбарууд нь файлыг хэзээ
багасгахыг newsyslog
-д хэлж өгнө.
Лог файлыг size
талбарт зааснаас том болсон
үед эсвэл when
талбарт заасан хугацаа
өнгөрсөн үед багасгадаг. *
нь энэ
талбарыг орхино гэсэн утгатай.
flags
талбар нь багасгасан
файлыг хэрхэн шахах эсвэл байхгүй байгаа лог файлыг
үүсгэх зэрэг заавруудыг newsyslog(8)-д өгдөг.
Хамгийн сүүлийн хоёр талбар нь нэмэлт бөгөөд процессын
PID-file болон
сигналын дугаарыг зааж файлыг багасгах үед тухайн процесс руу
илгээх сигналыг зааж өгдөг. Бүх талбарууд, флагууд болон багасгах
хугацааг хэрхэн зааж өгөх талаарх дэлгэрэнгүй
мэдээллийг newsyslog.conf(5)-с үзнэ үү.
newsyslog
нь cron
-с
ажилладаг бөгөөд cron(8)-ы ажиллах давтамжаас
илүү олон ажиллах боложмгүй гэдгийг санаарай.
Энэ болон бусад баримтуудыг ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ хаягаас татаж авч болно.
FreeBSD-ийн талаар
<questions@FreeBSD.org>
хаягтай холбоо барихаасаа өмнө
баримтыг уншина уу.
Энэ бичиг баримттай холбоотой асуулт байвал
<doc@FreeBSD.org>
хаягаар цахим захидал явуулна уу.
Энэ бичиг баримтын орчуулгатай холбоотой асуулт байвал
<admin@mnbsd.org>
хаягаар цахим захидал явуулна уу.