Monitoring hostów Apacha przy użyciu Munina

14 lut 2013 Dział: linux

apache_vhosts

Jednym z ciekawych pluginów do Munina jest apache_vhosts. Pokazuje on na wykresie per vhost: średnią wielkość odpowiedzi, średni czas odpowiedzi oraz ilość zapytań na minutę.

Wybór metody pozyskiwania danych

Czytając README możemy się dowiedzieć, że do prawidłowego funkcjonowania pluginu potrzebujemy analizować logi Apache i tu mamy do wyboru trzy metody:

  1. Możemy użyć apache_pipelogger, do którego Apache będzie zapisywał logi
  2. Możemy użyć apache_logparser jako daemona, który parsuje logi Apache
  3. Możemy użyć dwie metody jednocześnie – dane będę połączone.

Ja wybrałem metodę nr 2.

Instalacja dodatkowych modułów

Aby zapewnić prawidłowe funkcjonowanie pluginu musimy zainstalować następujące moduły perla:  File::Tail::Multi Storable IPC::ShareLite Munin::Plugin (opcjonalnie Data::Dumper). Możemy to zrobić otwierając perlowy shell:
perl -MCPAN -e shell
a następnie zainstalować moduł, np.:
install File::Tail::Multi

Kopiowanie plików

W kolejnym kroku musimy przekopiować: apache_logparserapache_vhosts do katalogu z naszymi pluginami. W moim przypadku jest to /usr/share/munin/plugins. Następnie powinniśmy utworzyć symlink w /etc/munin/plugins do apache_vhosts.

Konfiguracja parsera

W pliku apache_logparser musimy skonfigurować ścieżkę do plików z logami, określić jak wyglądają nazwy vhostów, aby parser mógł określić nazwę vhosta. Edytujemy:

my $dir = "/logs/apache_logs";
my $files = "*access_log";
my $site = "(.*)-access_log";

Próba parsera

Na tym etapie możemy zobaczyć czy parser działa prawidłowo. Wystarczy, że zmienimy w nim

local $debug=1;

Teraz odpalając parsera będziemy widzieć wynik analizy poszczególnych logów. Na czas konfiguracji możemy zostawić uruchomionego daemona.

Konfiguracja noda

Kolejną czynnością jest konfiguracja noda Munina. Musimy w pliku /etc/munin/plugin-conf.d/munin-node umieścić:

[apache_vhosts]
user root
env.subgraphs requests bytes time
env.checks requests bytes time

Test pluginu

Możemy tera sprawdzić czy plugin działa prawidłowo, wystarczy uruchomić:

munin-run apache_vhosts

Finalne uruchomienie

Na koniec zatrzymujemy daemona parsera logów i wyłączamy w nim tryb debug. Uruchamiamy go w tle. Restartujemy noda Munia. Po kilku minutach powinniśmy zobaczyć nowe wykresy :)

Przygoda w banku

22 sty 2013 Dział: różne

Bank internetowy

Uwielbiam banki, w których można szybko i bez problemu załatwić każdą sprawę.

Na pewno BZWBK do takich nie należy?

Konto walutowe

Posiadam konto walutowe, dla którego nie mogłem z systemu bankowości elektronicznej zmienić adresu korespondencyjnego. Pomimo zaznaczania opcji  ”Chcę, aby na powyższy adres przesyłana była korespondencja związana z wszystkimi produktami…” adres nie zmieniał się.

Na początek kontakt mailowy przez formularz. W skrócie: napisałem na czym polega problem i jak próbowałem go rozwiązać, w odpowiedzi dostałem instrukcję:

Odpowiadając na Pana zapytanie dotyczące przesyłania korespondencji na wskazany adres korespondencyjny, uprzejmie informuję, że podczas zmiany adresu do korespondencji po wypełnieniu wszystkich prezentowanych rubryk należy jeszcze zaznaczyć kratkę z opisem „Chcę, aby na powyższy adres przesyłana była korespondencja związana z wszystkimi produktami, z jakich obecnie korzystam w Banku Zachodnim WBK S.A. (w tym z: rachunkami bieżącymi, lokatami, kredytami).”

No super…  poprosiłem o przeczytanie mojego maila jeszcze raz. W odpowiedzi zostałem poinformowany, że miało to na celu zweryfikowanie czy właściwie zmieniam adres…

Kolejny mail od banku mówił o tym, że nie umiem odróżnić adresu do korespondencji od „… np. przy potwierdzeniu przelewu widzi Pan inny adres i jest to adres zameldowania.”. Załączona była też instrukcja jak i gdzie mogę adres zameldowania zmienić.

