Talaan ng mga Nilalaman:

Script ng Serbisyo ng Serbisyo para sa Mga Servers ng Linux: 4 na Hakbang
Script ng Serbisyo ng Serbisyo para sa Mga Servers ng Linux: 4 na Hakbang

Video: Script ng Serbisyo ng Serbisyo para sa Mga Servers ng Linux: 4 na Hakbang

Video: Script ng Serbisyo ng Serbisyo para sa Mga Servers ng Linux: 4 na Hakbang
Video: Unlocking the Secrets of DNS: A Guide to Root Servers 2024, Nobyembre
Anonim
Serbisyo Monitor Script para sa Mga Servers ng Linux
Serbisyo Monitor Script para sa Mga Servers ng Linux

Ang pagkakaroon ng isang matatag, palaging tumatakbo na system, kahit na gumagamit ka ng Linux ay maaaring maging isang mahirap na gawain.

Dahil sa pagiging kumplikado ng mga modernong mga pakete ng software at hindi magandang pag-coding, hindi maiwasang ang ilang mga proseso ay maaaring mag-crash paminsan-minsan. Maaari itong maging isang masamang bagay kung nagpapatakbo ka ng isang server at ang ilang mga tao ay umaasa sa mga serbisyong ito.

Hakbang 1: Paggamit ng Mga Paraan na Ibinigay ng Systemd

Tulad ng alam mo na, ang karamihan sa mga modernong operating system ng Linux ay gumagamit ng systemd.

Kung hindi ka pamilyar sa systemd, ito ay, ayon sa wikipedia:

"… Isang init system na ginagamit sa mga pamamahagi ng Linux upang i-bootstrap ang puwang ng gumagamit at pamahalaan ang lahat ng mga proseso pagkatapos, sa halip na ang UNIX System V o Berkeley Software Distribution (BSD) init system.…"

Maraming tao ang nagtatalo pa rin kung bakit kinakailangan na palitan ang magandang lumang init system ng mas kumplikadong sistema ng pamamahala ng proseso, ngunit sa sumusunod na link maaari kang makahanap ng magandang paliwanag:

www.tecmint.com/systemd-replaces-init-in-l…

Ang pinakamahalagang pagpapabuti ay ang kakayahang ilabas ang system nang mas mabilis kaysa sa init, dahil sa kasabay at parallel na pagproseso sa boot sa halip na ang sunud-sunod na diskarte ng init

Nang walang pagpunta sa kailaliman ng systemd, upang magdagdag ng isang proseso sa systemd, dapat kang lumikha ng isang file ng serbisyo. Ang syntax ng naturang isang file ay maaaring saklaw mula sa napakasimpla hanggang sa ganap na kumplikado, at hindi namin bibigyan ang mga detalye. Upang magkaroon ng pangunahing.service file, sapat na upang magamit ang mga sumusunod na entry:

[Yunit] Paglalarawan = Paglalarawan ng applicationDocumentation = https://wikipedia.org/ After = local-fs.target network.target [Serbisyo] Uri = simpleExecStart = / usr / sbin / applicationExecReload = / usr / sbin / application reloadExecStop = / usr / sbin / application stopRestart = laging [I-install] WantedBy = multi-user.target

Ilagay ang mga ito sa application.service file sa / lib / systemd / system folder.

Ang ginagawa ng bawat isa sa mga pagpipiliang ito ay ipinaliwanag sa sumusunod na link:

access.redhat.com/documentation/en-US/Red_…

Sa oder upang simulan ang iyong aplikasyon, ilabas ang sumusunod na utos:

sudo systemctl simulan ang application.service

Tandaan: maaaring matanggal ang extension ng serbisyo.

Upang ihinto ang application:

sudo systemctl stop application.service

Kung ang file ng pagsasaayos ay binago at nais mong i-reload ang mga setting:

sudo systemctl reload application.service

Upang muling simulan ang application:

sudo systemctl restart application.service

Upang paganahin ang awtomatikong nagsisimula sa boot:

sudo systemctl paganahin ang application.service

Kung pinagana ito, susubukan ng manager ng systemd na proseso na simulan ang application batay sa mga setting na ibinigay ng system file.

Upang huwag paganahin ito, gamitin ang parehong utos tulad ng nasa itaas, ngunit may parameter na 'huwag paganahin'.

Kung inilagay mo ang Restart = laging nasa file ng serbisyo, susubaybayan ng systemd ang proseso at kung hindi ito matagpuan sa listahan ng proseso, susubukan nitong awtomatikong i-restart ito.

Kung ilalagay mo

RestartSec = 30

pagkatapos ng direktang pag-restart, maghihintay ito ng 30 segundo bago subukang i-restart ang proseso. Maaari itong maging kapaki-pakinabang, bilang isang tuluy-tuloy na pagtatangka muli ng isang pagkabigo na serbisyo / aplikasyon ay maaaring humantong sa mataas na demand sa system (pagsulat ng mga tala ng error, atbp)

