Let’s encrypt cert updates

Let’s encrypt is wonderful, but certificate are getting expired every 3 months. Since it’s a first time I need to renew them, I have done it manually. The tool authenticates you (by default) with special file created in the .well-know/acme-challenge directory of the root, so the blog engine should not interfere or rewrite anything and should not return it’s own 404 page. Historically my nginx.conf has lots of existing redirects and rules, I am too lazy to correct and simplify it, so simple

localtion ~ .well-known {
        allow all;
    }

does not work. And I am too lazy to figure out why it is so (bad for me). So the most simple way to renew certs for me is to switch to minimal config. Putting it here for the future reference.

user  nginx;  
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    server_names_hash_bucket_size 128;
    index   index.html index.htm;
    server { listen 80;
        listen [::]:80;
        server_name andreybondarenko.com;
location / {
                 root   /var/www/;
        }

    }
}

TOC and collapsible block samples

I am writing some tool for my daily work that produces fancy HTML page from RHEL, CentOS or Fedora log and config files, so it would be more easy to read them. Nothing special, just some bash scripts with sed, grep and awk that produce HTML with some CSS and JQuery.

  1. TOC I really liked: http://projects.jga.me/toc/ It’s very easy to use and implement, it just looking through the document for h1, h2, etc tags. Scope and what tags to look can be customized.
  2. Collapsible blocks sample: https://codepen.io/peternguyen/pen/hICga/

May be it would be yet another “log2html” framework in the end.

Interesing “feature” of the Mediawiki

Just have a bit digged in the Mediawiki, that is quite popular Wiki engine 🙂 Found out that the  articles are located in the “prefix_text” table, with all the changes, obviously. So changes are being stored as a new copy of the article: if you have 100kb article and you need to save a change in 1 symbol, there would be 100kb growth (plus additional data) of the table. No wonder that the Wikipedia need new servers all the time! Cannot imagine size of their DBs.

Backuping mysql

Recently I have to backup mysql database on quite heavily loaded server and I wanted to make backup daily on one hand and I wanted them not to affect production on the other. DB size is more than 150 Gb, about 50k users daily.

First approach was ty try to simply run musqldump and see what would happen. Site was down right after the backup has begun. Then I have tried to nice the mysqldump with

/usr/bin/nice -n 10 ionice -c2 -n 7

The result was better, site was down at about 10% of the job. Next I add –single-transaction, that have solved about 95% of problems, still some time site was down, so I had to add -q option. The final command was:

/usr/bin/nice -n 10 ionice -c2 -n 7 /usr/bin/mysqldump --plugin-dir=/usr/lib/mysql/plugin --user=dbuser -h bd.lxc --port=3306 --all-databases --single-transaction -q|/bin/gzip >  /var/bcp/backup-db-`/bin/date -I`.sql.gz

Переезды сервисов из страны в страну

Смена страны проживания в разных сервисах:

  • Google: просто нельзя переехать из РФ в Чехию. Поддержка говорит, что можно воспользоваться услугами партнера и перенести, но в реальности ни один партнер на захотел со мной возиться. Сценарий “удалить все и зарегистрировать новый” меня не устраивает, проще переехать на собственный сервер (что я и сделал).
  • Steam: просто прописать новую страну, адрес и карточку. Можно делать не чаще чем раз в пол года.
  • Apple: можно поменять страну проживания, когда у тебя нет платных подписок. Но от платной подписки до конца периода оплаты отказаться нельзя. Ждем декабря.
  • Blizzard: по запросу в поддержку. Там надо показать локальный документ.
  • Adobe: смена платежных реквизитов меняет страну. Есть тонкость с использованием уникального адреса, но про нее говорят в саппорте
  • Различные мессенджеры: просто поменять телефон и адрес. По подтверждению кода с телефона меняется и страна.

Из наблюдений за интернетом