Być może było błędem, że od razu nie wysłałem zrzutów ekranu, po których Pani stwierdziła: „W tej sytuacji serdecznie Pana proszę o kontakt z infolinią Banku…”

Kontakt z infolinią i odpowiedź: „Proszę udać się do banku…”.

Po kilku dniach otrzymałem niespodziewany mail:

Przesłałam poniższy zrzut do konsultacji, otrzymałam informacje, że niedogodności mogą zostać wyeliminowane w oddziale Banku po podpisaniu przez Pana Karty Informacyjnej Klienta.  Za zaistniałą sytuację serdecznie przepraszam w imieniu Banku.  

Zapraszam do dowolnej placówki naszego Banku. Aby ułatwić kontakt z placówką Banku informuję, że spis znajduje się na stronie głównej Banku: bzwbk.pl, w opcji „Na skróty” – „Oddziały i bankomaty”.

No to wiem na czym stoję. Czas na wizytę w placówce.

Oddział banku

Przedstawiam sprawę, Pani klika w komputerze, nie może znaleźć gdzie to zmienić, w międzyczasie wychodzi kartka z drukarki i słyszę: „… proszę podpisać, bo tu w systemie mi wyskoczyło i musiałam zmienić, żeby dalej kontynuować”. Chwila konsternacji, proszę o czas na zapoznanie się z dokumentem. Napisany tradycyjnie: dużo bełkotu, małym druczkiem, na jedną stronę, tak żeby nie chciało się czytać. Na początku nie zwróciłem na to uwagi, ale dokument ten to „Karta identyfikacyjna”, o której była mowa w korespondencji mailowej.

Patrząc na dokument zapytałem Panią jakie dane są zmienione, bo są tu zaprezentowane różne moje dane (w tym jawnie zapisane hasło dostępu), ale ja chciałbym wiedzieć, które z nich zostały dzisiaj zmienione.  Jak mnie poinformowała Pani: „niestety system nie pokazuje takich danych i muszę uwierzyć na słowo, że było zaktualizowane obywatelstwo na polskie, bo wcześniej w systemie nie było to uzupełnione”. Oczywiście w dokumencie tym nie ma żadnej informacji o moim obywatelstwie.

Eh, myślę sobie, może ja albo Pani ma zły dzień. Już miałem podpisać, ale wcześniej zapytałem czy dostanę jakieś potwierdzenie, odpowiedź: „Nie! Ale jak Pan podpisze to mogę skserować”.  Podpisałem, Pani skserowała, super! Pani wraca do klikania, nadal nie może znaleźć. Dzwoni do pomocy, chwilę sobie rozmawiają, klik, klik myszką po raz kolejny mój PESEL. Słyszę drukarkę, wychodzą kartki, słyszę Pani głos: „Proszę podpisać, bo miał Pan stare konto, a teraz będzie miał Pan nowe”.

W tym momencie się trochę zdenerwowałem, przyszedłem zmienić jeden adres do korespondencji, tymczasem dostaję do podpisania dokumenty, które nie zmieniają adresu tylko jakieś inne rzeczy. Proszę Panią o chwilę czasu na zapoznanie się z „Umową usług bankowości elektronicznej BZWBK24″. Pytam czy mogę podpisać dokument później, bo chciałbym się z nim zapoznać na spokojnie, dokładnie przeczytać. „Nie! Proszę czytać teraz.” No dobra, to czytam, co prawda niedokładnie, ale zawsze coś. Pierwsza strona, druga strona, na której się zatrzymuję i oświadczam Pani, że nie podpiszę tego dokumentu. Pani ma mnie dość, widzę, że bardzo się zdenerwowała, ale w dalszym ciągu zachowuje należytą kulturę.

Dlaczego nie podpisałem:

2. Klient oświadcza, że dokumenty o których mowa w ust. 1 (w skrócie: regulamin, załącznik do regulaminu, cennik) zostały mu przekazane w postaci papierowej w odpowiednim czasie przed zawarciem niniejszej Umowy.

Pokazuję Pani powyższy punkt, na co Pani odpowiada, że zaraz mi da dokumenty z ust. 1. Pytam, co z moim czasem na zapoznanie się z nimi? Pani informuje mnie, że nic się w nich nie zmieniło, co miałoby dla mnie znaczenie… A więc, mam podpisać nową umowę, która coś i jednocześnie nic nie zmienia… ?

