Provided by: systemtap-doc_4.7-1_amd64 bug

JMÉNO

       stap-server - kompilační server systemtapu

POUŽITÍ

       [  service  ]  stap-server  {  start  |  stop  |  restart  |  condrestart  | try-restart |
       force-reload | status } [ options ]

POPIS

       Kompilační server systemtapu (stap-server)  je  síťová  služba.  Přijímá  zabezpečené  SSL
       spojení  od  klienta  a  vykonává  požadavky  na spuštění příkazu stap . Každý stap-server
       inzeruje svoji přítomnost a konfiguraci na lokální síti prostřednictvím  mDNS  (avahi),  a
       tím umožňuje klientům automatickou detekci serverů.

       stap-server nabízí:

       •   síťovou službu umožňující přístup ke kompilačním serverům systemtapu

       •   pohodlné ovládání nakonfigurovaných, nebo "ad-hoc" kompilačních serverů systemtapu

ARGUMENTY

       Musí být určena alespoň jedna z následujících voleb:

       start  Spustit  servery. Určené servery budou nastartovány. Pokud není určen žádný server,
              spustí se nakonfigurované servery. Pokud není žádný server  nakonfigurován,  spustí
              se server pro verzi jádra architekturu odpovídající hostitelskému stroji.

              Pokud  je  určený server již spuštěn, bude pro něj požadavek na spuštění ignorován.
              Pokud selže start daného serveru, operace skončí chybou.

       stop   Zastavit server(y). Určené servery se  zastaví.  Pokud  žádný  server  není  určen,
              zastaví  se  všechny  běžící  servery.  Pokud  určený server neběží, skončí pro něj
              "stop" akce úspěchem. Pokud pokus o zastavení serveru selže, stap-server selže též.

       restart
              Zastavit a znovu nastartovat služby.  Specifikované  servery  se  zastaví  a  znovu
              nastartují.  Pokud není žádný server určen, dojde k pokusu o restart všech serverů.
              Pokud žádné neběží, bude se 'restart' rovnat pokusu o start.

       condrestart
              Zastavit a znovu nastartovat služby.  Specifikované  servery  se  zastaví  a  znovu
              nastartují. Pokud určený server neběží, nebude nastartován. Pokud není žádný server
              určen, dojde k pokusu o restart všech běžících serverů. Pokud žádný server  neběží,
              nestane se nic.

       try-restart
              Tato akce je shodná s condrestart.

       force-reload
              Zastavit  všechny  běžící servery, znovu načíst konfigurační soubory, a restartovat
              služby jako by byl dán příkaz start .

       status Vypsat informaci o stavu serverů. Vypíše  informaci  o  specifikovaných  serverech.
              Pokud  nebyl  žádný server specifikován, vypíše se informace o stavu všech běžících
              serverů.

