Мазмұны:

Linux серверлері үшін қызмет мониторының сценарийі: 4 қадам
Linux серверлері үшін қызмет мониторының сценарийі: 4 қадам

Бейне: Linux серверлері үшін қызмет мониторының сценарийі: 4 қадам

Бейне: Linux серверлері үшін қызмет мониторының сценарийі: 4 қадам
Бейне: Сервер. Серверлердің түрлері. 2024, Қараша
Anonim
Linux серверлері үшін қызмет мониторының сценарийі
Linux серверлері үшін қызмет мониторының сценарийі

Тұрақты, үнемі жұмыс істейтін жүйеге ие болу, тіпті егер сіз 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 -ға қосымша сценарийлерді жүктей аласыз. Маған хабарлаңыз, мен сізді салымшы ретінде қосамын.

Ұсынылған: