Skip to content


Как должны работать истинно государственные банки

Похоже, в привате уже научились эффективным методам государственного управления:

Все правильно сделали, так держать!

Posted in Fun.


Как найти нужный промежуточный SSL-сертификат

Часто бывает, что клиент присылает сертификат для своего домена без промежуточного сертификата или с неправильным промежуточным сертификатом. Почему-то чаще всего это наблюдается с теми, кто покупает сертификаты у RapidSSL. Причем проблема эта незаметна, пока не доходит дело до работы с сайтом с какого-нибудь Android-девайса. По слухам, обычные десктопные броузеры (Opera, Firefox, Chrome) умеют сами находить при необходимости недостающие промежуточные сертификаты и молча и незаметно для пользователя подгружать их в случае, если таковые не были предоставлены сервером. А вот броузеры на android-устройствах, а также curl, проявляют бОльшую принципиальность и выдают назойливое предупреждение в стиле "сертификат получен из недоверенного центра сертификации" если сервер не предоставил полную цепочку сертификатов из корневого и всех промежуточных.

Чтобы проверить, имеет ли сервер полную цепочку сертификатов, имеется чудесный сервис https://www.ssllabs.com/ssltest/. Вводим там домен и смотрим:

Находим сертификат по ingerprint -у

Как найти промежуточный SSL-сертификат с помощью SSLLABS

"Extra download" означает, что наш веб-сервер не предоставил сертификат и SSLLabs-у пришлось искать дополнительные сертификаты самостоятельно. Что, надо отметить, у него отлично получается :) Смотрим на Fingerprint SHA1 и видим там 47f2db11606b7a5836c5b9582cefc33a0d67c4fe. Далее забиваем fingerprint в google и смотрим что он знает по этому поводу. В моем случае нашлось по ссылке https://ssl-tools.net/subjects/154d4e79cc1ed804d85a622d56b4608e206cc935:

Intermediate-сертификат от Symantec CA

Найденный промежуточный сертификат Symantec Basic DV SSL CA - G2

Там дальше клацаем по кнопочке PEM и получаем искомый промежуточный SSL-сертификат, который нужно прописать в конфигах веб-сервера. Профит!

А в этой статье написано как сделать правильный c точки зрения SSLLabs конфиг haproxy.

Posted in Howto.


smartctl -x на RAID-контроллере HP Smart Array E200i

Как-то раз на просторах ынтернета попался мне совет запустить smartctl с параметром -x.

Я, конечно, как всякий homo sapiens, сначала почитал man:

-x, --xall
     Prints all SMART and non-SMART information about the device. For ATA
     devices this is equivalent to ´-H -i -g all -c -A -f brief
     -l xerror,error -l xselftest,selftest -l selective -l directory
     -l scttemp -l scterc -l devstat -l sataphy´.
     and for SCSI, this is equivalent to
     ´-H -i -A -l error -l selftest -l background -l sasphy´.

Не увидев там ничего стрёмного, выполнил вот такую командочку:

# smartctl -x -a -d cciss,0 /dev/cciss/c0d0
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-2.6.32-642.13.1.el6.x86_64] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
 
/dev/cciss/c0d0 [cciss_disk_00] [SCSI]: Device open changed type from 'sat,auto' to 'cciss'
Vendor:               SEAGATE 
Product:              ST91000640SS    
Revision:             0001
User Capacity:        1,000,204,886,016 bytes [1.00 TB]
Logical block size:   512 bytes
Logical Unit id:      0x5000c50025fd7283
Serial number:        9XG02CLM00009126234W
Device type:          disk
Transport protocol:   SAS
Local Time is:        Tue Jan 31 15:29:39 2017 UTC
Device supports SMART and is Enabled
Temperature Warning Enabled
SMART Health Status: OK
 
Current Drive Temperature:     22 C
Drive Trip Temperature:        68 C
Manufactured in week  of year 20
Specified cycle count over device lifetime:  10000
Accumulated start-stop cycles:  36
Specified load-unload count over device lifetime:  300000
Accumulated load-unload cycles:  36
Elements in grown defect list: 3
Vendor (Seagate) cache information
  Blocks sent to initiator = 791069177
  Blocks received from initiator = 8147385
  Blocks read from cache and sent to initiator = 6510918
  Number of read and write commands whose size <= segment size = 1294551
  Number of read and write commands whose size > segment size = 0
Vendor (Seagate/Hitachi) factory information
  number of hours powered up = 37972.70
  number of minutes until next internal SMART test = 12
 
Error counter log:
           Errors Corrected by           Total   Correction     Gigabytes    Total
               ECC          rereads/    errors   algorithm      processed    uncorrected
           fast | delayed   rewrites  corrected  invocations   [10^9 bytes]  errors
read:    8169902        0         0   8169902          0       2604.051           0
write:         0        0         0         0          0          4.359           0
 
Non-medium error count:        1
 
[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
No self-tests have been logged
Long (extended) Self Test duration: 12198 seconds [203.3 minutes]
Segmentation fault (core dumped)

И... консолька замерла, связь с сервером пропала, пинга нет. Слава Хэнку, что сервер был не из production-кластера. И через пару минут самостоятельно поднялся.

При этом стоит отметить, что командочка smartctl -a -d cciss,0 /dev/cciss/c0d0 (то же самое, но без -x) там же пару минут ранее выполнялась несколько раз без каких-либо проблем. OS – CentOS 6.8 x86_64, RAID-контроллер HP Smart Array E200i.

Мораль: будьте осторожны со smartctl. Я предупредил.

Posted in *nix.

Tagged with , .


Elasticsearch: уменьшение занятого места на диске

удаление indices в elasticsearch

Как отключить marvel-plugin в elasticsearch


В один прекрасный день SMS от nagios-а известила меня, что на сервере закончилось место. Как оказалось, место закончилось в основном по той причине, что директория /var/lib/elasticsearch/my-elasticsearch/nodes/0/indices разрозслась до неприличных размеров (около 100ГБ). Заглянув вовнутрь, я обнаружил кучу директорий с именами вида:

122M    .marvel-2016.04.01
127M    .marvel-2016.04.02
132M    .marvel-2016.04.03
140M    .marvel-2016.04.04
144M    .marvel-2016.04.05
149M    .marvel-2016.04.06
154M    .marvel-2016.04.07
158M    .marvel-2016.04.08
164M    .marvel-2016.04.09

Этак за пару годиков около 100ГБ и насобиралось. Дядька гугл подсказал, что файлы эти создаются с целью сбора статистики по работе elasticsearch. Так как эта статистика в моем случае никому нафиг не сдалась, я решил от них избавиться. Делается это простым HTTP-запросом, например, с помощью curl:

$ curl -XDELETE 127.0.0.1:9200/.marvel-2016.03*
{"acknowledged":true}

Данная командочка удалит все поддиректории в дире indices за март 2016-го года, тем самым освободив нам около 4ГБ дискового пространства.

А чтобы вообще в принципе отключить создание этих файлов, нужно деактивировать плагин с именем marvel. Делается это так:

$ sudo /usr/share/elasticsearch/bin/plugin --remove marvel
-> Removing marvel...
Removed marvel
$ sudo /sbin/service elasticsearch restart
Stopping elasticsearch:            [  OK  ]
Starting elasticsearch:            [  OK  ]

Posted in *nix, Howto.