VOLBY

       Pro upřesnění argumentů je možno použít následující volby:

       -c configfile
              Určuje  globální  konfigurační  soubor  jako   dodatek   k   výchozímu   globálnímu
              konfiguračnímu  souboru  popsanému  níže.  Zadaný soubor bude zpracován po výchozím
              globálním konfiguračním souboru. Pokud se volba -c použije více  než  jednou,  bude
              brán zřetel jen na poslední použití.

       -a architecture
              Tato  volba  určuje  cílovou architekturu serveru a je analogická volbě -a programu
              stap. Viz manuálová stránka stap(1) , která obsahuje podrobnosti.

              Výchozí architektura je architektura hostitelského systému.

       -r kernel-release
              Určuje verzi cílového jádra a je analogická volbě -r programu stap.  Viz  manuálová
              stránka  stap(1) , která obsahuje podrobnosti. Výchozí verze je verze hostitelského
              systému.

       -I path
              Tato volba určuje  dodatečné  umístění,  ve  kterém  budou  servery  hledat  tapset
              skripty. Je analogická volbě -I příkazu stap. Viz manuálová stránka stap(1) , která
              obsahuje podrobnosti.

       -R path
              Tato volba určuje umístění zdrojových kódů pro překlad jaderného modulu  systemtapu
              pro použití systemtap serverů a je analogická volbě -R programu stap. Viz manuálová
              stránka stap(1) , která obsahuje podrobnosti.

       -B options
              Tato volba určuje volby, které se předají příkazu make  při  sestavování  systemtap
              modulu  a  je  analogická  volbě  -B programu stap. Viz manuálová stránka stap(1) ,
              která obsahuje podrobnosti.

       -i     Tato volba určuje systemtap server, který obsluhuje všechny verze jádra, které jsou
              nainstalovány v /lib/modules/.

       -n nickname
              Umožňuje  určit  server  pomocí  přezdívky. Pokud se nastaví -n, bude použit běžící
              server s danou přezdívkou. Pokud se takový server nenajde, budou na danou přezdívku
              prohledány  konfigurační  soubory  pro  výchozí servery, nebo bude prohledána cesta
              určená v globálním konfiguračním souboru,  nebo  v  konfiguračním  souboru  určeném
              přepínačem  -c.  Pokud se požadovaný server najde, použijí se pro něj přepínače -a,
              -r, -I, -R, -B a -u. Pokud se žádný server pro danou přezdívku nenajde  a  akce  je
              start  (nebo akce která se tak chová) (viz ARGUMENTY), server s danou přezdívkou se
              nastartuje.

       -p pid Tato volba umožňuje určit server prostřednictvím ID procesu. Pokud se  nastaví  -p,
              bude  hledán  běžící  server  s  daným PID. Pokud se takový nenajde, vznikne chyba.
              Pokud se takový server najde, předají se mu volby -a, -r, -I, -R, -B a -u.

       -u user-name
              Každý  kompilační  server  systemtapu  se  za  normálních  okolností  spouští   pod
              uživatelem   stap-server   (pro  initscript)  nebo  jako  uživatel,  který  spouští
              stap-server, pokud neexistuje jiné nastavení (viz sekce SOUBORY). Tato volba určuje
              uživatele,  pod  kterým  poběží  servery.  Takový  uživatel musí být členem skupiny
              stap-server.

       --log logfile
              Tato volba umožňuje nastavit pro každý  server  separátní  log  soubor.  Volbu  lze
              opakovat a tím nastavit log soubor každému ze specifikovaných serverů zvlášť. Pokud
              je specifikováno více serverů, než voleb --log, použije se  pro  zbývající  servery
              výchozí log soubor (viz sekce SOUBORY).

       --port port-number
              Nastaví  port  pro  každý specifikovaný server. Volbu lze opakovat a určit tak port
              pro všechny specifikované servery. Pokud je specifikováno více  serverů  než  voleb
              --port, bude pro zbývající servery zvolen náhodný port.

       --ssl certificate-db-path
              Tato  volba umožňuje specifikaci separátní NSS databáze pro každý server, Volbu lze
              opakovat a aplikovat ji na jednotlivé specifikované servery. Pokud je specifikováno
              více  serverů, než voleb --ssl, bude pro zbývající servery použita výchozí databáze
              (viz sekce  SOUBORY).

       --max-threads threads
              Určuje počet vláken pro obsluhu současných požadavků. Pokud  threads  ==  0,  budou
              všechny  požadavky  obsluhovány sériově v jediném - hlavním vlákně. Výchozí hodnota
              je počet dostupných jader procesoru.

KONFIGURACE

       Pomocí konfiguračních souborů je možné:

       •   určit globální konfiguraci logování, konfigurační soubory serverů, stavové  soubory  a
           další globální parametry.

       •   určit které servery se nastartují ve výchozím nastavení.

Globální Konfigurace

       Globální  konfigurační  soubor  obsahuje  nastavení globálních proměnných, které ovlivňují
       celkovou operaci služby. Každá řádka začínající znakem '#' se  ignoruje.  Všechny  ostatní
       řádky musejí mít tvar VARIABLE=VALUE. Nejde o shell skript. Celý zbytek řáky za znakem '='
       bude interpretován jako hodnota a ta bude přiřazena příslušné proměnné.

       Lze použít následující proměnné:

       CONFIG_PATH
              Absolutní cesta k adresáři, který obsahuje výchozí konfiguraci serverů.

       STAT_PATH
              Absolutní cesta k adresáři se status soubory.

       LOG_FILE
              Absolutní cesta k log souboru.

       STAP_USER
              Uživatel pod kterým stap-server(y)  poběží.  Výchozí  hodnota  je  stap-server  pro
              initskript, jinak uživatel, který spouští stap-server.

       Následuje příklad globálního konfiguračního souboru:

              CONFIG_PATH=~<user>/my-stap-server-configs
              LOG_FILE=/tmp/stap-server/log