Dokumentów nie podpisałem. Poprosiłem Panią o możliwość wzięcia umowy i po zapoznaniu się z załącznikami, możliwość zwrócenia jej podpisanej. „Nie ma takiej możliwości… bo już tu kliknęłam w systemie…”. Pani widząc moją stanowczą decyzję w końcu przystaje na możliwość odłożenia podpisania umowy.

Obiecałem, że jeszcze dzisiaj postaram się przynieść podpisany dokument, niestety nie miałem „odpowiedniego czasu”, na zapoznanie się z warunkami umowy. Próbowałem się skontaktować z Infolinią banku, aby zweryfikować, czy muszę się zgodzić na nową umowę, niestety posłuchałem tylko muzyki…

P.S.
Jakiś czas temu musiałem odebrać z banku kartę debetową do konta, bo wcześniejsza poszła na zły adres. Wtedy „system” dał mi w prezencie ubezpieczenie, za które musiałem płacić, bo podpisałem papier potwierdzający wydanie karty i przy okazji zgodziłem się na ubezpieczenie. Wtedy nie czytałem co podpisuję, rzuciłem tylko okiem. W sumie, chciałem kartę i dostałem, więc w czym problem?


Jeśli podczas dodawania klucza do agenta pojawia się:

Could not open a connection to your authentication agent.

spróbuj uruchomić agenta w ten sposób:

ssh-agent bash

 

Instalacja enchant extension dla php

15 lip 2012 Dział: różne

W zasadzie nie ma większego problemu jeśli Twój php jest instalowany z paczki wystarczy zainstalować pakiet php5-enchant i mamy problem z głowy.

Natomiast, jeśli budujemy nasz php ze źródeł, np. jak to robi Directadmin, potrzebujemy zainstalować kilka rzeczy zanim restart usługi przyniesie nam spodziewany efekt.

Na samym początku ściągamy źródło rozszerzenia:

 # wget http://www.abisource.com/downloads/enchant/1.6.0/enchant-1.6.0.tar.gz

wypakowujemy i zaczynamy budowanie:

# ./configure
# make
# make install

Jeśli podczas instalacji otrzymasz komunikat:

checking for ENCHANT… no
configure: error: Package requirements (glib-2.0 >= 2.6 gmodule-2.0) were not met:

No package ‚glib-2.0′ found
No package ‚gmodule-2.0′ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables ENCHANT_CFLAGS
and ENCHANT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

może to oznaczać, że potrzebujesz dodatkowo zainstalować pakiet libglib w wersji deweloperskiej, a więc:

# apt-get install libglib2.0-dev

Na koniec potrzebujemy przekompilować php z dodatkowym parametrem:

–with-enchant

Po udanej kompilacji pozostaje restart apacha. Komenda php – i powinna zwrócić w wynikach coś podobnego do:

enchant

enchant support => enabled
Version => 1.1.0
Libenchant Version => 1.5.x
Revision => $Id: 0126d9ef4ed28f85fbab1ddb4e10ba927289f0cd $

ispell => Ispell Provider => /usr/local/lib/enchant/libenchant_ispell.so
myspell => Myspell Provider => /usr/local/lib/enchant/libenchant_myspell.so

 

 

Sekunda przestępna

2 lip 2012 Dział: linux

Na serwerze zauważyłem, że dwa procesy mysql pracują zużywając stanowczo więcej zasobów procesora niż zwykle. Z wykresów wynika, że problem rozpoczął się 1 lipca o godzinie 2:00. W logach zero błędów. Po podłączeniu się stracem dostałem:

# strace -p 6868 -tttt