Примерно полтора года, пока была жива подписка на Google я почти не пользовался этим сервером. Он существовал как-то сам по себе своей жизнью, спамеры нагадили в комментариях ссылками на дорвеи, иногда пропадал файл rome-club.pdf, на который в сети очень много ссылок (лол, никогда бы не подумал, что им кто-то будет интересоваться). При этом Yandex считал ТИЦ сайта равным 10 (нет, я знаю, что это стэнд-элон никто не читает и скорее всего читать не будет) и у Гугла тоже что-то водилось >0.

Однако теперь я обновил движок, потер спамеров, скопировал сюда более-менее длинные тексты, чтобы были все в одном месте, в этом вашем Fecebook’е хрен чего найдешь, например. Все, Гугл и Яндекс обнулили его “ценность” и “авторитетность”. Интересно, почему так и правильно ли это?

Зонд Atlas RIPE

Локальная копия статьи на Хабре.

На конференции ENOG-4 мое внимание привлек стол, на котором лежали коробочки с наклейкой RIPE NCC, портом RJ-45 и хвостом USB. Вот такие:  



Я был не в курсе что это и для чего нужно, по этому подошел и cпросил. Оказалось, что это сетевой зонд Atlas RIPE, который можно взять с собой, пройдя регистрацию на https://atlas.ripe.net. “Надо брать!”, подумал я. Ведь нельзя пройти мимо такой милой железочки. Дома я начал использование устройства, воткнув его, согласно инструкции, USB-шнурком в маршрутизатор, чтобы было питание, а в RJ-45 патчкорд до свича: 



Зонд почти cразу весело замигал огоньками, показывая, что есть линк и пакеты ходят. Что, собственно, зонд делает:

  1. Пинг первых двух хопов, которые он видит. В моем случае это мой роутер и маршрутизатор провайдера;
  2. Пинг корневых DNS’ов;
  3. Выполняет пинги по заданию во имя Луны на пользу обществу и хозяину;

Сам зонд получает настройки по DHCP, не имеет интерфейса, открытых портов и о нем ничего путного не знает nmap (MAC-адрес я изменил): 

[root@storage ~]# ping 192.168.2.236 
PING 192.168.2.236 (192.168.2.236) 56(84) bytes of data. 
64 bytes from 192.168.2.236: icmp_req=1 ttl=64 time=0.992 ms 
64 bytes from 192.168.2.236: icmp_req=2 ttl=64 time=0.742 ms 
64 bytes from 192.168.2.236: icmp_req=3 ttl=64 time=0.736 ms 
^C
 --- 192.168.2.236 ping statistics
 --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 0.736/0.823/0.992/0.121 ms 

[root@storage ~]# nmap -O 192.168.2.236 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-10-25 20:47 MSK 
Nmap scan report for 192.168.2.236 Host is up (0.0022s latency).
 All 1000 scanned ports on 192.168.2.236 are closed MAC Address: 11:11:11:11:11:11 (Lantronix)
 Too many fingerprints match this host to give specific OS details 
Network Distance: 1 hop OS detection performed. Please report any incorrect results at http://nmap.org/submit/ . 
Nmap done: 1 IP address (1 host up) scanned in 3.40 seconds 
[root@storage ~]# 

Интерфейс есть на сайтеhttps://atlas.ripe.net/atlas/myprobes.html. Там можно посмотреть статус своего зонда и графики, которые он нарисовал: 

 Кроме статистики по собственному подключению, можно создавать запросы к чужим зондам на пинг (и некоторые другие операции) на нужные хосты, отобрав чужие зонды по критерию (например, страна). Это, естественно, не бесплатно, тратятся RIPE credits, которые зарабатываются аптаймом и участием в чужих запросах (подробнее, можно прочитать здесь: https://atlas.ripe.net/doc/udm#the-credit-system). Разбирать зонд я не стал, так как это повредило бы красивые наклеечки, фото разобранных легко можно найти в сети. Вот альбом на фликре по теме: http://www.flickr.com/photos/hellercom/6854396415/in/photostream/. Вот и все!



UPDATE: Хабраэффект в действии