Individuální konfigurace serveru

       Pokud pro akci start (nebo jí podobnou akci) nebyly specifikovány konkrétní servery, budou
       nastartovány servery odpovídající jednotlivým individuálním konfiguračním souborům.  Každý
       konfigurační  soubor  obsahuje  nastavení  proměnných,  které se použijí ke zkonfigurování
       individuálního serveru.

       Každá řádka začínající znakem '#' se  ignoruje.  Všechny  ostatní  řádky  musí  být  tvaru
       VARIABLE=VALUE. Nejde o shell skript. Celý zbytek řádku za znakem '=' se interpretuje jako
       hodnota.

       Každý konfigurační soubor musí mít název s příponou .conf. Viz stappaths(7) kde je popsáno
       výchozí  umístění  těchto  souborů.  Toto  výchozí  umístění  může být změněno v globálním
       konfiguračním souboru pomocí volby -c (viz OPTIONS).

       Lze použít následující proměnné:

       ARCH   Určuje cílovou architekturu pro daný server a odpovídá přepínači  -a  (viz  VOLBY).
              Pokud  ARCH  není  nastavena,  použije  se  architektura  hostitelského stroje jako
              výchozí.

       RELEASE
              Určuje verzi jádra pro daný server a odpovídá volbě -r (viz VOLBY).  Pokud  RELEASE
              není nastavena, použije se release hostitelského stroje jako výchozí.

       BUILD  Určuje  volby,  které  se  předají  příkazu  make  při sestavování jaderného modulu
              systemtapu. Jde o proměnnou typu pole, kde  každý  prvek  odpovídá  volbě  -B  (viz
              VOLBY).  Pomocí  BUILD=STRING  se  pole  vymaže a první prvek se nastaví na STRING.
              Pomocí BUILD+=STRING se do pole přidá STRING jako další prvek.

       INCLUDE
              Určuje seznam adresářů, ve kterých bude server hledat tapset skripty. Jde  o  pole,
              kde   každý  prvek  odpovídá  přepínači  -I,  viz  VOLBY).  Prostřednictvím  zápisu
              INCLUDE=PATH  se pole smaže a první jeho prvek se nastaví na  PATH.  Pomocí  zápisu
              INCLUDE+=PATH se do pole přidá PATH jako další prvek.

       RUNTIME
              Určuje  adresář,  který  obsahuje zdrojové soubory potřebné pro sestavení jaderného
              modulu systemtapu. Odpovídá přepínači -R (viz VOLBY).

       USER   Určuje uživaltele, pod kterým server poběží a odpovídá volbě -u (viz VOLBY).

       NICKNAME
              Odpovídá přezdívce pro server a také volbě -n (viz VOLBY).

       LOG    Určuje umístění logovacího souboru pro daný server  a  odpovídá  volbě  --log  (viz
              VOLBY).

       PORT   Určuje síťový port, na kterém má daný server poslouchat. Odpovídá volbě --port (viz
              VOLBY).

       SSL    Určuje umístění certifikační databáze NSS, kterou má daný server použít a  odpovídá
              volbě --ssl (viz VOLBY).

       MAXTHREADS
              Určuje  maximální  počet  vláken  pro  obsluhu  současných požadavků daným serverem
              Odpovídá volbě --max-threads (viz VOLBY).

       Následuje ukázka konfiguračního souboru:

              ARCH=
              USER=
              RELEASE=
              NICKNAME=native

       Tím, že ponecháme ARCH, USER, a RELEASE prázdné  docílíme  toho,  že  se  pro  ně  použijí
       výchozí hodnoty.

       Konkrétnější příklad:

              ARCH=i386
              RELEASE=2.6.18-128.el5
              PORT=5001
              LOG=/path/to/log/file

       Komplikovanější příklad:

              USER=serveruser
              RELEASE=/kernels/2.6.18-92.1.18.el5/build
              INCLUDE=/mytapsets
              INCLUDE+=/yourtapsets
              BUILD='VARIABLE1=VALUE1 VARIABLE2=VALUE2'
              DEFINE=STP_MAXMEMORY=1024
              DEFINE+=DEBUG_TRANS
              RUNTIME=/myruntime
              NICKNAME=my-server
              SSL=/path/to/NSS/certificate/database