1341226359.261640 futex(0x123c1d0, FUTEX_WAKE_PRIVATE, 1) = 0
1341226359.261703 futex(0x123c214, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 701273, {1341226360, 261694000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
1341226359.261791 futex(0x123c1d0, FUTEX_WAKE_PRIVATE, 1) = 0
1341226359.261841 futex(0x123c214, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 701275, {1341226360, 261831000}, ffffffff) = -1 ETIMEDOUT (Connection timed out)
(…)

Okazało się, że winna jest sekunda przestępna. Rozwiązaniem problemu jest zatrzymanie serwera czasu, ustawienie czasu i włączenie serwera czasu. U mnie wyglądało to tak:

# invoke-rc.d ntp stop
# date -s "`date`"
# invoke-rc.d ntp start

Procesy mysql automatycznie wróciły do normy.

Problem z ponownym zamontowanie partycji Truecrypt

20 kwi 2012 Dział: linux

Po odmontowaniu patrycji używając umount (powinno się robić przez truecrypt -d) chciałem jeszcze raz zamontować ją. Niestety nie udało się, otrzymałem komunikat:

device-mapper: create ioctl failed: Urządzenie lub zasoby zajęte
Command failed

Rozwiązaniem okazuje się usunięcie urządzenia poprzez dmsetup. Patrzymy jakie mamy urządzenie:

# dmsetup ls
truecrypt1 (253, 0)

I usuwamy je:

# dmsetup remove truecrypt1

Teraz możemy ponownie zamontować urządzenie:

truecrypt obraz /montuj/do

World of Warcraft za darmo

13 lis 2011 Dział: różne


W World of Warcraft można zagrać za darmo, oczywiście jest w tym haczyk. Możemy sobie zafundować niesamowite doznania, ale tylko do 20 poziomu. Wszystkich chętnych zapraszam na oficjalną stronę WoW, do formularza utworzenia darmowego konta: https://eu.battle.net/account/creation/wow/signup/.

Miłej zabawy, odchodźcie czasami od komputera!

Nowe nie znaczy lepsze

27 lip 2011 Dział: android

Często używam Skype w wersji mobilnej na Androida. Telefon do kieszeni, podłączony zestaw słuchawkowy i można śmiało wykonywać czynności domowe. Wszystko było super do chwili ostatniej aktualizacji Skype do wersji 2.0.0.47. Na mojej Motoroli Milestone aplikacja stała się bezużyteczna. Urywany głos, rozmówca jakby robotem dźwięczy, częste wyłączanie się aplikacji z powodów błędów i olbrzymie zużycie zasobów. Włączony Skype i praktycznie nic nie da się zrobić na telefonie.

Jedyne rozwiązanie do powrót do starszej wersji 1.0.0.983, która chodziła w miarę płynnie, bezproblemowe rozmowy.
Niestety poprzedniej wersji nie udało mi się pobrać z Android Marketu. Stara wersja Skype można pobrać stąd: Skype 1.0.0.983.

Po zgraniu na telefon trzeba pamiętać, aby w ustawieniach „Aplikacje” zaznaczyć zgodę na instalację aplikacji spoza marketu „Nieznane źródła”.

Problem z dodaniem konta w Androidzie

18 lut 2011 Dział: android

Ostatnio chciałem dodać sobie nowe konto w telefonie z Androidem. Każda próba kończyła się komunikatem:

Nie można ustanowić z serwerem stabilnego połączenia transmisji danych. Może to być tymczasowy problem lub karta SIM może nie być przystosowana do usług transmisji danych. Jeśli problem wciąż występuje, skontaktuj się z działem obsługi klienta.

Najczęściej pojawiającym się rozwiązaniem jest przywrócenie do ustawień fabrycznych, niestety takie podejście było dla mnie nie do przyjęcia. W międzyczasie testowałem inne propozycje takie jak: włączanie/wyłączanie APN, zmiany w synchronizacji danych, zmiana ustawień na koncie. Oczywiście żadne nie pomagało.

Rozwiązanie znalazłem na stronie oonwoye.com. W skrócie, wchodzisz do aplikacji Youtube i logujesz się podając dane konta, które chcesz dodać. Aplikacja sama dodaje konto do synchronizacji, pozostaje tylko włączenie automatycznej synchronizacji dla tego konta.
Prawda, że proste?

Ubuntu 10.10 – nie działa przycisk myszy

8 paź 2010 Dział: linux

Ostatnio po upgrade Ubuntu 10.04 do wersji 10.10 natrafiłem na problem z lewym przyciskiem myszy. Dokładniej mówiąc w bliżej nieokreślonych sytuacjach, powiedzmy w losowej długości działania systemu, nagle przestaje działać lewy przycisk myszy, dodatkowo za chwilę alt+tab również nie działa. Posiadam mysz na ps, wyciągnięcie wtyczki z komputera jak również ponowne załadowania modułu ‚psmouse’ nie przyniosło zamierzonych rezultatów. Rozwiązaniem okazało się ponowne załadowanie modułów ‚usbhid’ oraz ‚hid’. Magiczna linijka:

 rmmod usbhid && rmmod hid && modprobe hid && modprobe usbhid 

Oczywiście najlepiej zapisać to sobie do katalogu bin, żeby było pod ręką w razie potrzeby.