Мазмұны:
- 1 -қадам: Systemd ұсынған әдістерді қолдану
- 2 -қадам: Service Checker сценарийлерін конфигурациялау және пайдалану
- 3 -қадам: Қорытынды ойлар
Бейне: Linux серверлері үшін қызмет мониторының сценарийі: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Тұрақты, үнемі жұмыс істейтін жүйеге ие болу, тіпті егер сіз Linux -ты қолдансаңыз да, қиын мәселе болуы мүмкін.
Заманауи бағдарламалық жасақтама пакеттерінің күрделілігіне және кодтаудың нашарлығына байланысты, кейбір процестер мезгіл -мезгіл бұзылуы мүмкін. Егер сіз серверді басқарсаңыз және кейбір адамдар осы қызметтерге сенсе, бұл жаман нәрсе болуы мүмкін.
1 -қадам: Systemd ұсынған әдістерді қолдану
Өздеріңіз білетіндей, қазіргі заманғы Linux операциялық жүйелерінің көпшілігі systemd қолданады.
Егер сіз systemd -мен таныс болмасаңыз, бұл википедияға сәйкес:
«… Linux дистрибутивінде UNIX System V немесе Berkeley Software Distribution (BSD) инициативті жүйелерінің орнына пайдаланушы кеңістігін жүктеу және кейіннен барлық процестерді басқару үшін қолданылатын инициативті жүйе.…»
Көптеген адамдар әлі де ескі инициативті жүйені осы күрделі процесті басқару жүйесімен ауыстырудың не қажет екендігі туралы таласады, бірақ келесі сілтемеде жақсы түсініктеме табылуы мүмкін:
www.tecmint.com/systemd-replaces-init-in-l…
Ең маңызды жақсарту - бұл жүйенің жүйелі түрде іске қосылуының орнына, жүктеу кезінде бір мезгілде және параллель өңделуіне байланысты жүйені тезірек шығаруға қабілетті болуы.
Systemd тереңдігіне енбестен, systemd процесін қосу үшін сізге қызмет файлын жасау қажет. Мұндай файлдың синтаксисі өте қарапайымнан өте күрделіге дейін өзгеруі мүмкін, біз егжей -тегжейлі айтпаймыз. Негізгі.service файлына ие болу үшін келесі жазбаларды қолдану жеткілікті:
[Unit] Description = applicationDocumentation сипаттамасы = https://wikipedia.org/ After = local-fs.target network.target [Service] Type = simpleExecStart =/usr/sbin/applicationExecReload =/usr/sbin/application reloadExecStop =/ usr/sbin/application stopRestart = әрқашан [Орнату] WantedBy = multi-user.target
Оларды application.service файлына/lib/systemd/system қалтасына орналастырыңыз.
Бұл опциялардың әрқайсысы келесі сілтемеде түсіндіріледі:
access.redhat.com/documentation/kz-US/Red_…
Қолданбаны бастау үшін келесі пәрменді шығарыңыз:
sudo systemctl application.service бастау
Ескерту:.service кеңейтімін алып тастауға болады.
Қолданбаны тоқтату үшін:
sudo systemctl stop application.service
Егер конфигурация файлы өзгертілсе және параметрлерді қайта жүктегіңіз келсе:
sudo systemctl reload application.service
Қолданбаны қайта іске қосу үшін:
sudo systemctl application.service қайта іске қосыңыз
Жүктеу кезінде автоматты түрде қосуды қосу үшін:
sudo systemctl application.service қызметін қосады
Егер бұл қосылған болса, онда systemd процесс менеджері жүйелік файлмен қамтамасыз етілген параметрлерге негізделген қосымшаны іске қосуға тырысады.
Оны өшіру үшін жоғарыдағыдай пәрменді қолданыңыз, бірақ 'ажырату' параметрімен.
Егер сіз Restart = әрқашан қызметтік файлға қойсаңыз, онда systemd процесті бақылайды, ал егер ол процестер тізімінен табылмаса, оны автоматты түрде қайта іске қосуға тырысады.
Егер сіз орналастырсаңыз
RestartSec = 30
қайта жүктеу директивасынан кейін, ол процесті қайта бастау алдында 30 секунд күтеді. Бұл пайдалы болуы мүмкін, себебі істен шыққан қызметті/қосымшаны үздіксіз қайта қосу әрекеті жүйеде жоғары сұранысты тудыруы мүмкін (қате журналдарын жазу және т.
Көріп отырғаныңыздай, systemd процестерді бақылаудың кейбір құралдарын ұсынады. Алайда, кейбір жағдайларда бұл жеткіліксіз болуы мүмкін. Егер процесс шықпаса ше (ол әлі де процестер тізімінде болады), бірақ ол жауап беруді тоқтатады. Бұл жағдайда процестің шынымен іске қосылғанына көз жеткізу үшін сізге қосымша тексерулер қажет болуы мүмкін.
Міне, осы нұсқаулықтан алынған сценарийлер пайдалы болады.
2 -қадам: Service Checker сценарийлерін конфигурациялау және пайдалану
Егер сізге іске қосылған процестерді/қызметтерді көбірек бақылау қажет болса, бұл сценарийлер пайдалы болады.
Код сәл үлкен болғандықтан, ол github -қа жүктелген және оны келесі репозиторийден табуға болады:
github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh
Бүкіл пакеттің «жүрегі» - бұл
checkService.sh
Оны пайдаланбас бұрын, қызмет қалтасының толық жолын ауыстыру керек. Мұны сценарийдің басында табуға болады.
Сценарий бірнеше процестерді бақылай алады және төменде сипатталғандай қосымша тапсырманы орындай алады:
Ол.serv немесе.check кеңейтімдері бар /services ішкі қалтасынан әрбір файлды өтеді және 'application' деп аталатын белсенді процестің бар -жоғын тексереді.
Қолданба үшін «.check» файлы болмаса, тек application.serv файлы:
Егер процесс белсенді болса, ол процесті белсенді деп есептейді
Егер процесс белсенді болмаса, ол келесі пәрменді шығару арқылы қызметті қайта бастайды:
systemctl қосымшасын қайта іске қосыңыз
егер.serv файлы бос болса!
Егер.serv файлы бос болмаса және орындалатын құқықтарға ие болса, ол оны қарапайым BASH сценарийі ретінде іске қосуға тырысады.
Бұл қызметті қайта қосудан басқа қосымша нәрсе қажет болса пайдалы.
Мысалы, жоғарыдағы реподан spamd.serv файлында, егер спам қызметі өшірілген болса, оның орнына спамассассин қызметін қайта бастау қажет, ол да спамды қайта қосады. Тек спамды қайта қосу жеткіліксіз болар еді.
Мұндай сервистік файлдың мазмұнын қажеттілікке қарай өңдеуге болады.
Басқа мысал - pcscd.serv файлы. Бұл жағдайда басқа да бірнеше процестер қайта басталды/өлтірілді.
Егер тексеру файлы болса, процесс іске қосылғанын тексергеннен кейін, ол қосымша тексерулерді орындау үшін осы сценарий файлын іске қосады.
Мысалы, осцам қызметі үшін біз оның веб -интерфейсіне қосылуға тырысатын тексеру файлын құрдық, оның сәтті болғанын білу үшін. Олай болмаса, процесс белсенді болғанына қарамастан, қызмет жауап бермейді және оны қайта бастау қажет. Қызметті қайта жүктеуді.check файлының өзі орындауы/шақыруы керек.
Тағы бір мысал DLNA медиатомб қызметі болады.
Бұл DLNA клиенттеріне бейне/аудио мазмұнын беретін және желіде өзін тарататын шағын сервер. Кейде қызмет тоқтап қалады және ол енді ашылмайды, бірақ процесс әлі де белсенді болады. Қызметтің табуға болатынын тексеру үшін gssdp-Discover деп аталатын CLI утилитасы қолданылды. DLNA серверін тексеретін барлық код mediatomb.check сценарийіне орналастырылған.
Бұл.serv және.check файлдарын қалай қолдануға болатыны туралы бірнеше мысалдар.
Жаңа қызметті бақылау үшін сіз.serv құрып, қажет болған жағдайда тексеру файлын жасап, олардың ішіне сәйкес сценарийді жазуыңыз керек.
Егер процестің болуын тексеру жеткілікті болса, бос.serv файлы жеткілікті болады. Егер қосымша тексерулер орындалуы қажет болса, онда.check файлын құру керек және жұмысты орындау үшін шағын сценарий жазу керек.
Әрине,.sh сценарийі мезгіл -мезгіл орындалуы керек, сондықтан ол үшін cron тапсырмасы да жасалуы керек:
#5 минут сайын іске қосылған қызметтерді тексеріңіз */5 * * * * /var/bin/ServiceCheck/checkService.sh>/dev/null
3 -қадам: Қорытынды ойлар
Сізге бұл пакет пайдалы болады деп үміттенемін, өйткені бұл Linux процестерін бақылауға мүмкіндік береді және сіздің қызметтеріңіздің тоқтап қалуын азайтады.
Егер сіз жаңаларын жасасаңыз, github -ға қосымша сценарийлерді жүктей аласыз. Маған хабарлаңыз, мен сізді салымшы ретінде қосамын.
Ұсынылған:
Батареяның ұзақ қызмет ету мерзімі үшін температура сенсорын қалай бұзуға болады: 4 қадам
Батареяның ұзақ қызмет ету мерзімі үшін температура сенсорын қалай бұзуға болады: Inkbird IBS-TH1-бірнеше сағат немесе күн ішінде температура мен ылғалдылықты тіркеуге арналған тамаша құрылғы. Оны әр секунд сайын 10 минутқа дейін тіркеуге болады және Bluetooth LE арқылы деректерді Android немесе iOS смартфонына хабарлайды. Қолданба
Сіздің жолыңызға қызмет ету үшін серверлерді бұзу: 9 қадам
Серверлерді бұзу - бұл робототехникадағы ең пайдалы қозғалтқыштар. Олар үлкен крутящий, шағын өлшемді, біріктірілген H-көпір, PWM басқару және т.б. бар. Оларды RC жүйелерімен, Arduino және басқа да көптеген әдістермен қолдануға болады. Бірақ кейде оларды пайдалану өте қиын болуы мүмкін
Электроника үшін батареяның қызмет ету мерзімін ұзарту: 8 қадам
Электроникаға арналған батареяның қызмет ету мерзімін ұзартыңыз: Бұл нұсқаулықта (жақсы нұсқаулық емес) мен сізге электроникаға арналған батареялардың бірнеше түрінің қызмет ету мерзімін ұзартуға арналған бірнеше кеңестер мен амалдарды көрсетемін. электроника үшін өмір
Custom XP - теңшеу үшін Visual Basic сценарийі!: 6 қадам
Custom XP - Visual Basic сценарийін теңшеу!: XP көрінісін өзгертудің қарапайым әдісі - $ 1000 долларлық GUI* бағдарламасын пайдалану, солай ма? ҚАТЕ! Сіз бағдарламаларға ақша жұмсай аласыз, бірақ егер сіз мұны тегін жасай алсаңыз, неге төлейсіз? Бұл нұсқаулықта мен мұны қалай оңай жасау керектігін көрсетемін, ол 0 доллар тұрады және
WoW жеке серверлері: 3 қадам
WoW жеке серверлері: Бұл сізге World of Warcraft -ты төлемей қалай ойнау керектігін көрсетеді !!! Сізге бірден 80 -деңгей, ақысыз элементтер және т.б. беретін серверлер бар. Егер сіз шынымен ойнағыңыз келсе, жай серверлер де бар. Ескерту: сізге нақты ойын үшін ақы төлеу қажет болуы мүмкін