AUTENTIZACE

       Bezpečnost   SSL  spojení  mezi  klientem  a  serverem  závisí  na  správném  zacházení  s
       certifikáty.

       Důvěryhodnost daného systemtap serveru nelze určit automaticky bez  důvěryhodné  autority,
       která  vydala certifikát. To nemusí být praktické pro každodenní použití, proto se klienti
       autentizují proti  své  vlastní  databázi  důvěryhodných  certifikátů.  V  tomto  kontextu
       vytvoření relace důvěry znamená přidání serverového certifikátu do databáze klienta.

       Pro  initscript lokálního serveru se toto děje automaticky. Jakmile se nainstaluje balíček
       systemtap-server, certifikát serveru pro výchozího uživatele (stap-server) se  automaticky
       vygeneruje  a přidá do databáze lokálního klienta. Lokální klient tak automaticky považuje
       lokální server za důvěryhodný "module signer".

       Je-li stap spuštěn neprivilegovaným uživatelem (t.j. uživatelem, který není root, ani člen
       skupiny  stapdev,  ale  může  být  členem  skupiny  stapusr a/nebo stapsys) automaticky se
       použijí volby --use-server a --privilege. To znamená, že neprivilegovaní  uživatelé  mohou
       používat   lokální  stap  server  v  neprivilegovaném  režimu  bez  zvláštních  nastavení.
       Neprivilegovaní uživatelé mohou též používat kompilační server  prostřednictvím  přepínačů
       --use-server a --privilege, ale samozřejmě nebudou moci zavést systemtap modul do jádra (s
       volbou -p4 se o to systemtap nebude pokoušet).

       Aby bylo možno použít stap server  na  vzdáleném  stroji,  je  potřeba  nainstalovat  jeho
       serverový  certifikát  do klienta. Viz volba --trust-servers v manuálové stránce stap(1) a
       také soubor README.unprivileged mezi zdrojovými soubory systemtapu.

PŘÍKLADY

       Jednoduché příklady shrnuje manuálová stránka stapex(3stap).

       Nastartovat  zkonfigurovaný  server,  nebo  výchozí  server  pokud   žádný   server   není
       zkonfigurovaný:

        $ [ service ] stap-server start

       Spustit   systemtap   server,   který   bude  obsluhovat  všechna  jádra  nainstalovaná  v
       /lib/modules:

        $ [ service ] stap-server start -i

       Vypsat informace o běžících serverech:

        $ [ service ] stap-server status

       Nastartovat server s konfigurací podobnou jinému již běžícímu serveru s  danou  přezdívkou
       NICKNAME, ovšem pro odlišnou architekturu:

        $ [ service ] stap-server start -n NICKNAME -a ARCH

       Nastartovat server pro nenainstalované jádro (křížová kompilace)

        $ [ service ] stap-server start -a ARCH -r /BUILDDIR

       Zastavit  jeden  ze  serverů  odkazem  na  jeho  PID (dle stap-server status): stap-server
       status):

        $ [ service ] stap-server stop -p PID

       Spustit skript prostřednictvím kompilačního serveru:

        $ stap SCRIPT --use-server

       Spustit skript jako neprivilegovaný uživatel pomocí kompilačního serveru:

        $ stap SCRIPT

       Zastavit všechny kompilační servery:

        $ [ service ] stap-server stop

       Restartovat server po změně globální konfigurace  a/nebo  když  byl  přidán  nový  ,  nebo
       odebrán, či změněn existující server:

        $ [ service ] stap-server force-reload

