Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam,
Dostaliśmy wsparcie z UE, i na czas projektu 5 lat musimy przetrzymywać logi. Logi są z 6 fizycznych serwerów. Planujemy kupić drobbox lub dyski USB i na nich trzymać te dane.
Problem się zaczyna, że na serwerach jest ta sama nazwa pliku logów i jego archiwum. Czy można zmienić w jakiś prosty sposób by plik wyglądał nazwapliku_host_data.0 itd, czy ręcznie trzeba sprawdzić i zmienić ustawienia w pliku logrotate ? Jako że nie do końca projekt określał które logi mamy trzymać więc lepiej będę trzymał wszystko. Może ktoś z Was ma takie rozwiązanie i mógłby się podzielić.
Dzięki za wskazówkę
Offline
logstash (tylko to na javie działa) - i wysyłanie logów na 1 maszynę, a tam sobie je dowolnie rotujesz, tniesz, pakujesz.
Można też bezpośrednio z sysloga puszczać logi na zewnętrzną maszynę tylko jest jeden problem (niestety znany z autopsji) - jak ci padnie połączenie między wysyłającym a zbierającym logi to jest niewesoło. Wysyłający zaczyna mulić, usługi zaczynają padać i nie chcą się podnieść ;]
Logstash wysyła logi ustalonymi porcjami a w momencie jak nie ma połączenia to sobie je zbiera dalej i wysyła jak tylko link wróci do życia.
Maszynka do zbierania logów zależna od tego ile tych logów masz ;]
Dla przykładu exim + apache obsługujące kilka tyś domen w ciągu 3-4h wysyłają około 10GB logów ;)
Offline
oki dziękuję za informację zaraz postawię i zobaczę jak to działa.
Offline
inna propozycja:
1. skonfigurować porządnie logrotate (aby nadawał sensowne nazwy oraz wrzucał wszystkie archiwa do jednego katalogu - np /var/log/archive)
2. rotacja codzienna
3. po wykonaniu logrotate wchodzi sobie rsync z parametrem --no-delete (czy jakoś tak) i skrzętnie kopiuje nowości z archive na serwer zbierający logi
4. serwerem zbierającym może w tej sytuacji być dowolny z twoich serwerów (o ile nie masz tych logów jakieś straszne gigabajty a serwery są jakoś sensownie po sieci spięte) wyposażony w odpowiedni oddzielny dysk - w moim przypadku jest to serwer varnisha.
Zalety:
a) odporność na zerwanie połączenia lub pad maszyny zbierającej
b) niewielkie dodatkowe obciążenie serwerów
c) dostęp do ostatnich archiwów (zależnie od ustawień logrotate) bezpośrednio na każdym serwerze.
d) nie wymaga instalacji dodatkowego oprogramowania.
Wady:
jakie wady...
Offline
można też i tak ;) Logstash ma jeszcze jedno fajne narzędzie o nazwie "elastic" - genialne przeszukiwanie logów (tylko zwraca to wyniki w nieprzyjemnym formacje jsona ;p) Ogólnie bardzo zacne narzędzie i przy wielu serwerach bardzo uprzyjemnia życie ;)
Offline
Same Syslogi nie mogą pakować logów na zdalne maszyny?
Kiedy ostatnio widziałem Rsysloga, to tam była możliwość, żeby każdy komunikat wysyłał po tcp albo udp prosto do Komisji Europejskiej.
Rsync lub Rdiff-backup też można dowolnie oskrycpić i ożenić z Logrotate.
Ostatnio edytowany przez Jacekalex (2015-08-24 02:50:14)
Offline
Potwierdzam, ja po UDP'ie zbieram logi z 9ciu mikrotików do centralnego sysloga.
Bardziej lokalnie zrobiłbym to tak, że kupując najgłupszy dysk sieciowy, ma on lub można doinstalować obsługę NFS'a. Piszesz szkaradę w stylu
[tt]postrotate: mount /logi-backup 192.168.123.45:/zasob/gdzie -t nfs ;mv log /logi-backup/`uname -snm`-log;umount /logi-backup[/tt]
Nie wiem ile i z czego te logi masz (netflow, czysty tekst), w każdym razie najlepiej przejechać je XZ'em lub jeszcze lepiej lzma -9 gdzieś w nocy zeby nie generować obciążenia
i w 1TB zmieścisz się na te pięć lat. Pamiętaj tyllko by monitorować smarta i za 2.5 roku mieć fundusze na nowy hdd ;P
Offline
dzięki wszystkim, będę testował
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00135 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.117.158.10' WHERE u.id=1 |
0.00088 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.117.158.10', 1732776879) |
0.00061 | SELECT * FROM punbb_online WHERE logged<1732776579 |
0.00060 | SELECT topic_id FROM punbb_posts WHERE id=289982 |
0.00008 | SELECT id FROM punbb_posts WHERE topic_id=27664 ORDER BY posted |
0.00074 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=27664 AND t.moved_to IS NULL |
0.00018 | SELECT search_for, replace_with FROM punbb_censoring |
0.00120 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=27664 ORDER BY p.id LIMIT 0,25 |
0.00106 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=27664 |
Total query time: 0.00686 s |