lms_daemon
no way to compare when less than two revisions
Różnice
Różnice między wybraną wersją a wersją aktualną.
Poprzednia wersjaNowa wersja | |||
— | lms_daemon [2013/01/14 20:44] – ceho | ||
---|---|---|---|
Linia 1: | Linia 1: | ||
+ | ====6.1. Informacje podstawowe==== | ||
+ | Napisany w języku C program ma ułatwiać zarządzanie usługami. Sam demon odpowiada za uruchamianie odpowiednich modułów na żądanie użytkownika. Moduły natomiast, służą do tworzenia plików konfiguracyjnych na podstawie danych z bazy LMS'a oraz restartowania odpowiednich usług na serwerze. Spełniają także inne funkcje np. zbieranie statystyk, badanie aktywności hostów, naliczanie opłat, powiadamianie o zaległościach. | ||
+ | |||
+ | ===6.1.1. Wymagania=== | ||
+ | Oto lista rzeczy, które lmsd potrzebuje już na etapie kompilacji: | ||
+ | * interfejs użytkownika LMS-UI | ||
+ | * libmysqlclient (tj. pełnej instalacji MySQL' | ||
+ | * libdl (to w każdej dzisiejszej dystrybucji jest) | ||
+ | * kompilator języka C (testowany na gcc-2.95.x i nowszych) | ||
+ | * moduł ggnotify wymaga biblioteki libgadu i jej plików nagłówkowych | ||
+ | * moduł parser wymaga pakietu bison w wersji 1.875 lub nowszej oraz pakietu flex | ||
+ | * moduły ewx-* wymagają biblioteki net-snmp i jej plików nagłówkowych. | ||
+ | |||
+ | ===6.1.2. Instalacja=== | ||
+ | Przed kompilacją należy przy pomocy skryptu ./configure ustalić opcje przedstawione na poniższym listingu (w nawiasach podano wartości domyślne opcji): | ||
+ | < | ||
+ | --help | ||
+ | --enable-debug0 | ||
+ | --enable-debug1 | ||
+ | --with-pgsql | ||
+ | --with-mysql | ||
+ | --prefix=PREFIX | ||
+ | --lmsbindir=DIR | ||
+ | --lmslibdir=DIR | ||
+ | --libdir=DIR | ||
+ | --incdir=DIR | ||
+ | --inifile=FILE | ||
+ | </ | ||
+ | |||
+ | Zatem wymagane jest określenie bazy z jakiej będziemy korzystać (-with-mysql lub -with-pgsql) oraz położenia bibliotek dostarczanych wraz z bazą (--incdir, --libdir). Możliwe jest zmuszenie demona do korzystania z plików konfiguracyjnych zamiast bazy danych. Nie jest możliwe używanie obu sposobów przechowywania konfiguracji, | ||
+ | |||
+ | < | ||
+ | # ./configure --with-pgsql --libdir=/ | ||
+ | </ | ||
+ | |||
+ | Następnie kompilacja i instalacja (umieszczenie demona w katalogu określonym zmienną --prefix): | ||
+ | |||
+ | < | ||
+ | # make && make install | ||
+ | </ | ||
+ | |||
+ | Skompilowane moduły (pliki z rozszerzeniem .so), znajdujące się w katalogu modules/ | ||
+ | |||
+ | ===6.1.3. Konfiguracja=== | ||
+ | Całą konfigurację demona i modułów przeprowadza się przy pomocy LMS-UI w menu Konfiguracja -> Demon. Konfigurację modułów omówiono w osobnych rozdziałach ich dotyczących. Podstawowe parametry pracy demona i dane do połączenia z bazą danych podaje się jako opcje linii komend, zgodnie z poniższym listingiem: | ||
+ | |||
+ | < | ||
+ | --dbhost -h host[: | ||
+ | --dbname -d nazwa_bazy | ||
+ | --dbuser -u użytkownik | ||
+ | --dbpass -p hasło | ||
+ | --hostname -H nazwa_hosta | ||
+ | | ||
+ | ta musi zgadzać się z nazwą hosta podaną w konfiguracji hostów | ||
+ | --pidfile -P pid_file | ||
+ | --ssl -s | ||
+ | --command -c polecenie | ||
+ | tzn. co minutę (domyślnie: | ||
+ | --instance -i " | ||
+ | | ||
+ | --reload -q wykonuje przeładowanie i kończy pracę | ||
+ | --reload-all -r wykonuje przeładowanie wszystkich instancji (także tych, które mają | ||
+ | | ||
+ | --foreground -f działa na pierwszym planie (nie forkuje się) | ||
+ | --version -v | ||
+ | </ | ||
+ | |||
+ | Opcje dostępu do bazy są także odczytywane ze zmiennych powłoki: LMSDBPASS, LMSDBNAME, LMSDBUSER, LMSDBHOST, LMSDBPORT. | ||
+ | |||
+ | **Lista instancji składa się z nazw instancji oddzielonych spacją. W nazwach instancji zawierających spacje należy zamienić je na znaki ' | ||
+ | ** | ||
+ | |||
+ | Konfiguracja demona jest podzielona na hosty (umożliwiając osobne konfigurowanie i przeładowywanie demonów zainstalowanych na różnych komputerach/ | ||
+ | |||
+ | Instancja oprócz parametrów konfiguracyjnych wybranego modułu zawiera opcje podstawowe, takie jak: | ||
+ | |||
+ | ^ Nazwa ^ Opis ^ Przykład ^ | ||
+ | | Nazwa | Nazwa instancji unikalna w obrębie jednego hosta. | system | | ||
+ | | Priorytet | Liczba określająca priorytet, czyli kolejność wykonania instancji. Instancja o najniższym numerze zostanie wykonana jako pierwsza. | 10 | | ||
+ | | Moduł | Nazwa pliku modułu (z rozszerzeniem lub bez). Jeśli nie podano ścieżki demon będzie szukał modułu w katalogu PREFIX/ | ||
+ | | Crontab | Czas wykonania modułu określany w sposób podobny do używanego w programie crontab. Wszystkie dane muszą być numeryczne. Podany przykład spowoduje wykonywanie wybranej instancji co 5 minut, w godzinach od 8 do 18. Gdy opcja ta jest pusta instancja zostanie wykonana wyłącznie podczas przeładowania. Domyślnie: pusta. | Przykład: */5 8-18 * * * | | ||
+ | |||
+ | **Jakakolwiek zmiana w konfiguracji nie wymaga restartu demona.** | ||
+ | |||
+ | ===6.1.4. Uruchomienie=== | ||
+ | Program domyślnie działa w trybie demona. Wtedy przeładowanie konfiguracji i usług jest dokonywane na żądanie, przy użyciu menu ' | ||
+ | |||
+ | Innym sposobem uruchomienia jest jednorazowy reload z wykorzystaniem opcji -q. Ten sposób najczęściej używany jest w celach testowych, a w połączeniu z opcją -i pozwala na wykonanie dowolnych instancji z pominięciem pozostałych zapisanych w bazie oraz bez względu na wartość opcji ' | ||
+ | |||
+ | ====6.2. Moduły==== | ||
+ | |||
+ | ^Nazwa | ||
+ | |[[system]] | ||
+ | |[[parser]] | ||
+ | |[[dhcp]] | ||
+ | |[[cutoff]] | ||
+ | |[[dns]] | ||
+ | |[[ethers]] | ||
+ | |[[hostfile]] | ||
+ | |[[notify]] | ||
+ | |[[ggnotify]] | ||
+ | |[[payments]] | ||
+ | |[[oident]] | ||
+ | |[[tc]] | ||
+ | |[[tc-new]] | ||
+ | |[[traffic]] | ||
+ | |[[pinger]] | ||
+ | |[[ewx-pt]] | ||
+ | |[[ewx-stm]] | ||
+ | |[[ewx-stm-channels]] |Konfiguracja EtherWerX Standalone Traffic Managera (ze rozszerzoną obsługą kanałów)| | ||
+ | |||
+ | |||
+ | |||
lms_daemon.txt · ostatnio zmienione: 2013/01/15 00:00 (edycja zewnętrzna)