Tulad ng nakikita mo, ang systemd ay nagbibigay na ng ilang mga paraan upang masubaybayan ang mga proseso. Gayunpaman, sa ilang mga kaso ito ay maaaring hindi sapat. Paano kung ang isang proseso ay hindi lalabas (mananatili pa rin ito sa listahan ng proseso), ngunit humihinto ito sa pagtugon. Sa kasong ito, upang matiyak na ang isang proseso ay talagang gumagana at tumatakbo, maaaring kailanganin mo ng mga karagdagang pagsusuri upang maisagawa.

Dito magagamit ang mga script mula sa itinuro na ito.

Hakbang 2: Pag-configure at Paggamit ng Mga Script ng Checker ng Serbisyo

Kung kailangan mo ng higit na kontrol sa iyong mga tumatakbo na proseso / serbisyo, ang mga script na ito ay makakatulong, sigurado.

Dahil ang code ay bahagyang malaki, Na-upload ito sa github at maaaring matagpuan sa ilalim ng sumusunod na imbakan:

github.com/trex2000/Service-Monitor-Scripts/blob/master/checkService.sh

Ang 'puso' ng buong pakete ay ang

checkService.sh

Bago gamitin ito, dapat mong palitan ang buong landas sa folder ng serbisyo. Maaari itong matagpuan sa simula ng iskrip.

Maaaring subaybayan ng script ang maraming proseso at magsagawa ng karagdagang gawain, tulad ng inilarawan sa ibaba:

Dumadaan ito sa bawat file mula sa / mga serbisyo na subfolder na mayroong.serv o.check mga extension at susuriin kung mayroong isang aktibong proseso na tinatawag na 'application'.

Kung walang '.check' na file para sa isang application, ang application.serv file lamang ang:

Kung ang proseso ay aktibo, isasaalang-alang nito ang proseso bilang pagiging aktibo

Kung ang proseso ay hindi aktibo, i-restart nito ang serbisyo sa pamamagitan ng paglabas ng sumusunod na utos:

i-restart ang systemctl application

kung ang.serv file ay walang laman!

Kung ang.serv file ay hindi walang laman at may mga karapatang maisakatuparan, susubukan nitong patakbuhin ito bilang isang simpleng script ng BASH.

Kapaki-pakinabang ito kung may isang bagay na karagdagan na kailangang gawin bukod sa pag-restart lamang ng serbisyo.

Halimbawa Ang pag-restart ng spamd lamang ay hindi sapat.

Maaaring i-edit ng isa ang nilalaman ng naturang isang file ng serv alinsunod sa mga pangangailangan.

Ang isa pang halimbawa ay ang pcscd.serv file. Sa kasong ito maraming iba pang mga proseso ang na-restart / pinatay din.

Kung mayroong isang file ng tseke, pagkatapos suriin kung tumatakbo ang proseso, tatakbo rin ang file ng script na ito upang magsagawa ng karagdagang mga pagsusuri.

Halimbawa, para sa serbisyo ng oscam, gumawa kami ng isang check file na sumusubok na kumonekta sa web interface na ito upang makita kung ito ay matagumpay. Kung hindi, kung gayon, sa kabila ng pagkakaroon ng proseso ay aktibo, ang serbisyo ay hindi tumutugon at kailangang i-restart. Ang pag-restart ng serbisyo ay dapat gumanap / tawagan ng.check na file mismo.

Ang isa pang halimbawa ay ang serbisyo ng mediatomb DLNA.

Ito ay isang maliit na server na nagbibigay ng nilalamang video / audio sa mga kliyente ng DLNA at i-broadcast ang sarili nito sa network. Minsan nag-hang ang serbisyo at hindi na ito makakatuklas ng kakayahang muli, ngunit ang proseso ay magiging aktibo pa rin. Upang suriin kung ang serbisyo ay natuklasan, ginamit ang CLI utility na tinawag na gssdp-Discover. Ang buong code na suriin ang server ng DLNA ay inilagay sa loob ng isang mediatomb.check script.

Ito ay ilan lamang sa mga halimbawa sa kung paano mo magagamit ang.serv at.check files.

Upang masubaybayan ang isang bagong serbisyo, dapat kang lumikha ng isang.serv at, kung kinakailangan din ng isang check file at isulat ang kaukulang script sa loob nila.

Kung suriin lamang ang pagkakaroon ng proseso kung sapat, pagkatapos ay isang walang laman na.serv file ay sapat. Kung dapat gumanap ng karagdagang mga pagsusuri, dapat gawin ang isang.check file at isang maliit na script ang dapat maisulat upang magawa ang trabaho.

Of cource, ang script na.sh ay dapat na patakbuhin nang pana-panahon, samakatuwid ang isang cron job ay dapat ding likhain para dito:

#check tumatakbo ang mga serbisyo tuwing 5 minuto * / 5 * * * * /var/bin/ServiceCheck/checkService.sh> / dev / null

Hakbang 3: Pangwakas na Mga Saloobin

Inaasahan kong makikita mo ang kapaki-pakinabang na package na ito dahil maaari nitong lubos na masubaybayan ang mga proseso ng Linux at sana ay mabawasan ang downtime ng iyong mga serbisyo.

Huwag mag-atubiling mag-upload ng mga karagdagang script sa github, kung lumikha ka ng mga bago. Ipaalam lamang sa akin at idaragdag kita bilang nag-ambag.

Inirerekumendang: