Systemd – systeem- en servicemanager in besturingssysteem Linux. Bij de ontwikkeling ervan probeerden ze het zo te ontwerpen dat het achterwaarts compatibel was met SysV-init-scripts en -voorzieningen handige functies, zoals parallelle lancering systeemservices tijdens het opstarten, on-demand activering van daemons, ondersteuning voor momentopnamen van de systeemstatus en op afhankelijkheid gebaseerde servicebeheerlogica. In CentOS 7 vervangt systemd Upstart als het standaard init-systeem.
In dit artikel zullen we kijken naar het systemd servicemanagementproces voor CentOS-gebruiker 7. Deze kennis zal nuttig zijn in andere distributies, omdat systemd al lange tijd in Fedora wordt gebruikt en gepland is in Ubuntu 14.10 en Debian 8. Of dit goed is of niet, blijft achter de schermen.
Terwijl je dit artikel leest, kun je systemd proberen op klassieke VPS en cloud-VPS van Infobox. Wij streven ernaar om tijdig ondersteuning voor moderne besturingssystemen toe te voegen, zodat u met de nieuwste technologieën efficiënter kunt werken. Het idee om dit artikel te schrijven ontstond na een andere vraag van gebruikers over het gebruik van services in CentOS 7.
Invoering
Systemd brengt het concept van systemd-eenheden. Eenheden worden weergegeven door configuratiebestanden in een van de mappen:
- /usr/lib/systemd/system/– eenheden vanaf geïnstalleerde pakketten toerental.
- /run/systemd/system/- eenheden gemaakt in runtime. Deze map heeft voorrang op de map met geïnstalleerde eenheden uit pakketten.
- /etc/systemd/system/- eenheden aangemaakt en beheerd door de systeembeheerder. Deze map heeft voorrang op de map met eenheden die tijdens runtime zijn aangemaakt.
Typen systeemeenheden:
- .dienst– systeemservice
- .doel- gesystematiseerde eenheidsgroep
- .automoun t – automountpunt van het bestandssysteem
- .apparaat– bestand van het apparaat dat door de kernel wordt herkend
- .monteren– koppelpunt voor bestandssysteem
- .pad– bestand of map in bestandssysteem
- .domein– een proces dat van buitenaf is gecreëerd
- .plak– een groep hiërarchisch georganiseerde eenheden die systeemprocessen beheren
- .momentopname– systemd manager opgeslagen status
- .stopcontact- stopcontact communicatie tussen processen
- .ruil– Apparaat wisselen of bestand wisselen (wisselbestand)
- .timer– systeemtimer
Basisfuncties van systemd in CentOS 7
- Socket-gebaseerde activering. Tijdens het opstarten luistert systemd op sockets voor alle systeemservices, ondersteunt dit type activering en geeft sockets door aan deze services onmiddellijk nadat de services zijn gestart. Hierdoor kan systemd niet alleen services parallel uitvoeren, maar biedt het ook de mogelijkheid om services opnieuw te starten zonder berichten te verliezen die naar hen zijn verzonden terwijl de services niet beschikbaar waren. De bijbehorende socket blijft beschikbaar en alle berichten worden in de wachtrij geplaatst.
- Op D-Bus gebaseerde activering. Systeemservices die D-Bus gebruiken voor communicatie tussen processen kunnen op aanvraag worden gestart wanneer klant applicatie proberen contact met hen op te nemen.
- Apparaatgebaseerde activering. Systeemservices die apparaatgebaseerde activering ondersteunen, kunnen worden gestart wanneer een bepaald type hardware is aangesloten of beschikbaar komt.
- Padgebaseerde activering. Systeemservices kunnen dit type activering ondersteunen als de status van een map of directory verandert.
- Momentopnamen van systeemstatussen. Het systeem kan de status van alle eenheden opslaan en herstellen vorige staat systemen.
- Mountpunten en automounts beheren. Systemd bewaakt en beheert mountpunten en automountpunten.
- Agressieve parallellisatie Systemd start systeem diensten parallel vanwege het gebruik van socketgebaseerde activering. In combinatie met services die activering op aanvraag ondersteunen, verkort parallelle activering de opstarttijd van het systeem aanzienlijk.
- Transactionele logica voor activering van eenheden. Voordat eenheden worden geactiveerd of gedeactiveerd, berekent systemd hun afhankelijkheden, creëert een tijdelijke transactie en verifieert de integriteit van die transactie. Als een transactie niet intact is, probeert systemd deze automatisch te repareren en onnodige taken eruit te verwijderen voordat er een foutmelding wordt gegenereerd.
- Achterwaarts compatibel met SysV-initialisatie. SystemD ondersteunt volledig SysV-init-scripts zoals beschreven in de Linux Standard Base (LSB)-specificatie, waardoor het eenvoudig is om naar systemd te migreren.
Servicebeheer
Eerdere versies van CentOS gebruikten SysV of Upstart. De initialisatiescripts bevonden zich in de directory /etc/rc.d/init.d/. Dergelijke scripts werden meestal in Bash geschreven en stelden de beheerder in staat de status van services en daemons te beheren. In CentOS 7 zijn init-scripts vervangen door service-eenheden.
Volgens gebruikswijze, service-eenheden .dienst lijken op init-scripts. Gebruik de opdracht om systeemservices te bekijken, starten, stoppen, opnieuw opstarten, in- of uitschakelen systeemctl. Teams dienst En chkconfig zijn nog steeds opgenomen in het systeem, maar alleen om compatibiliteitsredenen.
Wanneer u systemctl gebruikt, is het niet nodig om de bestandsextensie op te geven.
Hieronder staan de basiscommando's systeemctl:
- systemctl start naam.service– het starten van de dienst.
- systemctl stop naam.service- dienststop
- systemctl herstart naam.service- start de dienst opnieuw
- systemctl probeer naam.service opnieuw te starten- start de service alleen opnieuw als deze actief is
- systemctl herlaad naam.service- laad de serviceconfiguratie opnieuw
- systemctl status naam.service- controleren of de service actief is met gedetailleerde uitvoer van de servicestatus
- systemctl is-actieve naam.service- controleren of de dienst actief is met een simpel antwoord: actief of inactief
- systemctl lijsteenheden --type service --all– de status van alle services weergeven
- systemctl schakel naam.service in– activeert de service (laat deze starten tijdens het opstarten van het systeem)
- systemctl schakel naam.service uit– deactiveert de dienst
- systemctl herinschakelbare naam.service– deactiveert de dienst en activeert deze onmiddellijk
- systemctl is ingeschakeld naam.service– controleert of de dienst is geactiveerd
- systemctl lijst-eenheid-bestanden --type service– geeft alle services weer en controleert welke zijn geactiveerd
- systemctl masker naam.service– vervangt het servicebestand door een symbolische link naar /dev/null, waardoor het apparaat niet meer beschikbaar is voor systemd
- systemctl ontmasker naam.service– retourneert een servicebestand, waardoor het apparaat beschikbaar wordt voor systemd
Werken met Systemd-doelen
Vorig CentOS-versies met SysV init of Upstart bevatte een vooraf gedefinieerde set runlevels die specifieke modi voor bewerkingen vertegenwoordigden, genummerd van 0 tot en met 6. In CentOS 7 werd het concept van runlevels vervangen door systemd-doelen.
systemd doelbestanden .doel zijn ontworpen om andere systeemeenheden samen te groeperen via een afhankelijkheidsketen. Bijvoorbeeld eenheid grafisch.doel, gebruikt om een grafische sessie te starten, start GNOME Display Manager-systeemservices ( gdm.service) en Accountservice ( accounts–daemon.service) en activeert multi-user.doel. Op zijn beurt multi-user.doel start andere systeemservices zoals Netwerkbeheerder (NetwerkManager.service) of D-Bus ( dbus.service) en activeert andere doeleenheden basis.doel.
CentOS 7 wordt geleverd met vooraf gedefinieerde doelen, vergelijkbaar met standaard ingesteld niveaus uitvoeren. Om compatibiliteitsredenen hebben ze ook aliassen voor deze doelen die rechtstreeks in SysV-runlevels verschijnen.
- poweroff.target (runlevel0.target)– afsluiten en afsluiten van het systeem
- redding.target (runlevel1.target)– het opzetten van de herstelshell
- multi-user.target (runlevel2.target, runlevel3.target, runlevel4.target)– het opzetten van een niet-grafisch multi-user systeem
- grafisch.target (runlevel5.target)– het opzetten van een grafisch multi-user systeem
- reboot.target (runlevel6.target)– sluit het systeem af en start het opnieuw op
De opdrachten runlevel en telinit zijn nog steeds beschikbaar, maar worden vanwege compatibiliteitsredenen in het systeem gelaten. Het wordt aanbevolen om systemctl te gebruiken om systeemdoelen te wijzigen of te configureren.
Om te bepalen welke doeleenheid de standaardeenheid is, is de volgende opdracht nuttig: systemctl get-standaard.
Gebruik de opdracht om alle geladen doeleenheden te bekijken systemctl lijsteenheden --type doel en om alle doeleenheden in het algemeen te bekijken met het commando: systemctl lijsteenheden --type doel --all.
Gebruik de opdracht om het standaarddoel te wijzigen systemctl set-default naam.doel.
Om het huidige doel te wijzigen: systemctl isoleer naam.doel. Het commando start de doeleenheid en al zijn afhankelijkheden en stopt alle andere onmiddellijk.
In CentOS 7 vervangt systemctl een aanzienlijk aantal energiebeheeropdrachten. De voorgaande opdrachten blijven behouden voor compatibiliteit, maar het wordt aanbevolen om systemctl te gebruiken:
systemctl stoppen– stopt het systeem
systemctl uitzetten– schakelt het systeem uit
systemctl opnieuw opstarten– start het systeem opnieuw op
Systemd beheren op een externe machine
Met Systemd kunt u een externe machine beheren via SSH. Gebruik het commando om te besturen:
systemctl --host gebruikersnaam@host_naam opdracht, waarbij gebruikersnaam de gebruikersnaam is, en host_naam de naam is van de host waarmee de afstandsbediening, en command is de systemd-opdracht die moet worden uitgevoerd.
Typische systemd-service
Deze sectie helpt u als u snel servicebeheer van systemd wilt ondersteunen. Gedetailleerde informatie over alle parameters van het .service-bestand is beschikbaar in de overeenkomstige sectie van de systemd-documentatie.
Beschrijving=Daemon om crashende apps te detecteren After=syslog.target ExecStart=/usr/sbin/abrtd Type=forking WantedBy=multi-user.target
Laten we naar de sectie kijken . Het bevat algemene informatie over de dienst. Deze sectie bestaat niet alleen in service-eenheden, maar ook in andere eenheden (bijvoorbeeld bij het beheren van apparaten, koppelpunten, enz.). In ons voorbeeld geven we een beschrijving van de dienst en geven we aan dat de daemon na Syslog gestart moet worden.
In de volgende sectie bevat direct informatie over onze dienstverlening. Gebruikte parameter ExecStart wijst naar uitvoerbaar bestand onze dienst. IN Type we specificeren hoe de service systemd op de hoogte stelt wanneer het opstarten is voltooid.
Laatste deel bevat informatie over het doel waarin de service moet starten. IN in dit geval we zeggen dat de service moet worden gestart wanneer het doel wordt geactiveerd multi-user.doel.
Dit is het minimaal werkende systemd-servicebestand. Nadat u de uwe heeft geschreven, kopieert u deze naar /etc/systemd/system/service_name.service om te testen. Voer de opdrachten uit systemctl daemon-herladen. Systemd is op de hoogte van de service en u kunt deze starten.
Aanvullende informatie
Een uitstekende tutorial over systemd van RedHat, die de basis vormt voor dit artikel.
Documentatie voor het schrijven van uw eigen systemd service unit.
“Systemd voor beheerders” van de ontwikkelaar van systemd in het Russisch.
Conclusie
In dit artikel hebben we geleerd hoe we CentOS 7-services kunnen beheren. Dit is natuurlijk niet de enige functie van systemd en de andere aspecten ervan zullen in de toekomst worden besproken. Het besturingssysteem zelf is bijna sinds de release beschikbaar op klassieke VPS en cloud-VPS van Infobox. Probeer nu systemd. Deze kennis zal nuttig zijn in verband met de transitie van veel distributies naar systemd.
Als u een fout in het artikel aantreft, zal de auteur deze graag corrigeren. Schrijf hierover een PM of e-mail.
Als u geen reacties op Habré kunt achterlaten, kunt u deze op de blog schrijven
Cursusgeld: 10.000 wrijven. Gratis op opensource
Cursusbeschrijving:
Elk systeembeheerder dromen van een betrouwbaar besturingssysteem. Beheers CentOS - Linux-distributie bedrijfsklasse, bekend om zijn stabiliteit!
Linux-beheer kennen professioneel niveau, kunt u de meeste van uw dagelijkse taken automatiseren met behulp van scripts en de onderhoudskosten van de server minimaliseren.
Leer het meest betrouwbare gratis besturingssysteem en word een expert op het gebied van servertechnologie!
Als resultaat van de training leer je:
- Voer de installatie en implementatie uit Linux CentOS
- Werk met het Linux-bestandssysteem
- Beheer accounts en toegangsrechten
- Shell-technieken en basisbeginselen van scripting
- Basisprincipes van TCP/IP-stackbeheer en basisgereedschap voor het werken met het netwerk
Cursusprogramma " Linux-beheer»:
- Inleiding tot Linux
- Bestandssysteem
Hoofdmap, koppelpunt, thuismap, bestandstypen. Reguliere bestanden. Catalogi. Apparaatbestanden. Teams. Bestandssysteemnavigatie: cd-, pushd-, popd-, pwd-opdrachten. Bestanden maken, verwijderen en kopiëren. Commando's aanraken, rm, cp. Bewerkingen met mappen. De mkdir- en rmdir-opdrachten. - Rekeningen
Concept van account en authenticatie. Bestanden /etc/passwd en /etc/group, /etc/shadow en /etc/gshadow. Rekening wortel. Wachtwoorden in Linux. Commando's login, su, newgrp, passwd, gpasswd, chage. - Toegangsrechten
Verdeling van toegangsrechten in Linux. Lezing. Dossier. Uitvoering. Kenmerken van maprechten. Toegangsrechten toewijzen. Commando's chmod, chown, chgrp. Kleverig beetje. - Werken met bestanden
Informatie uit bestanden uitvoeren naar het consolescherm. Commando's kat, tac, meer, minder, kop, staart, od. Uitvoeromleiding. Het concept van stdin, stdout, stderr. Kanalen. Exploitanten | En<, >, >> . Informatie filteren. Reguliere expressies. grep-opdracht. Archiveren. tar- en gzip-hulpprogramma's. - Processen onder Linux
Proces-ID's. Demonen. ps-opdracht. Toegangsrechten verwerken. Echte en effectieve identificatiemiddelen. SUID- en SGID-bits. Procesbeheer. Signalen. Commando's nice, nohup, kill, killall. - Commandoshells
Overzicht van opdrachtshells. Commandoshell bashen. Multitasken in de console. Taakbeheer. Omgevingsvariabelen van Midnight Commander. Programmeren voor Bash. - Taakplanning
Werken met schijfstations. cron-daemon. Commando's bij, crontab, mount. - Teksteditors vi, Emacs
- SVR4-initialisatieniveaus
Proces init. Initialisatieniveaus. Bestand /etc/inittab. Directory /etc/rc.d. - X Window-systeem
Daemon X. Start X. Script startx. 5e niveau van initialisatie. - Linux-netwerkbeheer
Netwerk OSI-model. Protocollen IP, UDP, TCP, ICMP. Iptables
Ik zal het hebben over de initiële instellingen van het CentOS-systeem, die de veiligheid en het gemak van het werken met de server vergroten. Ik merk op dat er in de 7e versie van het systeem enkele wijzigingen zijn aangebracht in vergelijking met eerdere versies.
Houd er nogmaals rekening mee dat ik deze instellingen aanmaak virtuele server. Als je een hardwareserver hebt, dan is het aan te raden om nog wat instellingen uit te voeren die ik hier niet vermeld. Deze omvatten bijvoorbeeld het instellen en controleren van fouttolerantie wanneer een van de schijven uitvalt. Afsluiten regelmatige controles mdadm-array, enz.
Eerste installatie van CentOS 7
We hebben dus: # uname -a Linux zeroxzed.ru 3.10.0-123.20.1.el7.x86_64 #1 SMP do 29 januari 18:05:33 UTC 2015 x86_64 x86_64 x86_64 GNU/LinuxLaten we eerst eens updaten basissysteem:
#jammie update
Voor het gemak van het beheer installeer ik altijd Middernacht commandant, of gewoon mc:
#yum installeer mc
En onmiddellijk daarvoor schakel ik syntaxisaccentuering in voor alle bestanden die niet expliciet in het bestand zijn gemarkeerd /usr/share/mc/syntaxis/Syntaxis syntaxis voor sh- en bash-scripts. Deze universele syntaxis werkt prima voor configuratiebestanden, waarmee u meestal op de server moet werken. Het bestand overschrijven onbekende.syntaxis. Dit is het patroon dat zal worden toegepast op .conf- en .cf-bestanden, aangezien er geen expliciete syntaxis aan is gekoppeld.
# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax
# ifconfig
En je zult het antwoord zien:
Bash: ifconfig: commando niet gevonden
Door ten minste Toen ik dit voor het eerst zag, was ik behoorlijk verrast. Ik dacht dat ik een fout had gemaakt bij het schrijven van het commando, ik heb alles meerdere keren gecontroleerd, maar het mocht niet baten. Het bleek dat ik afzonderlijk een pakket moest installeren om ifconfig en andere netwerkhulpprogramma's uit te voeren.
In plaats van ifconfig in CentOS 7 is er nu een hulpprogramma ip. Ik begrijp niet waarom zeuren individuele programma's voor beheer netwerkinstellingen, als ifconfig de taak al perfect aankan. Bovendien vond ik dat altijd leuk verschillende distributies Linux is vrijwel hetzelfde. Met ifconfig kun je het netwerk niet alleen in Linux configureren, maar ook in freebsd. Het is handig. En als elke distributie zijn eigen tool heeft, is dit lastig. Daarom stel ik voor om de gebruikelijke ifconfig te installeren.
Laten we dit doen:
#yum installeer net-tools
Om de nslookup- of bijvoorbeeld host-opdrachten te laten werken, moeten we nu het bind-utils-pakket installeren. Als dit niet gebeurt, gebruik dan het commando:
#nslookup
De uitvoer zal zijn:
Bash: nslookup: opdracht niet gevonden
Laten we dus bind-utils installeren:
# yum installeer bind-utils
Schakel SELinux uit. Het gebruik en de configuratie ervan is een aparte zaak. Ik zal dit nu niet doen. Dus laten we het uitschakelen:
# mcedit /etc/sysconfig/selinux
verander de waarde
SELINUX=uitgeschakeld
Om de wijzigingen door te voeren, start u opnieuw op:
# opnieuw opstarten
Je kunt SElinux uitschakelen zonder opnieuw op te starten:
#setenforce 0Netwerkparameters opgeven
Gebruik niet beide tijdsynchronisatiedaemons (chrony en ntp) tegelijkertijd. Kies er één. Persoonlijk zie ik er geen enkel verschil in; ik installeer meestal de gebruikelijke ntp.
Opslagplaatsen toevoegen
Om verschillende software te installeren die je nodig hebt. De meest populaire zijn EPEL en rpmforge, dus laten we ze toevoegen. Eerst installeren we EPEL. Alles is er eenvoudig mee, het wordt toegevoegd vanuit de standaardrepository:
# yum installeer epel-release
Installeer rpmforge:
# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt # yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1 .el7.rf.x86_64.rpm
# yum installeren http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
Geschiedenisopslag instellen in bash_history
Het zal nuttig zijn om enkele wijzigingen aan te brengen in het standaardmechanisme voor het opslaan van de opdrachtgeschiedenis. Het helpt vaak als u een van de eerder ingevoerde opdrachten moet onthouden. De standaardinstellingen hebben enkele beperkingen die lastig zijn. Hier is hun lijst:
- Standaard worden alleen de laatste 1000 opdrachten opgeslagen. Als er meer zijn, worden de oudere verwijderd en vervangen door nieuwe.
- Er zijn geen uitvoeringsdata voor de opdrachten, alleen een lijst ervan in volgorde van uitvoering.
- Het opdrachtenlijstbestand wordt bijgewerkt nadat de sessie is beëindigd. Tijdens parallelle sessies kunnen sommige opdrachten verloren gaan.
- Absoluut alle opdrachten worden opgeslagen, hoewel het geen zin heeft sommige op te slaan.
Een lijst met de meest recent uitgevoerde opdrachten wordt opgeslagen in thuismap gebruiker in bestand .bash_geschiedenis(punt aan het begin). Je kunt het met elke editor openen en bekijken. Om de lijst handiger weer te geven, kunt u de opdracht in de console invoeren:
#geschiedenis
en zie een genummerde lijst. U kunt snel een specifiek commando vinden door alleen de noodzakelijke regels te filteren, bijvoorbeeld als volgt:
#geschiedenis | grep jammie
We zullen dus alle lanceringsopties zien yum-opdrachten, die zijn opgeslagen in de geschiedenis. Wij zullen de genoemde tekortkomingen corrigeren standaard instellingen het opslaan van de opdrachtgeschiedenis in CentOS 7. Om dit te doen, moet u het bestand bewerken .bashrc, die zich in dezelfde map bevindt als het geschiedenisbestand. Voeg er de volgende regels aan toe:
Exporteer HISTSIZE=10000 export HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="geschiedenis -a" export HISTIGNORE="ls:ll:geschiedenis:w:htop"
De eerste optie vergroot de bestandsgrootte tot 10.000 regels. Je kunt er meer maken, hoewel dit formaat meestal voldoende is. De tweede parameter specificeert dat de datum en tijd waarop de opdracht werd uitgevoerd, moeten worden opgeslagen. De derde regel dwingt onmiddellijk na het uitvoeren van de opdracht om deze in de geschiedenis op te slaan. In de laatste regel maken we een lijst met uitzonderingen voor de opdrachten die niet in de geschiedenis hoeven te worden vastgelegd. Ik gaf een voorbeeld van de eenvoudigste lijst. Je kunt het naar eigen inzicht toevoegen.
Om de wijzigingen toe te passen, moet u uitloggen en opnieuw verbinding maken of de opdracht uitvoeren:
# bron ~/.bashrc
Automatische systeemupdate
Om de serverbeveiliging op het juiste niveau te houden, is het noodzakelijk om deze op zijn minst tijdig bij te werken - zoals de kernel zelf met systeemhulpprogramma's, evenals andere pakketten. Je kunt dit handmatig doen, maar voor efficiënter werken kun je beter automatiseren routinematige activiteiten. Het is niet nodig om updates automatisch te installeren, maar controleer er in ieder geval op. Meestal volg ik deze strategie.
Om automatisch te controleren op updates, zal het hulpprogramma ons helpen jammie-cron. Het wordt traditioneel geïnstalleerd via yum vanuit de standaardrepository.
# yum installeer yum-cron
Na de installatie wordt er een automatische taak aangemaakt waarin het hulpprogramma wordt uitgevoerd /etc/cron.daily En /etc/cron.hourly. Standaard downloadt het hulpprogramma gevonden updates, maar past deze niet toe. In plaats daarvan wordt een updatemelding naar de lokale root-mailbox van de beheerder verzonden. Dan ben je al binnen handmatige modus kom binnen en beslis of u updates wilt installeren of niet op een tijdstip dat u uitkomt. Deze bedieningsmodus vind ik het handigst, dus ik verander deze instellingen niet.
De yum-cron configuratiebestanden bevinden zich op /etc/yum/yum-cron.conf En yum-cron-hourly.conf. Ze zijn goed becommentarieerd, dus in gedetailleerde uitleg heb het niet nodig. Ik vestig uw aandacht op het gedeelte , waar u parameters kunt opgeven voor het verzenden van berichten. Standaard wordt e-mail verzonden via een lokale host. U kunt hier de instellingen wijzigen en berichten verzenden via een derde partij mailserver. Maar in plaats daarvan geef ik er persoonlijk de voorkeur aan om de hele server globaal te configureren om lokale root-mail door te sturen naar een externe mailbox via autorisatie op een andere smtp-server.
Schakel het overstromen van berichten uit in /var/log/messages
Bij de standaardinstallatie van het CentOS 7-systeem wordt uw volledige systeemlogboek geregistreerd /var/log/berichten Na enige tijd zal de server verstopt raken met de volgende records.
16 oktober 14:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 14:01:01 xs-files systemd: User-0.slice starten. 16 oktober 14:01:01 xs-files systemd: Sessie 14440 van gebruiker root gestart. 16 oktober 14:01:01 xs-files systemd: Sessie 14440 van gebruiker root starten. 16 oktober 14:01:01 xs-files systemd: Slice user-0.slice verwijderd. 16 oktober 14:01:01 xs-files systemd: User-0.slice stoppen. 16 oktober 15:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 15:01:01 xs-files systemd: User-0.slice starten. 16 oktober 15:01:01 xs-files systemd: Sessie 14441 van gebruiker root gestart. 16 oktober 15:01:01 xs-files systemd: Sessie 14441 van gebruiker root starten. 16 oktober 15:01:01 xs-files systemd: Sessie 14442 van gebruiker root gestart. 16 oktober 15:01:01 xs-files systemd: Sessie 14442 van gebruiker root starten. 16 oktober 15:01:01 xs-files systemd: Slice user-0.slice verwijderd. 16 oktober 15:01:01 xs-files systemd: User-0.slice stoppen. 16 oktober 16:01:01 xs-files systemd: Slice user-0.slice gemaakt. 16 oktober 16:01:01 xs-files systemd: User-0.slice starten. 16 oktober 16:01:01 xs-files systemd: Sessie 14443 van gebruiker root gestart. 16 oktober 16:01:01 xs-files systemd: Sessie 14443 van gebruiker root starten. 16 oktober 16:01:01 xs-files systemd: Slice user-0.slice verwijderd.
Ze hebben geen enkel praktisch nut, dus laten we ze uitschakelen. Om dit te doen, zullen we een aparte regel voor rsyslog maken, waarin we alle berichtsjablonen zullen vermelden die we zullen knippen. Laten we deze regel in een apart bestand plaatsen /etc/rsyslog.d/ignore-systemd-session-slice.conf.
# cd /etc/rsyslog.d && mcedit negeer-systemd-session-slice.conf if $programname == "systemd" en ($msg bevat "Startsessie" of $msg bevat "Gestarte sessie" of $msg bevat "Gecreëerd slice" of $msg bevat "Starting user-" of $msg bevat "Starting User Slice of" of $msg bevat "Removed session" of $msg bevat "Removed slice User Slice of" of $msg bevat "Stopping User Slice of" ) en stop dan
Sla het bestand op en start rsyslog opnieuw om de instellingen toe te passen.
# systemctl herstart rsyslog
Het is noodzakelijk om te begrijpen dat we in dit geval het overstromen van het logbestand alleen op de lokale server uitschakelen. Als u aanmeldingen opslaat, dan deze regel u zult het erop moeten configureren.
Iftop, atop, htop, lsof installeren op CentOS 7
En tot slot voegen we er nog een paar toe nuttige hulpprogramma's, wat handig kan zijn tijdens het gebruik van de server.
iftop toont de netwerkinterfacebelasting in realtime en kan worden gestart verschillende sleutels Ik zal hier niet in detail op ingaan, er is informatie over dit onderwerp op internet. Wij plaatsen:
#yum installeer iftop
En twee interessante taakbeheerders, ik gebruik meestal htop, maar soms komt atop van pas. Laten we beide installeren, kijk zelf, zoek uit wat je het leukst vindt, wat bij je past:
# yum -y installeer htop # yum -y installeer bovenop
Zo ziet htop eruit:
Om informatie weer te geven over welke bestanden door welke processen worden gebruikt, raad ik u aan het hulpprogramma te installeren lsof. Het zal waarschijnlijk vroeg of laat van pas komen wanneer u een diagnose van de server stelt.
# yum installeer wget bzip2 traceroute gdisk
Dat is alles voor mij. Basis CentOS-installatie 7 is voltooid, kunt u beginnen met het installeren en configureren van de hoofdfunctionaliteit.
Systeemmail instellen
Om de installatie te voltooien CentOS-servers 7 zorgen wij ervoor dat mail geadresseerd aan de lokale root via een externe mailserver naar de geselecteerde mailbox wordt verzonden. Als dit niet gebeurt, wordt het lokaal in een bestand gecompileerd /var/spool/mail/root. En er kan belangrijke en nuttige informatie zijn. Laten we het configureren zodat het naar de mailbox van de systeembeheerder wordt verzonden.
Ik heb hier in een apart artikel uitgebreid over gesproken -. Hier zijn alleen de opdrachten en de snelle installatie. Wij zetten benodigde pakketten:
# yum installeer mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain
Laten we zoiets als deze configuratie voor postfix tekenen.
Cat /etc/postfix/main.cf ## STANDAARD CONFIG BEGIN #################### wachtrij_directory = /var/spool/postfix command_directory = /usr/sbin daemon_directory = /usr/libexec/postfix data_directory = /var/lib/postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = alle onbekende_local_recipient_reject_code = 550 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases debug_peer_level = 2 debugger _command = PATH =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = geen manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## DEFAULT CONFIG END #################### # Servernaam als uitvoer door het commando hostname myhostname = centos7- test xs.local # Hier hoeft u logischerwijs alleen het domein te verlaten, maar in dit geval is het beter om te vertrekken. volledige naam server, zodat de volledige naam van de server verschijnt in het afzenderveld #, dit maakt het handiger om serviceberichten te parseren mydomain = centos7-test.xs.local mydestination = $myhostname myorigin = $mydomain # Serveradres waarmee we zullen stuur e-mail relayhost = mailsrv.mymail.ru :25 smtp_use_tls = ja smtp_sasl_auth_enable = ja smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = neeanoniem smtp_tls_security_level = mei
We maken een bestand aan met informatie over de gebruikersnaam en het wachtwoord voor autorisatie.
# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-mailadres beveiligd]:wachtwoord
Maak een db-bestand.
# postmap /etc/postfix/sasl_passwd
Nu kunt u postfix opnieuw opstarten en controleren of het werkt.
# systemctl herstart postfix
Naar de standaardalias voor root in /etc/aliassen, voeg een extern adres toe waar e-mail geadresseerd aan root wordt gedupliceerd. Om dit te doen, bewerken we opgegeven bestand, veranderen laatste regel.
#root: Marc
Wortel: wortel, [e-mailadres beveiligd]
De certificaatdatabase bijwerken:
#nieuwealiassen
Laten we via de console een brief naar de lokale root sturen:
#df-h | mail -s "Schijfgebruik" root
De brief moet naar buitenste lade. Hiermee is de lokale e-mailconfiguratie voltooid. Nu worden alle brieven geadresseerd aan de lokale root, bijvoorbeeld rapporten van cron, gedupliceerd naar een externe mailbox en verzonden via een normale mailserver. De brieven worden dus normaal afgeleverd, zonder in spam terecht te komen (hoewel dat niet noodzakelijkerwijs het geval is, er zijn ook heuristische filters).
Conclusie
We hebben enkele eerste stappen doorlopen om een CentOS 7-server in te stellen, wat ik meestal doe bij het voorbereiden van een server. Ik pretendeer niet de absolute waarheid te zijn, misschien mis ik iets of doe ik iets dat niet helemaal correct is. Ik ben blij met redelijke en betekenisvolle opmerkingen en suggesties.
Handig na basisinstellingen verbind de server onmiddellijk met het monitoringsysteem. Of stel het in als u dit nog niet heeft. Ik heb een gedetailleerde reeks artikelen over het opzetten van monitoring:
- , of alleen cento-verbinding tot monitoring door er een agent op te installeren.
- In een aparte sectie van de auteur
25 december 2009 – 19:19 uur
Idealiter zouden gebruikerswachtwoorden voortdurend moeten worden gewijzigd. Dit artikel beschrijft hoe u de vereisten voor het wijzigen van wachtwoorden configureert met behulp van de User Manager-applicatie op Red Hat Enterprise Linux 5 of CentOS 5. 1. Klik op Applicaties, selecteer vervolgens Systeeminstellingen en klik op Gebruikers en groepen. Hierdoor wordt het venster Gebruikersbeheer geopend. 2. Selecteer de gewenste gebruiker en klik op Eigenschappen
17 augustus 2009 – 11:54 uur
De standaard Iptables-configuratie is CentOS-systemen/Rode Hoed/RHEL/ FedoraLinux staat geen inkomende verbindingen met LDAP-services toe. In deze zelfstudie openen we toegang tot de TCP #389- en TCP #636-poorten die door LDAP worden gebruikt. Om dit te doen, moet u het bestand /etc/sysconfig/iptables bijwerken. Laten we eens overwegen eenvoudigste geval, waarin toegang wordt gegeven tot een heel segment van de lokale [...]
29 juli 2009 – 15.50 uur
Bij onderhoud aan een geladen SMTP-servers, merkt u wellicht dat sommige berichten in de wachtrij blijven staan. De redenen kunnen heel verschillend zijn, waaronder 450 reacties van de externe server, het onvermogen om verbinding te maken externe server en onderbrekingen tijdens het verzenden van berichten. Normaal gesproken herhaalt de server het verzenden vanuit de wachtrij ongeveer elke 30 minuten. Maar naarmate het aantal van dergelijke berichten groeit, groeit de algemene [...]
14 juli 2009 – 14:04 uur
Postfix Admin is een webinterface voor beheer brievenbussen, virtuele domeinen en aliassen in postsysteem op postfix-database. Dit artikel beschrijft het installatieproces voor Postfix Admin. Postfix Admin installeren 1. Vóór Postfix installeren Beheerder moet worden geïnstalleerd de volgende pakketten: yum installeer mysql-server php-mysql php-imap
7 mei 2009 – 18:01 uur
Om het niet te vergeten, laat ik een herinnering voor mezelf achter over het instellen van inktvis voor autorisatie op basis van LDAP-accounts. Squid heeft een ingebouwde module genaamd squid_ldap_auth. Het bevindt zich in /usr/lib64/squid/. Laten we eens kijken of het werkt: #/usr/lib64/squid/squid_ldap_auth -b “basedn” -D “binddn” -w bindpasswd -h LDAP_Server -v 3 -p 389 User Pass OK Zoals je hierboven kunt zien, werkt het. Gebruiker en Pas worden ingevoerd met behulp van hendels [...]
18 april 2009 – 16:51 uur
Wat is DRBD? DRBD (Engels: Distributed Replicated Block Device) is een blokapparaat dat is ontworpen voor het bouwen van fouttolerantie clustersystemen op het Linux-besturingssysteem. DRBD houdt zich bezig met volledige reflectie (mirroring) over het netwerk van alle bewerkingen met een blokapparaat. We kunnen DRBD zien als een netwerk RAID-1.
2 april 2009 – 14:58 uur
Veel documenten en HOWTO's beschrijven hoe je VLAN's in Linux handmatig kunt genereren, met behulp van een reeks opdrachten die vervolgens in een script kunnen worden geplaatst. Ik denk dat dit niet helemaal correct is. Het is het beste om dit soort dingen te doen reguliere middelen systemen. In op RedHat gebaseerde systemen kan het opzetten van VLAN's eenvoudig worden gedaan met behulp van het standaard ifup-script. Deze procedure wordt hieronder beschreven.