obshtestvo / bgwikigovedits

tweets about anonymous Wikipedia edits from particular IP address ranges used by Bulgarian Government
4 stars 0 forks source link

Подкарване на congressedits #2

Open tochev opened 10 years ago

tochev commented 10 years ago

Кода за congressedits е на https://github.com/edsu/anon/ .

Работи като в едно irc слуша за промени по 30тина wiki-та (вкл. bg), проверява дали user-a е IP и го сравнява с една таблица.

Подкарах го под ubuntu 12.04 с инструкциите от README-то, трябва само да се компилира nodejs от source, защото пакета в репото е стар.

Работи out-of-the-box, но не съм тествал twitter интеграцията и не съм променял специално bg wiki-то, но не очаквам проблеми – и двете трябва да са добре тествани.

Един от requirement-ите му имаше бъг и не знам как това работи в production, като при мен умираше за 15тина мин. Пратил съм pull request, до ден очаквам да е merge-нато.

Twitter, до колкото си спомням, иска gsm за write api-то.

От към monitoring трябва да се напише един cron job/nagios/munin plugin/etc., който да проверява дали процеса е жив.

mitio commented 10 years ago

Имаме си сървър, на който можем да го пуснем да работи. Когато прецените, мога да ви направя един контейнер (виртуалка) и да ви дам root достъп до там.

nckbnv commented 9 years ago

Работи локално при мен от няколко дни без да е забивало, така че мисля че е достатъчно стабилно. @mitio можеш да пратиш един акаунт да го кача на сървъра като имаш време. П.П. До момента нямаме match-ове и съответно tweet-ове за промени от следените IP-та.

mitio commented 9 years ago

@justnick, ще ми трябва публичния ти ключ. Машината ще е debian-базирана, реално зад NAT. Ако ти трябва препращане на входящ трафик, пиши, за да го настроим.

Ще се оправиш ли със setup-а, ако ти дам root-достъп до въпросната машина?

nckbnv commented 9 years ago

Да, ще се справя. По принцип основно ползвам RedHat базирани дистрибуции, но ще се справя и с debian. Не мисля че ще е необходим входящ трафик за момента, ако нещо не работи ще го търсим какво е. Къде да ти пратя ключа?

mitio commented 9 years ago

Може на me "в" ddimitrov.name. Може и тук. Публичен ключ е, все пак :)

nckbnv commented 9 years ago

И ти си прав :)

mitio commented 9 years ago

Готов си. Пратил съм ти на имейла SSH данни. Машината (контейнерът) е само твой. :)

nckbnv commented 9 years ago

Готово. Инсталирал съм нужното - т.е. nodejs и npm + curl, както разбира се и самият anon. Пуснато е в един screen с име anon.bgwikigovedits под user anon. Наложи се да направя chmod 666 /dev/ptmx заради ето този bug

Точев е писал за monitoring script, имате ли пуснат nagios, на който можем да го включим или да напиша един скрипт в cron, който да проверява на 10 минути дали е up и да го рестартира ако не е?

mitio commented 9 years ago

Това ми звучи като много дървено решение. Не е ли по-добре да имаме културен init.d скрипт за целта, или да си сложим Upstart на машината и да го ползваме него? Сто процента има process management инструменти, по-добри от screen и мониторинг скрипта/крона, който да проверява и да го пуска.

От друга страна, един cron ред, който го пуска на всяка минута и един .lock файл също биха свършили работа.

Nagios има, но не мога да помогна много с включването. @krokodilerian може да ти даде повече инфо.

krokodilerian commented 9 years ago

Nagios-а може да проверява дали е живо, но не може да го стартира (на друга машина е). Решенията са: нещо, което пуска script в screen от /etc/rc.local, в който script има while /bin/true; do пусни-нещото; sleep 2; date; done upstart или компания, които да го държат живо нормален init.d скрипт, който го пали/пуска, в тоя случай ако умре, няма да се пусне пак.

Не знам кой вариант ви харесва най-много, първия е най-грозен и се пише най-лесно :)

nckbnv commented 9 years ago

За Nagios-а, всъщност не знам дали ни трябва чак толкова, не е нещо фатално според мен ако не работи 20-30 минути, но ако ще следим хоста така или иначе, нищо не пречи да пуснем и един check_procs. Така и не стигнах до ползването на Upstart, когато RedHat го вкараха в дериватите си, аз си останах на SysVinit, а сега всички ще трябва да ползваме systemd :) така или иначе, така че не знам каква е опцията с upstart точно. За него вие кажете, ако в момента не е native за debian дали искаме да го слагаме само заради това да проверява този процес. Та за да е по-чист вариант може би един init script за да стартира on boot, и един малък скрипт, който да проверява на 10-20 минути дали е up, и ако не е да го стартира като ползва същия init script. Но ако варианта с upstart е по-читав, нека да е така. Иначе аз снощи драснах едно такова, но не съм го пускал за момента:

PID=$(pgrep -u anon -f anon.coffee)
if [ -z "${PID}" ];
        then /home/anon_bgwikigov/anon/anon.coffee &
fi
mitio commented 9 years ago

@justnick, ще бъде каквото ти решиш. Аз бих препоръчал да поразгледаш малко Upstart или systemd и да видиш дали ще ти вършат работа. Тъкмо нещо ново ще се научи :)

Иначе - най-простото, което ще работи, плюс мониторинг дали работи (може би Nagios).