Syslogd Linux және Unix командалары

Sysklogd жүйесі жүйелік тіркеуге және ядро ​​хабарламаларын ұстауға қолдау көрсететін екі жүйелік утилитаны ұсынады. Интернеттің және unix доменінің сокеттерінің қолдауы бұл утилиталық пакетті жергілікті және қашықтан тіркеуге қолдау көрсетуге мүмкіндік береді.

Жүйелік тіркеу Syslogd нұсқасы (8), BSD қорларынан алынған. Kernel журналдарын қолдауды кластерді (8) утилитасы қамтамасыз етеді, ол ядроға кіруді дербес түрде немесе syslogd клиенті ретінде жүргізуге мүмкіндік береді.

Syslogd көптеген заманауи бағдарламаларды қолданатын журнал түрлерін ұсынады. Әрбір жазылған хабарламада кемінде уақыт пен хост атауы бар, әдетте бағдарлама атауы өрісі де бар, бірақ бұл журналға жазу бағдарламасының сенімді екеніне байланысты.

Syslogd көздері қатты өзгертілгенімен, бірнеше ескертпелер бар. Ең алдымен, syslogd әдепкі, стандартты BSD әрекеттеріне сүйенуіне жүйелі түрде әрекет жасалды. Екінші маңызды тұжырымдама мынада, бұл осы нұсқасы syslogd мөлдір өзара нұсқасы syslog, стандартты кітапханаларда табылған. Егер стандартты ортақ кітапханаларға байланыстырылған бинарлық дұрыс жұмыс істемесе, біз ауытқушылықтың үлгісін көргіміз келеді.

