Diagnose en troubleshooting

VIII Diagnose en troubleshooting

1 Informatie verzamelen

Voordat je begint met eigenschappen van je systeem in de gaten te houden, moet je wel een beetje weten waar je naar kijkt. Veel gebruikers weten wel ongeveer wat voor vlees ze in de kuip hebben, maar er zijn vaak subtiele zaken die belangrijk zijn om te weten als je om hulp vraagt. Als je meer dan één systeem hebt, wordt het snel lastig om alle details te onthouden. Dat is ook niet nodig, want Linux desktops hebben normaal gesproken prima overzichten van alle details wat betreft de geïnstalleerde hardware. Onder KDE kun je KInfoCenter (K menu > Programma's > Systeem > Monitor > Informatiecentrum) raadplegen, dat in wezen een verzamelplaats is van uitvoer die je ook kunt krijgen via terminal opdrachten zoals df, lspci of lsusb.

Systeemmonitors

Als je een desktop gebruikt als KDE (K menu > Programma's > Systeem > Monitor > Systeemmonitor) kun je op het tabblad Systeembelasting meerdere monitors per paneel volgen waaronder de CPU-geschiedenis, het Geheugen- en wisselgeheugengeschiedenis en de Netwerkgeschiedenis. Het kan nuttig zijn om die permanent in zicht te hebben, zeker als je op een niet al te ruim bemeten systeem werkt.

Op de volgende manier kun je andere monitoren volgen:

In eerste instantie laat die alleen de gekozen sensor zien, maar dat kan worden aangepast door een tweede sensor op te monitor te slepen. Zo kun je op één monitor verschillende signalen met elkaar vergelijken. Je kunt de monitor verder instellen door er rechts op te klikken en de optie Eigenschappen te kiezen. Met het contextmenu van een monitor kun je de monitor verwijderen.

Meer inzicht.

Stel, je ziet op de monitor dat de CPU langere tijd zwaar wordt belast, of dat het geheugen snel volloopt, zonder dat je precies weet welk programma dat doet. Dan is het zaak om een meer gedetailleerd overzicht te krijgen van wat er allemaal gebeurt.
Met een juiste keuze van monitoren en sensors kan veel achterhaald worden. Via het tabblad Processentabel kun je bepaalde waarnemingen ook koppelen aan bepaalde processen. Met de Systeemmonitor kun je zelfs andere systemen in de gaten houden.

Trendy monitors

Bureaublad widgets hoeven er natuurlijk niet alleen maar zakelijk en functioneel uit te zien. Het mag best een beetje interessant overkomen op de toevallig passerende leek.

Zaken in de gaten houden

Behalve het feitelijke systeem zijn er nog een aantal zaken waarvan het belangrijk is om er een oogje op te houden. Voor notebooks kan dat een batterij-niveau indicator zijn. Als je een draadloos netwerk gebruikt, is het soms nuttig om de ontvangstkwaliteit te zien, bijvoorbeeld als je met je notebook op wandel gaat. En dan zijn er ook nog monitoren voor meer wereldse zaken, zoals het weer op een groot aantal plaatsen op de wereld, of de koersen van bepaalde aandelen.

Systeemparameters verzamelen en opslaan

Naast het realtime volgen van de systeemparameters kan het volgen van de systeemparameters over een langere periode zijn diensten bewijzen. De systeemparameters worden opgeslagen in logbestanden. De gegevens in deze logbestanden worden daarna door programma's verwerkt. Zo kunnen statistische (vb: gemiddelde) en analytische berekeningen op de gegevens losgelaten worden. De gegevens kunnen verwerkt worden in grafieken om een overzicht van het gedrag van een systeem in de tijd te krijgen. Deze programma's zijn zelfs in staat gegevens van andere op een netwerk aangesloten systemen te verwerken, waardoor een systeembeheerder van op zijn of haar computer de prestaties van elk computersysteem kan volgen. Het Sysstat project biedt deze mogelijkheden.

Sysstat levert informatie over:

Het programma sar kan deze informatie daarna verwerken. Interactive System Activity Grapher (isar) verwerkt de informatie grafisch.

Logbestanden bekijken

Het in de gaten houden van de nodige systeemparameters is natuurlijk maar een deel van het verhaal. Een heleboel informatie is niet toegankelijk via sensoren, maar wordt door servers en daemons naar logbestanden geschreven. De functionaliteit van een systeem wordt bepaald door de processen die er op draaien en de status van deze processen is af te leiden uit de logbestanden. Op de prompt zou je iets als tail gebruiken om die in de gaten te houden, maar in een grafische omgeving zijn er handige alternatieven om zicht te houden op wat er zoal in de logbestanden wordt geschreven.
KSystemLog kan logbestanden volgen.

Een opmerking is hier op zijn plaats. Logbestanden worden in de regel weggeschreven met permissies die het niet mogelijk maken voor een normale gebruiker om ze te lezen, uiteraard omdat er gevoelige informatie in kan staan. Hoewel het gemakkelijk kan zijn om die permissies te versoepelen is dit natuurlijk niet aan te raden. Om een bepaalde gebruiker makkelijk toegang te geven tot logbestanden is het beter om bijvoorbeeld sudo te gebruiken.

Logbestanden analyseren

Viewers geven doorgaans de inhoud van de logbestanden letterlijk weer en dat kan een behoorlijke informatiebrij zijn. Om een beter overzicht te krijgen is het nuttig om een zogenaamde log analyser te gebruiken. Omdat deze analysers het formaat van de logbestanden moeten 'begrijpen' zijn die voor één of enkele formaten of toepassingen geschreven. Deze analysers genereren normaal gesproken een rapport van alle informatie in een logbestand en worden niet 'realtime' gebruikt. Dat is dan ook de reden dat er geen bruikbare log analysers zijn met een grafische interface. In plaats daarvan wordt bijvoorbeeld een HTML-pagina gemaakt of een mail verstuurd. Daardoor kun je de rapporten nog altijd lezen binnen je grafische desktop, of het nu in je browser of je mailer is. Een bekende log analyser is webalizer voor web- en ftp-logbestanden.

Noodstop

Aangezien Linux een systeem met niveaus is, kun je bij het vastlopen van een niveau bovenliggende niveaus nog bereiken.

Het niveau het dichtst bij de gebruiker zijn de programma's die door deze gebruiker gestart en gebruikt worden. Bij het vastlopen van een applicatie (meestal te wijten aan een te hoge systeembelasting vanwege het betreffende programma) kun je KDE via de toetscombinatie Ctrl+Alt+Esc de opdracht geven het vastgelopen venster te sluiten (klik met het doodshoofd als muiswijzer op het venster dat je geforceerd wilt sluiten).

Indien de vensteromgeving (KDE of Gnome) vastloopt kun je de grafische omgeving X11 herstarten met de toestcombinatie Ctrl+Alt+Backspace (sommige distributies beveiligen deze toetscombinatie tegen het per ongeluk gebruik ervan door de toetscombinatie tweemaal na elkaar uit te voeren).

Indien de grafische omgeving X11 vastloopt (meestal te wijten aan een stuurprogramma), kun je de kernel met behulp van Sysrq-functies opdrachten geven. De Sysrq functies kun je gebruiken als de opdracht `more /proc/sys/kernel/sysrq` een getal toont. Indien deze opdracht de waarde 0 weergeeft, zijn de sysrq-functies uitgeschakeld, bij de waarde 1 zijn alle sysrq-functies ingeschakeld. Andere waarden zorgen ervoor dat bepaalde sysrq-functies actief en andere uitgeschakeld zijn.

Veilig herstarten

Functie

sysrq waarde

r

Controle van X11 over het toetsenbord wegnemen

4

e

Alle processen behalve init beëindigen (SIGTERM)

64

i

Alle processen behalve init afsluiten (SIGKILL)

64

s

Bestandssysteembuffer op harde schijf plaatsen

16

u

Herkoppel alle gekoppelde bestandssystemen in alleen-lezen

32

b

Herstarten

128

Overige functies



k

Alle processen in de actuele terminal beëindigen

4

f

Geheugenverslindend proces beëindigen

64

0-9

Log-niveau instellen

2

o

Systeem uitschakelen

128

l m p q t w

Diverse debug-informatie dumpen

8

c

Herstart via kexec

8

n

Prioriteit van realtime taken aanpassen

256

De Veilig herstarten functies staan in de tabel in de volgorde zoals je ze best (lees veiligst, dus met de minste kans op gegevensverlies) uitvoert (ezelsbrug: omgekeerde van het Engelse woord busier). Om deze sysrq-functies te gebruiken gebruik je de toetscombinatie Alt+Printscreen+een toets uit de eerste kolom van de tabel. Wacht na het uitvoeren van een sysrq-functies een paar seconden tot de sysrq-functie is voltooid voor je een volgende sysrq-functie start.

Is de kernel de oorzaak van de hangende computer, dan zit er niets anders op dan de computer hardwarematig uit te schakelen en terug op te starten (Aan/Uit schakelaar een tijdje indrukken).

Opdrachten

  1. Tijdens het verloop van de opdrachten ga je de logboeken in het oog houden.

    1. Installeer het pakket ksystemlog.

    2. Start K menu > Programma's > Systeem > Monitor > Systeemlogviewer.

      De openSUSE distributie voegt verschillende logboeken samen in één logboek, namelijk /var/log/messages. Dit heeft een voordeel als je een fout wilt opsporen waarvan je niet weet welk onderdeel de fout veroorzaakt (de meeste foutmeldingen komen namelijk terecht in /var/log/messages).

      1. Bepaal met behulp van werkbalkknoppen welke logboeken in openSUSE niet gebruikt worden: ...

      2. Wijzig via Instellingen > Ksystemlog instellen het gebruikte logbestand van de niet door openSUSE gebruikte logboeken naar het logbestand /var/log/messages.

    3. Bekijk de Systeemlog.

      1. Start een terminal.

      2. Voer om als systeembeheerder te kunnen werken de opdracht `su` uit.

        1. Typ het juiste wachtwoord in en bevestig met Return.

          1. Welke melding verschijnt in het venster van KSystemLog? ...

        2. Verlaat de systeembeheerdermodus met de opdracht `exit`.

      3. Probeer opnieuw om als systeembeheerder in de terminal te werken, maar geef een foutief wachtwoord in.

        1. Welke melding verschijnt in het venster van KSystemLog? ...

        Dit bewijst dat openSUSE meldingen in verband met authentificatie in het logbooek /var/log/messages (zie menu Instellingen) opslaat.

      4. Klik met de rechtermuisknop op de melding van het mislukte inloggen en bekijk de Details.

        Op welk apparaat heb je het foutieve wachtwoord ingegeven? ...

  2. Tijdens het verloop van de opdrachten ga je systeemparameters opslaan voor latere analyse.

    1. Installeer het pakket sysstat.

    2. Start het verzamelen van de systeemparameters met de opdracht
      sudo /etc/init.d/boot.sysstat start
      Welke melding krijg je daarbij? ...

  3. Zoek met KInfoCenter de volgende systeeminformatie op:

    1. In welke twee groepen worden de Apparaten ingedeeld? ...

    2. Hoeveel totaal fysiek geheugen heeft de computer? ...

    3. Welke geluidskaart zit er in de computer? ...

    4. Welke interrupt wordt door eth0 gebruikt? ...

    5. Wat is de totale grootte van de Linux systeempartitie? ...

    6. Op hoeveel GHz is de processor geklokt? ...

    7. Welke Samba versie wordt gebruikt? ...

    8. Welke resolutie heeft het scherm? ...

  4. Je gaat nu controleren of de computer niet door internet hackers wordt misbruikt. Dit kan door het netwerkverkeer te controleren.

    1. Start Systeemmonitor.

    2. Maak een Nieuw tabblad met als titel Netwerkverkeer bestaande uit één monitor.
      Hoeveel rijen en kolommen heb je daarvoor nodig? ...

    3. Plaats op de lege monitor de sensor van de netwerkinterface eth0 waarbij de ontvangen overdrachtssnelheid zichtbaar wordt.

    4. Voeg op dezelfde monitor de sensor van de netwerkinterface eth0 waarbij de verzonden overdrachtssnelheid zichtbaar wordt.

    5. Surf naar linux.pindanet.be.

    6. Sluit de browser.

    7. Wat merk je op de pas geconfigureerde monitor? ...

    8. Gebruik voor de kleuren van de grafiek de kleuren groen en rood.

    9. De computer wordt door internet hackers gebruikt als de monitor ...

    10. Sluit de Systeemmonitor.

  5. Plaats de widget Systeemmonitor op het bureaublad (meest uitgebreide).

    1. Plaats de monitor rechts bovenaan het Bureaublad.

    2. Activeer de Systeemmonitor – CPU.

      1. Wat meet deze monitor? ...

    3. Activeer de Systeemmonitor – harde schijf.

      1. Hoeveel beschikbare ruimte is er nog op de / (cijfer)? ...

    4. Activeer de Systeemmonitor – hardware-informatie.

      1. Welke grafische kaart bevat de computer? ...

    5. Activeer de Systeemmonitor – netwerk.

      1. Start Firefox.

      2. Wat hou je met deze monitor in de gaten? ...

      3. Sluit Firefox af.

    6. Activeer de Systeemmonitor – RAM.

      1. Welke twee parameters worden in deze monitor weergegeven? ...

    7. Open het dialoogvenster om de Systeemmonitor in te stellen.

      1. Om een idee te krijgen of de software en het systeem alle CPU-Cores gebruikt, bekijk je niet de totale CPU-belasting, maar de belasting van elke core afzonderlijk.

        Conclusie: ...

      2. Schakel het weergeven van de schijfruimte van de Windows-partitie uit.

  6. Tijd om de verzamelde en opgeslagen systeemparameters te bekijken:

    1. Pak het bestand ~/Documenten/Diagnose/kSar-5.x.x.zip uit naar de Persoonlijke map.

    2. Start het programma kSar met de opdracht `java -jar kSar-5.x.x/kSar.jar`.

    3. Gebruik het menu Data > Run local command...

      1. Bevestig het lokale commando `sar -A`.

    4. De map kSar in het linkerpaneel bevat een aantal documenten (grafieken) en ... (aantal) mappen.

    5. Klik op een document naar keuze en bepaal in de grafiek in het rechter deelvenster om de hoeveel minuten de systeemparameters opgeslagen werden: ...

    6. Open de map Interface.

      1. Welke soort interfaces staan er in deze map? ...

      2. Welke twee grafieken kunnen bij elk type interface geraadpleegd worden? ...

    7. Start de SSH-server op de computer met de opdracht `sudo /etc/init.d/sshd start`.

      1. Gebruik het menu Data > Launch SSH command...

      2. Doorloop de assistent zodat je als sntcursist op de computer localhost de opdracht `sar -A` kunt uitvoeren.

      3. Noteer het tijdvenster (Time range) van de waarnemingen: ...

  7. Herstart de computer.

    1. Start een terminal.

      1. Bepaal het aantal processen (Tasks) met de opdracht `top`: ...

    2. Start een tweede terminal.

      1. Start de opdracht `ogg123 Documenten/Muziek/Diablo\ Swing\ Orchestra\ -\ The\ Butcher\'s\ Ballroom/01\ -\ Balrog\ Boogie.ogg`.

      2. Bepaal in de eerste terminal hoeveel processen worden gebruikt bij het afspelen van een ogg bestand? ...

    3. Gebruik de volumeregelaars van KMix en de monitor om het volume aan te passen.

    4. Breek de muziek af met <Control><C>.

    5. Sluit de terminals.

  8. Nu gaan we de computer grafisch belasten.

    1. Bepaal het aantal processen: ...

    2. Noteer het geheugen in gebruik: ...

    3. Start de Afbeeldingsbewerker Gimp.

    4. Hoeveel processen gebruikt Gimp? ...

    5. Hoeveel geheugen wordt gebruikt? ...

    6. Open in Gimp de foto ~/Documenten/Diagnose/Paddestoelen.png.

    7. Hoeveel geheugen wordt nu gebruikt? ...

    8. Gebruik het menu Filters > Animatie > Rimpelend...

      1. Bevestig de standaard instellingen.

      2. Welke processen belasten hierbij het systeem? ...

      3. Hoeveel processen worden voor het aanmaken van de animatie ingezet (running)? ...

      4. Hoeveel % wordt het systeem daarbij belast (Cpu(s) us)? ...

    9. Gebruik in het pas verschenen afbeeldingsvenster het menu Filters > Animatie > Afspelen...

      1. Start het afspelen van de animatie.

      2. Welk(e) proces(sen) belast(en) hierbij het systeem? ...

      3. Hoeveel processen worden voor het ogenblik ingezet? ...

      4. Hoeveel % wordt het systeem daarbij belast? ...

    10. Sluit het animatievenster, alle afbeeldingsvensters (zonder op te slaan) en uiteindelijk Gimp.

  9. Om (nieuwe) computers, besturingssystemen en software te testen bestaan er allerhande testen.

    1. Pak het bestand ~/Documenten/Diagnose/phoronix-test-suite-2.6.1.tar.gz uit naar de Persoonlijke map.

    2. Start het programma met de opdrachten

        cd phoronix-test-suite/
        ./
        phoronix-test-suite

      1. Welke melding krijg je? ...

      2. Installeer het noodzakelijke extra pakket.

      3. Om de Test Suite grafisch te bedienen, installeer je via het internet het pakket php5-gtk.

    3. Start de Test Suite nu met de opdracht
      ./phoronix-test-suite gui

    4. Bevestig de User Agreement (per onderdeel).

    5. Installeer de test Compile Bench.

    6. Voer van de geïnstalleerde test alleen de subtest Initial Create uit.

      1. Wees geduldig.
        Grondig testen vraagt veel tijd.

    7. Bekijk de resultaten van de test.

      1. In welk programma worden de testresultaten geopend? ...

      2. In welk bestandsformaat zijn de testresultaten opgeslagen (zie adresbalk)? ...

      3. Aangezien deze de gebruikte browser de testresultaten alles behalve overzichtelijk weergeeft, kopieer je de inhoud van de adresbalk.

        Start Firefox en plak het gekopieerde adres in de adresbalk.

      4. Met welke snelheid werd de Initial Create test van de Compile Bench uitgevoerd? ... MB/s

    De Compile Bench test is een eenvoudige test. Het uitvoeren en vergelijken van testen is een complexe materie. De testen hebben soms complexe afhankelijkheden en vergen daardoor een doorgedreven systeemkennis (zowel van de hardware als van het besturingssysteem). Om een computer snel aan een test te onderwerpen bestaat er van deze Test Suite een live versie: PTS Desktop Live.

  10. Voor de spelfanaten zijn de grafische mogelijkheden van een systeem belangrijk.

    1. Installeer het 3D-test programma met de opdracht:
      sh Documenten/Diagnose/Unigine_Heaven-2.1.run

    2. Start het 3D-test programma met de opdrachten
      cd Unigine_Heaven/
      ./x64_1024x768_windowed_tess_disabled.sh

    3. Laat het testprogramma rustig starten.

    4. Noteer het maximum aantal beelden per seconde bovenaan rechts in het scherm ... FPS

    3D tests voer je best uit op systemen waarbij de stuurprogramma's van de 3D grafische kaart geïnstalleerd zijn (NVIDIA, ATI, Intel stuurprogramma's zijn open source en worden standaard geïnstalleerd).

  11. Webserver beheerders gebruiken Webalizer om de enorme logboeken overzichtelijk weer te geven. XAMPP is een pakket waarmee eenvoudig een complete webserver opgezet kan worden.

    1. Start een terminal.

    2. Voer als systeembeheerder de opdracht `tar xvfz Documenten/Diagnose/xampp-linux-1.x.x.tar.gz -C /opt` uit.

      Wat doet deze opdracht? ...

    3. Start de webserver met de opdracht `sudo /opt/lampp/lampp start`.

    4. Test de webserver door te surfen naar http://localhost.

    5. Kies een taal.

    6. Klik op de hyperlink webalizer.

    7. Er wordt een grafiek en een tabel opgebouwd.

      1. De grafiek toont het gebruik van de webserver.

      2. De tabel geeft een overzicht in de vorm van getallen.

    8. Klik op de hyperlink in de tabel (maand).
      Er worden opnieuw tabellen en grafieken opgebouwd, maar nu enkel over de maand waarop je klikte. De hier gepresenteerde data is afkomstig van verschillende logboeken, die door webalizer verwerkt worden tot tabellen en grafieken in een HTML-pagina. De webserver-beheerder kan uit deze gegevens afleiden hoe intensief de webserver gebruikt wordt (per dag en per uur), welke en hoeveel keer pagina's bezocht werden, via welke URL ze de webserver binnenkwamen en verlieten, welke sites werden bezocht en vanuit welke landen de bezoekers komen. Deze gegevens kunnen webserver-beheerders helpen bij de organisatie en onderhoud van de webserver. Een voorbeeld: een back-up van de webpagina's van klanten gebeurt het best op de kalme momenten van de dag. Een opwaardering van de software in een periode waarbij de webserver minder gebruikt wordt. Enz.
      Opmerking: Als je deze webserver zelf wilt gebruiken, moet je deze wel nog configureren. Met andere woorden, lees de documentatie en bekijk de veiligheidpagina's, anders wordt uw webserver een paradijs voor hackers.

    9. Sluit de browser.

    10. De webserver kun je stoppen met de opdracht `sudo /opt/lampp/lampp stop`.

    11. Maak zelf een opstartscript en zorg dat bij het opstarten van Linux de webserver automatisch wordt opgestart.

  12. Spreek met een klasgenoot af zodat op zijn of haar computer systat draait.

    1. Gebruik KSar om de computer op afstand te monitoren.

  13. Voer in een terminal de Fork Bomb uit, met andere woorden de opdracht:

    :(){ :|:& };:

    1. Herstart de computer op de meest veilige manier terug op.
      Noteer het paginanummer van de cursus met de hiervoor gebruikte stappen: ...