RSS Feed

Posts Tagged ‘debian’

  1. Debian testing, collectd, rrdtool plugin: rrd_update_r failed, minimum one second step i zatkane logi.

    Listopad 20, 2012 by 0verlord

    Ok, trafiłem bug w collectd, albo w Debianie testingu, albo w czymkolwiek. Chwilowo jestem za bardzo zarobiony, temat zgłębiać dokładniej. Za to umiem to naprawić ha! 🙂

    Ogólnie logi zapycha taki komunikat:

    Nov 20 21:52:21 baza collectd[7690]: rrdtool plugin: rrd_update_r (/var/lib/collectd/rrd/baza/df-root/df_complex-used.rrd) failed: /var/lib/collectd/rrd/baza/df-root/df_complex-used.rrd: illegal attempt to update using time 1353444741 when last update time is 1353444741 (minimum one second step)
    Nov 20 21:52:31 baza collectd[7690]: rrdtool plugin: rrd_update_r (/var/lib/collectd/rrd/baza/df-root/df_complex-free.rrd) failed: /var/lib/collectd/rrd/baza/df-root/df_complex-free.rrd: illegal attempt to update using time 1353444751 when last update time is 1353444751 (minimum one second step)
    Nov 20 21:52:31 baza collectd[7690]: rrdtool plugin: rrd_update_r (/var/lib/collectd/rrd/baza/df-root/df_complex-reserved.rrd) failed: /var/lib/collectd/rrd/baza/df-root/df_complex-reserved.rrd: illegal attempt to update using time 1353444751 when last update time is 1353444751 (minimum one second step)
    Nov 20 21:52:31 baza collectd[7690]: rrdtool plugin: rrd_update_r (/var/lib/collectd/rrd/baza/df-root/df_complex-used.rrd) failed: /var/lib/collectd/rrd/baza/df-root/df_complex-used.rrd: illegal attempt to update using time 1353444751 when last update time is 1353444751 (minimum one second step)

    Wygląda, jak by baza była za szybko odświeżana, stąd komunikat. Internet mówi, że takie coś często się dzieje, jeżeli chodzą dwie instancje collectd’a. Nie mój przypadek.

    Na co należy tutaj dokładnie popatrzeć, to plik z bazą rrd, który wskazuje na błędną konfigurację plugina sprawdzającego miejsce na dysku, tj. konkretniej defaultowy df.
    O co dokładnie chodzi? Ano o to, że plugin df sprawdza sobie /proc/mounts i co tam widzi w Debianie Testingu? Ano np. coś takiego:

    rootfs / rootfs rw 0 0
    (śmietnik)
    /dev/disk/by-uuid/(tutaj uid) / ext4 rw,relatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
    (nieśmietnik)

    No więc plugin znajduje dwa razy „/” i aktualizuje zgodnie z planem. Aktualizacja jest za szybko, więc rrd zgłasza błąd.

    Jak to naprawić? Dodać konfig plugina wg instrukcji poniżej (bo defaultowo tenże plugin nie ma konfiguracji).
    Co to robi? Znajduje filesystem typu rootfs, po czym go ignoruje.

    <Plugin df>
    FSType "rootfs"
    IgnoreSelected true
    </Plugin>

    Tadam.{cokolwiek}.


  2. [UPDATED do Debiana Wheezy] Hetzner, instalacja Debiana, partycja bios_grub, LVM i RAID

    Wrzesień 27, 2012 by 0verlord

    UPDATE: debian wheezy wymaga trochę więcej miejsca na partycji /boot niż 200M – inaczej image nie bardzo chce się wypakować. Dałem 512M i poszło.
    Czyli:
    PART /boot reiserfs 512M

    (oczywiście filesystem wg własnych upodobań)

    Automatyczny instalator Debiana w Hetznerze pozwala stworzyć w zasadzie dowolną konfigurację partycji pod system. Pomijając te oczywiste konfiguracje z kilkoma partycjami na krzyż, można także wykonać dowolnie skomplikowany zestaw. Np. LVM na SOFT RAIDzie 1 czy też dodanie partycji typu bios_grub.
    Być może moje odkrycia są opisane w hetznerowym wiki, ale nie dałem rady przez nie przebrnąć. Jest zrobione za bardzo „po niemiecku”.

    W każdym razie, należy zacząć od klikania w panel https://robot.your-server.de i wybrania opcji „rescue system”. Potem tylko zapisać wygenerowane hasło i kliknąć w zakładkę „reset”.

    Po zalogowaniu się na system reanimacyjny, wydajemy mroczne polecenie
    installimage

    Uruchamia się instalator w trybie interaktywnym, od razu wrzucając nas do jedynej potrzebnej i sensownej opcji – partycjonera dysku.

    Moje założenie było takie: stworzyć 3 partycje: 1. bios_grub, 2. /boot i macierz RAID 1 pod LVMa.

    NA LVMie miały być partycje wg schematu:

    1. / (root), 20GB
    2. swap, 2x ram
    3. /tmp, 10GB
    4. /var, 20GB
    5. /home reszta

    Jak to teraz poustawiać? Ano tak:

    opcje obowiązkowe w pliku to:

    SWRAID 1
    SWRAIDLEVEL 1

    Pierwsza włącza raid, druga włącza go w trybie mirror. Jeżeli ktoś chce inaczej, można też wybrać stripping (0).

    można też ustawić HOSTNAME.

    Potem konfiguracja partycji, wg schematu:

    PART mountpoint/lvm filesystem/VG rozmiar

    A potem już konfiguracja właściwa:

    #PART /plumk reiserfs 100M
    PART /boot reiserfs 200M
    PART lvm wolumen all

    Dlaczego tak? Ano dlatego, że instalator po stworzeniu partycji, próbuje je wszystkie zamontować, ignorując podstępnie dyrektywy punktu montowania ustawione na „none” (które przechodzi kontrolę składni). Potem partycję odmontujemy, zmienimy jej typ i wszystko będzie dobrze.

    UPDATE: hm hetzner okazał się mądrzejszy, i sam taką partycję zakłada, bez ingerencji usera. Więc można spokojnie olać dodawanie tej partycji na własną rękę. Czyli ostatecznie z wpisu powyżej trzeba uwalić dodawanie dodatkowej partycji z mountpointem /blah.

    W takiej konfiguracji musimy nazwać niżej nasz VG „wolumen”.

    LV wolumen root / reiserfs 20G
    LV wolumen swap swap swap 8G
    LV wolumen tmp /tmp reiserfs 10G
    LV wolumen var /var reiserfs 20G
    LV wolumen home /home reiserfs all

    F10, yes i instalator sobie walczy, a potem robi jak chcemy. 🙂

    Jak mi się wydaje, instalator jest oparty na czymś takim jak Fully Automated Debian Install, kiedyś z niego dość mocno korzystałem, polecam.


  3. Debian Squeeze Apache i moduł suphp, który jednak działa

    Wrzesień 6, 2012 by 0verlord

    SuPHP to taki ładny wrapper poprawiający bezpieczeństwo serwera www, jeżeli gościmy na nim bandę dzikich skryptów a jeszcze dzikszych userów. Pozwala na uruchamianie skyptów php z takim uidem jak ma owner plików na serwerze. Proste, skuteczne. Oczywiście mniej wydajne niż php bez tego wynalazku, ale jak to zwykle bywa, jest to odwieczna walna: bezpieczeństwo kontra funcjonalność/wydajność.

    Jeżeli po instalacji modułu, skrypty dalej wykonują się z prawami usera www (np. w defaultowej instalacji: www-data) trzeba wyłączyć, powtarzam wyłączyć moduł php5. Restart apacza i działa.
    Niby to jest w dokumentacji i niby o tym czytałem, ale na działającym wcześniej serwerze, to mi już drugi raz umknęło i debugowałem jak ostatni baran :-/

    Zainstalować moduł:
    aptitude install libapache2-mod-suphp
    a2dismod php5
    a2enmod suphp
    /etc/init.d/apache2 restart

    A reszta to już manipulacja w konfigu:

    /etc/suphp/suphp.conf

    i czytanie loga w domyślnej lokalizacji:

    /var/log/suphp/suphp.log

    Sprawdzamy, umieszczając w katalogu, np. domowym public_html, np.taki „skrypt”.

    <?php system('/usr/bin/id'); ?>

    Efekt w przeglądarce powinien wyglądać jakoś tak:

    uid=1002(miszcz) gid=100(users) groups=1003(miszcz),4(mrocznaadministracja)

    Ku pamięci.

    EDIT: i oczywiście, jak już popełniłem posta, to znalazłem setkę tutoriali które mówią dokładnie to samo co ja teraz ;-). Odpowiedzią na źle zadane pytanie jest milczenie, po prostu.


  4. Upgrade Lenny -> Squeeze i niedziałające PHP

    Marzec 30, 2012 by 0verlord

    Zaatakował mnie w sumie dość debilny, ale i szybko naprawialny problem. . Aktualizowałem jeden serwer z Lennyego na Squeeze, jako że nastąpił koniec wsparcia dla starego stabla.

    Aktualizacja przebiegła bez najmniejszych problemów, bo w sumie na tym hoście tylko wiatr wieje, a i to czasem.
    Po aktualizacji jedyna aplikacja, która tam była zamiast parsować PHP, pozwalała je pobrać. Problem niby znany – brak obsługi php w Apaczu. Ale nie do końca. Moduły były, wszystko dobrze pokonfigurowane, ale zamiast wyświetlać – ściągał. Co ciekawe, phpmyadmin działał bez zarzutów.
    Po wiązance kwiatów polskich w kierunku Boga Nieprzewidzianych Problemów, jeeeeest, znalaaazłem.

    Jest sobie plik ładujący podstawowy konfig do php, konkretnie ten:

    host:~# cat /etc/apache2/mods-available/php5.conf 
    <IfModule mod_php5.c>
        <FilesMatch "\.ph(p3?|tml)$">
    	SetHandler application/x-httpd-php
        </FilesMatch>
        <FilesMatch "\.phps$">
    	SetHandler application/x-httpd-php-source
        </FilesMatch>
        # To re-enable php in user directories comment the following lines
        # (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
        # prevents .htaccess files from disabling it.
        <IfModule mod_userdir.c>
            <Directory /home/*/public_html>
                php_admin_value engine Off
            </Directory>
        </IfModule>
    </IfModule>
    

    Co on robi? Ano wyłącza php w katalogach userów, jeżeli moduł userdir jest załadowany. U mnie był. Zmyliło mnie, że ta aplikacja miała swój własny vhost. Ale już DocumentRoot łapie się w ścieżkę z wyłączonym php. Zakomentowałem, zrestartowałem i ruszyło.

    Słowo o bezpieczeństwie takiego podejścia. Ma to sens, jeżeli mamy hosta, w którym są użytkownicy, którzy korzystają z userdir i wrzucają tam różne skrypty, które mogą być dziurawe albo z powodu nadmiaru dobrych chęci mogą przywiesić hosta, jak się zapętlą na śmierć. Jeżeli mamy tylko jedną aplikację i brak innych użytkowników, można sobie wyłączać. Jeżeli mamy userów, warto się zastanowić, zanim zakomentujemy te linijki. Z drugiej strony, skoro pod Lennym działało i nagle przestało to pewnie usernia zacznie protestować.


  5. Tcptrack i Debian Squeeze

    Maj 25, 2011 by 0verlord

    Można się zdziwić, że po upgrade do Squeeze’a tcptrack nie działa. Wyjaśnienie jest tu: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=602232.

    Generalnie chodzi o to, że działająca wersja 1.4.x nie zdążyła wejść do Squeeze’a, a stara nie działa na nowym kernelu. Czyli grave bug i paczka wyleciała ze stabla. Czyli trzeba by sobie zbackportować nowszą wersję z SIDa, bo nawet na backports.debian.org jej nie ma.


  6. nagiosgraph i poprawiony deb

    Marzec 14, 2011 by 0verlord

    Dzisiaj deweloper poprawił deba z nagiosgraphem, już się instaluje pod Squeezem, i nie plumka o błedną wersję paczki. Konkretnie paczka jest dostępna tu. Wersja 1.4.4-2 instaluje się pod Squeeze, wersja 1.4.4_all pod Lennym.

    Po zainstalowaniu działa od razu, trzeba tylko dodać odpowiednie wpisy do templatki i serwisów. Przy okazji opiszę dokładniej.

    Przydałby się jakiś deweloper Debian obeznany z paczkami i Debian Policy, może by mi wytłumaczył OCKB z tymi wersjami i co się zmieniło w polityce, że nagle _all przestało działać. W każdym razie dobrze, że panowie poprawili nagioagrapha, sporo rypania się z instalację mniej.


  7. Instalacja Debiana (squeeze) bez monitora przez port szeregowy i sieć

    Styczeń 29, 2011 by 0verlord

    EDIT: jak się okazało, to wszystko poniżej, to kosmetyka :-/. Można szybciej i prościej. Wpisu w pxelinux.cfg/default nie ominiemy, natomiast po pokazaniu się pierwszego okienka na opcji install wciskamy tab, i wpisujemy taki kod:
    –quiet console=ttyS0,9600n8 panic=30

    Potem przyjmujemy enterem na klatę informację o niewłaściwym trybie vga, czekamy chwilę i widzimy box z wyborem języka.
    Niżej można już nie czytać chyba, że ktoś lubi ładnie zrobione instalatory.

    ### było.
    Można, tylko po co 😉
    Generalnie miałem zainstalować hosta do monitoringu, tylko tak się dziwnie złożyło, że w domu mam same laptopy, a monitora nie uświadczysz. Komputer ma port szeregowy i kartę sieciową, więc powinien zadziałać netboot i konsola szeregowa.
    Jak się okazało, akcja jest całkiem prosta.

    Zestawiamy środowisko do netboota, np. wg tego linka albo innych, wujek Google zna tego mnóstwo. Potem szukamy katalogu pxelinux.cfg/ a w nim pliku default.

    Dodajemy na pierwszej pozycji tego pliku linijkę:
    SERIAL 0 9600 0

    Nie dodajemy tam opcji znanych z gruba, –serial itp., bo się przywiesi i nie pokaże nic.

    Potem dodajemy odpowiednią pozycję w menu, w debian-installer//boot-screens/menu.cfg

    menu begin serial
    menu title Serial console
    label mainmenu
    menu label ^Back..
    menu exit
    include debian-installer/i386/boot-screens/stdmenu.cfg
    include debian-installer/i386/boot-screens/sadtext.cfg

    z tegoż pliku kasujemy linijki:
    include debian-installer/i386/boot-screens/amdtxt.cfg
    include debian-installer/i386/boot-screens/gtk.cfg
    include debian-installer/i386/boot-screens/amdgtk.cfg
    include debian-installer/i386/boot-screens/adgtk.cfg
    include debian-installer/i386/boot-screens/amdadgtk.cfg
    include debian-installer/i386/boot-screens/dtmenu.cfg

    tworzymy plik debian-installer/i386/boot-screens/sadtext.cfg w zawartością jak niżej:
    default sinstall
    label sinstall
    menu label ^Install
    menu default
    kernel debian-installer/i386/linux
    append vga=normal initrd=debian-installer/i386/initrd.gz -- console=ttyS0,9600n8 quiet
    label expert
    menu label ^Expert install
    kernel debian-installer/i386/linux
    append priority=low vga=normal initrd=debian-installer/i386/initrd.gz -- console=ttyS0,9600n8
    label rescue
    menu label ^Rescue mode
    kernel debian-installer/i386/linux
    append debian-installer/serial-console vga=normal initrd=debian-installer/i386/initrd.gz rescue/enable=true -- console=ttyS0,9600n8 quiet
    label auto
    menu label ^Automated install
    kernel debian-installer/i386/linux
    append auto=true priority=critical vga=normal initrd=debian-installer/i386/initrd.gz -- console=ttyS0,9600n8 quiet

    i to chyba wszystko.

    Minicoma zestawiamy – co w sumie jest dość dziwne – z prędkością 9600 8N1, mamy nadzieję, że komp odpali z PXE (często jest wyłączone, wtedy niestety nie obejdzie się bez monitora, żeby to włączyć – natomiast u mnie jak się okazało, komp bootował z PXE), i po boocie widzimy piękne okienko instalatora po kabelku. Okienko wygląda np. tak:

    Wybieramy z niego opcję „Serial console” i dalej instalacja leci już zwykle. ASCII p0wahhh. Chodzi topornie, ale w sumie tylko do zainstalowania konsoli po sieci. Potem już czyste ssh. Potrzeba matką wynalazku heh.


  8. dhcp3 server, debian squeeze, vmware i problem z dupy

    Grudzień 1, 2010 by 0verlord

    generalnie jest problem z serwerem dhcp pod Squeeze, jeżeli sobie zainstalowaliśmy VMware.
    Squeeze ma nowy lepszy sposób na uruchamianie demonów systemowych, czyli

    service

    znany już i stosowany w innych dystrybucjach.

    Dodanie serwera dhcp skutkuje takiego typu bluzgiem od vmware:

    Konfigurowanie isc-dhcp-server (4.1.1-P1-12) ...
    Generating /etc/default/isc-dhcp-server...
    insserv: script vmware-core: service VMware already provided!
    insserv: script vmware-mgmt: service VMware already provided!
    insserv: script vmware-autostart: service VMware already provided!
    Starting ISC DHCP server: dhcpdcheck syslog for diagnostics. ... failed!
     failed!
    invoke-rc.d: initscript isc-dhcp-server, action "start" failed.
    

    i tyle jest rumakowania.

    Natomiast problem jest ciekawy, bo… nie dotyczy vmware 😉 Komunikaty insserva dotyczą zduplikowanych wpisów skryptów startujących vmware. A błąd dhcpd bierze się z jego niedokonfigurowania na starcie, a nie z powodu problemu z vmware. Ale co się naszukałem, to moje /-:

    Nie wiem jeszcze skąd to się bierze, natomiast w takim przypadku należy wywalić wpisu z jednego z miejsc: albo z servicesów albo z init.d. Różne posty na blogach mówią, że jednak lepiej wywalić vmware z upstartu i zostawić w init.d. Zobaczymy.