Негізгі теңшелім файл /etc/syslog.conf немесе -f параметрімен бірге берілген балама файл іске қосылған кезде оқылады. Хэш белгісінен (`` # '') және бос жолдан басталатын кез келген жолдар еленбейді. Егер бүкіл қатені талдау барысында қате орын алса, елемейді.

Синопсис

syslogd [ -a socket ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m аралық ] [ -n ] [ -p socket ] [ -r ] [ -s домен тізімі ] [ - v ] [ -x ]

Опциялар

- розетка

Бұл дәлелді қолданып, сол syslogd-тың қосымша сокеттерін тыңдауға болады. Егер сіз кейбір бағдарламаларды chroot () ортасында іске қосатын болсаңыз, бұл қажет. 19 қосымша розетканы пайдалануға болады. Егер сіздің ортаңызға көбірек қажет болса, MAXFUNIX символын syslogd.c бастапқы файлында жоғарылатуыңыз керек. Chroot () демонсының мысалы OpenBSD-дің адамдарымен сипатталады: http://www.psionic.com/papers/dns.html.

-d

Отладка режимінде жұмыс істейді. Бұл пайдалана отырып, демон шанышқымен (2) фондық режимде жұмыс істей алмайды, бірақ алдыңғы қатарда болуына қарсы және қазіргі кездегі көптеген қате туралы ақпаратты жазады. Қосымша ақпарат алу үшін DEBUGGING бөлімін қараңыз.

-f конфигурациялық файл

Әдепкі бойынша /etc/syslog.conf орнына баламалы конфигурация файлын көрсетіңіз.

-h

Әдепкі бойынша, syslogd қашықтағы хосттардан алынған хабарламаларды жібермейді. Бұл коммутаторды командалық жолда көрсете отырып, журналда көрсетілген қашықтағы хаттарды жіберілген хаттарды жіберу үшін жібереді.

-l hostlist

Тек қана хост атымен fqdn емес, тіркелуі керек хост атауын көрсетіңіз. Көптеген хосттар қос нүктемен (``: `') бөлгіш арқылы көрсетілуі мүмкін.

аралығы

Syslogd уақыт белгісін үнемі жазады . Екі - MARK сызықтары арасындағы әдепкі интервал - 20 минут. Бұл параметрді өзгертуге болады. Аралықты нөлге орнатуды толығымен өшіреді.

Автоматты түрде өңделуден аулақ болыңыз. Әсіресе, егер syslogd іске қосылса және init (8) арқылы басқарылатын болса, бұл қажет.

-p розеткасы

/ Dev / log орнына балама unix доменінің ұяшығын көрсетуге болады.

Бұл опция объектіге желідегі сымсыз желілік розетка арқылы хабарлама алуға мүмкіндік береді (қараңыз (5)). Әдепкі бойынша, желіден ешқандай хабар алмау керек.

Бұл опция sysklogd бумасының 1.3 нұсқасында келтірілген. Назар аударыңыз, әдепкі мінез-құлық ескі нұсқалардың қалай әрекет ететініне қарама-қайшы екенін ескеріңіз, сондықтан оны қосу қажет болуы мүмкін.

- домендер тізімі

Тіркеуден бұрын өшіру керек домен атауын көрсетіңіз. Бірнеше домен қос нүктемен (``: `') бөлгіш арқылы көрсетілуі мүмкін. Ешқандай ішкі домендерді көрсетпеуі мүмкін, бірақ тек толық домендер ғана болуы мүмкін. Мысалы, -s north.de көрсетілсе және хосттың тіркеуі satu.infodrom.north.de доменін жоймаса, ешбір домен қиылмайды, мысалы, -s north.de:infodrom.north.de сияқты екі доменді көрсету керек .

-v

Басып шығару нұсқасы және шығу.

-x

Қашықтағы хабарларды қабылдаған кезде аттарды іздеуді өшіру. Бұл атау сервері syslog демонын іске қосатын бір машинада жұмыс істеп тұрған кезде, құлдырауды болдырмайды.

Сигналдар

Syslogd сигналдар жиынтығына жауап береді. Төмендегілерді пайдалана отырып, syslogd- ге сигнал жібере аласыз:

kill -SIGNAL` cat / var / run / syslogd.pid`

Сүйек

Бұл syslogd қайтадан баптандыруды жүзеге асыруға мүмкіндік береді. Барлық ашық файлдар жабық, конфигурация файлы (әдепкі /etc/syslog.conf ) қайта қарап, syslog (3) қондырмасы қайтадан іске қосылады.

SIGTERM

Syslogd өледі.

SIGINT , SIGQUIT

Егер қате туралы хабарлау қосылған болса, олар еленбейді, әйтпесе syslogd өледі.

SIGUSR1

Отладканы қосу / өшіру. Бұл опция тек syslogd -d debug опциясы арқылы іске қосылған болса ғана пайдаланылуы мүмкін.

SIGCHLD

Кейбіреулер дүниеге келген жағдайда, қабырғаға салынған хабарларға байланысты бала күтіңіз.

Конфигурациялық файл синтаксисінің айырмашылықтары

Syslogd түпнұсқа BSD көздеріне қарағанда конфигурация файлына сәл өзгеше синтаксисті қолданады. Бастапқы басымдықтағы және жоғарыдағы барлық хабарлар журнал файлына жіберілді.

Мысалы, келесі жолда демонфондық құралдарды пайдалану арқылы барлық шығыс шығысын тудырды (Debug - ең төменгі басымдылық, сондықтан әр жоғары болады) / usr / adm / daemons-ге кіру үшін :

# Syslog.conf үлгісін daemon.debug / usr / adm / daemons үлгісі

Жаңа схема бойынша бұл мінез-құлық бір қалыпта қалады. Айырмашылық төрт жаңа спецификатордың: жұлдызшаның ( * ) таңбалық кодын, теңдеу белгісін ( = ), леп белгісін ( ! ) Және минус белгісін ( - ) қосу болып табылады.

* Көрсетілген қондырғыға арналған барлық хабарлар тағайындалған жерге бағытталуы керек екенін көрсетеді. Назар аударыңыз, бұл мінез-құлықтың бұзылуының басымдық деңгейін көрсете отырып, нашарлайды. Пайдаланушылар жұлдызша белгілерінің интуитивті екенін көрсетті.

= Қойылмалы таңба көрсетілген басымдық сыныпқа кіруді шектеу үшін пайдаланылады. Бұл, мысалы, белгілі бір журналға жазу көзіне тек қана қате туралы хабарларды бағыттауға мүмкіндік береді.

Мысалы, syslog.conf ішіндегі келесі жол барлық қайнар көздерден / usr / adm / debug файлына отладтау хабарларын жібереді.

# Syslog.conf үлгісі *. = Debug / usr / adm / debug

Бұл ! көрсетілген басымдықтарды тіркеуді болдырмау үшін пайдаланылады. Бұл басымдықтарды көрсетудің барлық мүмкіндіктеріне әсер етеді.

Мысалы, келесі жолдарда / usr / adm / mail файлына басымдықты ақпараты бар басқа, пошта мекенжайының барлық хабарлары жазылады. News.info (оның ішінде) news.crit (қоспағанда) барлық хабарлары / usr / adm / news файлына жазылады.

# Syslog.conf үлгісі. *; Mail! = Info / usr / adm / mail жаңалықтар.info; жаңалықтар! Crit / usr / adm / news

Сіз оны интуитивті ерекшелік ерекшелігі ретінде пайдалана аласыз. Жоғарыда айтылған түсініктеме жай инверттелген. Мұны істеуге болады

mail.none

немесе

пошта!!

немесе

пошта жәшігі

почта жөнелтілімімен келген әрбір хабарды өткізіп жіберу. Онымен ойнауға көп орын бар. :-)

Файл - файлды синхрондаудан бас тартқыңыз келсе, файл атауын префикстеу үшін ғана қолдануға болады.

Бұл таза BSD әрекеті үшін пайдаланылған адамдар үшін кейбір акклиматизацияны талап етуі мүмкін, бірақ тестерлер бұл синтаксистің BSD әрекеттеріне қарағанда біршама икемді екенін көрсетті. Бұл өзгерістер стандартты syslog.conf (5) файлдарына әсер етпейтінін ескеріңіз. Жақсартылған мінез-құлықты алу үшін теңшелім файлдарын арнайы өзгертуіңіз керек.

Қашықтан тіркеуге қолдау көрсету

Бұл модификациялар желілік қолдауды syslogd қондырғысына ұсынады. Желі қолдауы хабарларды syslogd іске қосатын бір түйіннен syslogd іске қосылған басқа түйінге жіберілуі мүмкін дегенді білдіреді, онда олар шынымен диск файлына жазылады.

Бұны қосу үшін пәрмен жолында -r параметрін көрсету керек. Әдепкі бойынша, syslogd желіні тыңдамайды.

Стратегияда syslogd жергілікті түрде жасалатын журналдық хабарлар үшін unix доменінің ұяшығын тыңдау болып табылады. Бұл мінез-құлық syslogd бағдарламасының стандартты C кітапханасында табылған syslog-пен жұмыс істеуіне мүмкіндік береді. Сонымен қатар syslogd басқа хосттардан жіберілген хабарлар үшін стандартты syslog порты арқылы тыңдайды. Бұл жұмыстың дұрыс жұмыс істеуі үшін (5) файлдар (әдетте / және т.б. табылған) келесі жазбаны қамтуы тиіс:

syslog 514 / udp

Егер бұл жазба жоқ болса, syslogd қашықтағы хабарларды қабылдамайды да, жібере алмайды, себебі UDP порты ашылмайды. Оның орнына, syslogd бірден өледі, қате туралы хабар шығады.

Хабарларды басқа хостқа қайта жіберу үшін syslog.conf файлындағы қалыпты файлдық жолды хабарлар жіберілетін хосттың аты бар @ дегенмен алдын ала ауыстырады.

Мысалы, ALL хабарламаларын қашықтағы хостқа келесі syslog.conf енгізу арқылы жіберу:

# Syslogd конфигурациялық файлын # хабарға қашықтағы хостқа жіберіңіз. *. * @hostname

Барлық ядро хабарларын қашықтағы хостқа жіберу үшін конфигурация файлы келесідей:

# Барлық # ядролы хабарларды қашықтағы хостқа жіберетін конфигурация файлы. * @hostname

Егер қашықтағы хост аты іске қосылса, оны шешуге болмайды, себебі аты-сервері қол жетімді болмауы мүмкін (ол syslogd кейін басталуы мүмкін) сізде алаңдамаудың қажеті жоқ. Syslogd атауын он рет шешіп, содан кейін шағымданады. Бұдан аулақ болудың тағы бір мүмкіндігі - hostname атауын / etc / hosts ішінде орналастыру .

Егер сіз қашықтағы хосттан бір хостқа (немесе оны біріншіге жіберетін үшінші хостқа күрделірек жіберген хабарламаларды және т.б.) жіберген болсаңыз, қалыпты syslogd-дің көмегімен сіз syslog-циклдарын аласыз. Менің доменімізде (Infodrom Oldenburg) біз кездейсоқ бір және бірдей хабарламамен толтырылған біздің дискілерімізді алды. :-(

Бұдан кейін қашықтағы хосттан алынған хабарлар басқа (немесе сол) қашықтағы хостқа жіберілмейді. Егер бұл мағынасы болмаса, сценарийлер болса, мені (Joey) сызықшаны түсіріңіз.

Егер қашықтағы хост хост сияқты доменде орналасса, syslogd іске қосылады, тек қарапайым хост аты барлық fqdn орнына жазылады.

Жергілікті желіде сіз бір орталықта сақталатын барлық маңызды ақпаратты алу үшін орталық журнал серверін бере аласыз. Егер желі түрлі домендерден тұрса, сіз қарапайым хосттардың орнына толыққанды аттарды тіркеуге шағымданудың қажеті жоқ. Сіз осы сервердің жол-доменінің мүмкіндіктерін пайдалануыңыз мүмкін. Syslogd- ге сервердің орналасқан жерінен басқа бірнеше доменді өшіруін және қарапайым хост атауын ғана тіркеуге болады.

-l опциясын қолданып, жергілікті хосттар ретінде жергілікті компьютерлерді анықтау мүмкіндігі бар. Бұл сондай-ақ, fqdns емес, қарапайым хост аттарын ғана тіркеуге әкеледі.

Қашықтағы хосттарға хабарларды жіберу немесе олардан хабар алу үшін пайдаланылатын UDP ұясы қажет болғанда ғана ашылады. 1.3-тен 23-ке дейінгі шығарылымдарда ол әр уақытта ашылды, бірақ оқу немесе экспедиция үшін ашылмады.

Аталған құбырларға арналған шығыс (FIFO)

Syslogd-нің осы нұсқасы шығыс аталатын құбырларға (fifos) шығуды қолдайды. Файлдың атына pipo символын (`` | | ') алдын ала енгізіп, логос үшін тағайындалған пункт ретінде пайдаланылуы мүмкін. Бұл түзету үшін ыңғайлы. Syslogd іске қосылмай тұрып, fifo mkfifo командасымен жасалуы керек екенін ескеріңіз.

Келесі конфигурация файлының жолдары ядродан fifo-ге дейінгі хабарламаларды отладтайды:

# # Ядроды отладтауға арналған # конфигурация конфигурациясы # usr / adm / debug дегеніміз - # аталған құбыр. kern = debug | / usr / adm / debug

Орнату туралы алаңдаушылық

Syslogd-нің осы нұсқасын орнату кезінде бір маңызды мәселе бар. Syslogd-дың бұл нұсқасы syslog функциясының хабарламаларды дұрыс пішімдеуіне байланысты. Ортақ кітапханаларда жүйелік функцияның жұмыс істеуі libc.so.4 аймағының бірінде өзгерді. [2-4] .n. Арнайы өзгеріс хабарламаны / dev / log ұяшығына жібермес бұрын нөлдік тоқтату болды. Syslogd-дың осы нұсқасының дұрыс жұмыс істеуі хабарламаның нөлдік тоқтатылуына байланысты.

Жүйеде ескі статистикалық байланыстырылған екілік файлдар пайдаланылып жатса, бұл мәселе әдетте өзін көрсетеді. Syslog функциясының ескі нұсқаларын пайдаланатын бинарлы бос жолдарды жазуға әкеледі, содан кейін жойылған хабардағы бірінші таңбадан тұратын хабар шығады. Ортақ кітапханалардың жаңа нұсқаларына осы екілік файлдарды шығару бұл мәселені шешеді.

Syslogd (8) және klogd (8) екеуі де init (8) іске қосылуы мүмкін немесе rc *. Егер ол init-ден басталса, опцияны -n белгіленуі керек, әйтпесе, syslog-тың тоны басталды. Себебі init (8) процестің идентификаторына байланысты.

Қауіпсіздік қатерлері

Syslogd демонын қызметтік шабуылдан бас тарту үшін арналар ретінде пайдалану мүмкіндігі бар. Осы әлеуетке назар аударғаным үшін Джон Моррисонға (jmorriso@rflab.ee.ubc.ca) рақмет. Қате бағдарлама (mer) syslogd демонын syslog хабарламаларымен өте оңай тастаса, файлдық жүйеде қалған бос орынды тұтынатын журнал файлдары пайда болады. Inet доменінің ұяшықтарын тіркеуді белсендіру, әрине, жергілікті компьютердегі бағдарламалардан немесе жеке тұлғалардан тыс тәуекелдерге жол ашады.

Машинаны қорғаудың бірқатар әдістері бар:

  1. 514 / UDP ұяшығына хосттар немесе желілер қол жеткізуді шектеу үшін ядро ​​брандмауэрін енгізу.
  2. Тіркеуді оқшауланған немесе түбірлік емес файлдық жүйеге бағыттауға болады, ол толтырылған болса, құрылғыны бұзбайды.
  3. Ext2 файлдық жүйені файлдық жүйенің белгілі бір пайызын тек түбірмен пайдалануға шектеу үшін қолдануға болады. Естеріңізге сала кетейік, бұл syslogd түбірлік емес процесс ретінде іске қосылуын талап етеді. Сонымен қатар, Syslogd 514 / UDP ұяшығына байлана алмайтындықтан, бұл қашықтан кіруді болдырмауға мүмкіндік береді.
  4. Inet доменінің сокеттерін өшіру жергілікті құрылғыға қауіп төндіреді.
  5. 4-қадамды қолданыңыз және проблема сақталса және қате бағдарламаға / демеушіге қайталанбайтын болса, соратын штангасы ұзындығы 3,5 фут (шамамен 1 метр) ұзындыққа ие болады және пайдаланушымен сұхбаттасыңыз. Sucker rod def. --- 3/4, 7/8 немесе 1in. қатаңдалған болат шыбық, әрбір аяғында жіптерден жасалған. Батыс Солтүстік Дакотадағы мұнай өнеркәсібінде және басқа да жерлерде мұнай скважиналарынан «сорғыш» майды соруға арналған. Екінші мақсат - ірі қара малдарын азық-түлікпен қамтамасыз ету, сондай-ақ кездейсоқ жойғыш немесе соғысушы тұлғамен айналысуға арналған.

Отладка

Отладка параметрі -d параметрі арқылы қосылса, syslogd оны stdout-да жасайтын нәрселердің көпшілігін жазады. Конфигурация файлы қайталанып, қайта талданғанда, ішкі деректер құрылымына сәйкес келетін кестені көресіз. Бұл кесте төрт өрістен тұрады:

нөмірі

Бұл өріс нөлден басталатын сериялық нөмірді қамтиды. Бұл сан ішкі деректер құрылымында позицияны білдіреді (яғни массив). Бір нөмір қалдырылса, /etc/syslog.conf ішіндегі сәйкес жолда қате болуы мүмкін.

үлгі

Бұл өріс күрделі және дәл ішкі құрылымды білдіреді. Әрбір бағана объектіге арналған (сілтеме syslog (3)). Көріп отырғаныңыздай, бұрынғы пайдалану үшін тегін қалдырылған кейбір нысандар бар, тек сол жақта ғана пайдаланылады. Бағандағы әрбір өріс басымдықтарды білдіреді ( syslog (3)).

әрекет

Бұл өріс үлгіге сәйкес келетін хабар алынған кезде орын алатын нақты әрекетті сипаттайды. Барлық ықтимал әрекеттер үшін syslog.conf (5) manpage-ті қараңыз.

дәлелдер

Бұл өріс соңғы өрістегі әрекеттерге қосымша аргументтерді көрсетеді. Файлды тіркеу үшін бұл логфайлға арналған файл атауы; пайдаланушыны тіркеу үшін бұл пайдаланушылар тізімі; қашықтан кіруге арналған бұл машина кіру үшін хост атауы; консольдық тіркеу үшін бұл - қолданылған консоль; tty-logging үшін көрсетілген tty; қабырғада қосымша дәлел жоқ.

Сондай-ақ, қараңыз

logger (1), syslog (2), (5)

Бірлескен жұмысшылар

Syslogd BSD дереккөздерінен алынған, Greg Wettstein (greg@wind.enjellic.com) Linux портын орындаған, Martin Schulze (joey@linux.de) кейбір қателерді тіркеді және бірнеше жаңа мүмкіндіктерді қосады. Klogd бастапқыда Steve Lord (lord@cray.com) жазған, Грег Веттстайн үлкен жетілдіру жасады.

Д-р Грег Веттстайн
Энджеллик жүйелерін дамыту

Онкологиялық зерттеу бөлімі есептеу техникасы
Роджер Марис орталығы
Фарго, Н.Д.
greg@wind.enjellic.com

Стивен Твидси
Информатика кафедрасы
Эдинбург университеті, Шотландия
sct@dcs.ed.ac.uk

Джуха Виртанен
jiivee@hut.fi

Шейн Олдертон
shane@ion.apana.org.au

Мартин Шульце
Infodrom Oldenburg
joey@linux.de

Маңызды: Жеке компьютерде пәрменді қалай пайдалану керектігін көру үшін man ( % man ) пәрменін пайдаланыңыз.

Қатысты мақалалар