BEZPEČNOST A OCHRANA SOUKROMÍ

       Systemtap je systémový administrační nástroj. Zpřístupňuje interní datové struktury jádra,
       které mohou obsahovat privátní informace. Přečtěte si  manuálovou  stránku  stap(1)  která
       přináší více informací.

       Jako  síťový  server  by  měl stap-server být aktivován s rozvahou, aby se omezila všechna
       relevantní rizika. Zvažte následující opatření:

       1      Spouštějte stap-server pod běžným uživatelem, nikdy ne pod uživatelem root.

              Když je stap-server spuštěn jako služba (t.j. service stap-server ...), pak výchozí
              chování je, že všechny servery běží pod uživatelem stap-server. Při přímém spuštění
              běží service stap-server pod uživatelem který jej vyvolal.  V  každém  případě  lze
              uživatele změnit volbou -u, nebo případně nastavením STAP_USER=username v globálním
              konfiguračním  souboru,  nebo  nastavením  USER=username  v  konfiguračním  souboru
              individuálního  serveru.  Daný  uživatel  musí  mít  právo spustit proces pod jiným
              uživatelem. Vice informací viz KONFIGURACE.

              Zvolený uživatel musí mít také právo  zapisovat  do  logovacího  souboru.  Umístění
              logovacího  souboru  lze upravit nastavením LOG_FILE=path v globálním konfiguračním
              souboru. Vice informací viz KONFIGURACE.

              Zvolený uživatel musí mít právo čtení i  zápisu  do  adresáře  obsahujícího  status
              soubory.   Toto   umístění   lze  upravit  nastavením  STAT_PATH=path  v  globálním
              konfiguračním souboru. Vice informací viz KONFIGURACE.

              Zvolený uživatel musí mít právo čtení  a  zápisu  pro  adresář,  kde  se  sestavuje
              uprobes.ko a související soubory.

              Systemtap server nepoběží, pokud zvoleným uživatelem je root.

       2      Spusťte  stap-server  s omezeními na maximální čas běhu, velikost souboru, velikost
              použité paměti tak, aby ani potenciálně chybné vstupy nezpůsobily škody.

              Pokud uživatelem, pod kterým server  běží,  je  stap-server,  pak  každý  požadavek
              server obsluhuje v rámci limitů nastavených v souboru ~stap-server/.systemtap/rc. V
              opačném případě nejsou žádné limity nastaveny.

       3      Spusťte stap-server při  nastavené  proměnné  prostřdí  TMPDIR,  která  ukazuje  do
              odděleného umístění, kde jsou zapnuty uživatelské kvóty. Tím se zabrání nežádoucímu
              zaplnění souborového systému.

              Výchozí TMPDIR je /tmp/.

       4      Aktivujte firewall tak, aby klientské požadavky mohly  přicházet  jen  z  relativně
              bezpečných sítí.

              Pro  automatickou volbu serverů klienty je třeba nainstalovat avahi jak na serveru,
              tak i na klientovi. Firewall musí propouštět mDNS zprávy.

       Kompilační server systemtapu a související nástroje používají k síťové komunikaci SSL  jak
       je  implementovaná  v  rámci  NSS. NSS se také používá pro správu certifikátů. Související
       databáze certifikátů musí být odpovídajícím způsobem  chráněná,  aby  nedošlo  ke  snížení
       bezpečnosti   systému.  Pro  navýšení  bezpečnosti  kontroluje  systemtap  klient  správná
       přístupová oprávnění dříve než přistoupí k databázi certifikátů.

SOUBORY

       Důležité soubory a jim odpovídající umístění shrnuje manuálová stránka
              stappaths (7).

VIZ TÉŽ

       stap(1),
       staprun(8),
       stapprobes(3stap),
       stappaths(7),
       stapex(3stap),
       avahi,
       ulimit(1),
       NSS

CHYBY

       Použijte  projektovou  bugzillu,  nebo  mailing  list.   http://sourceware.org/systemtap/,
       <systemtap@sourceware.org>.

       error::reporting(7stap), https://sourceware.org/systemtap/wiki/HowToReportBugs

                                                                                   STAP-SERVER(8)