среда, 22 июля 2015 г.

FreeBSD, gsutil и костыли

Установка проста, "по мануалу"
cd /root
wget --no-check-certificate https://storage.googleapis.com/pub/gsutil.tar.gz
tar -zvxf gsutil.tar.gz
mkdir bin
cd bin
ln -s ../gsutil/gsutil

понедельник, 20 июля 2015 г.

zfs: подключаем лог записи и кэш (ZIL и l2arc)

ZFS можно существенно ускорить, если подключить кэши чтения и записи, но для этого требуется SSD, и лучше несколько.
О чём нужно помнить:

  • кэш записи будет сильно изнашивать диск(и), поэтому если делать серьёзно, то надо ставить SLC или eMLC диски, в зеркало
  • + сами диски обязаны иметь обвязку для сброса данных на флэш при отключении питания. То есть 99% бытовых дисков использовать себе дороже.
  • Кэш чтения - можно ставить и бытовые SSD, но лучше подбирать по большому числу IOPS и большой линейной скорости. Если денег много или очень много горячих данных - eMLC предпочтительнее.
  • диски кэша чтения в зеркало не объединяются, но учитывая логику работы - ошибка с SSD - читаем с основного массива, это не критично, только упадёт производительность.
  • при использовании аппаратных рейдов кэш чтения крайне желательно подключать в обход рейда, в набортный сата, при его наличии и соответствию минимум sata 3gbit стандарту, лучше сата 3 - 6Гбит.

четверг, 16 июля 2015 г.

Шаблоны zabbix

Где искать шаблоны (актуально 2.0+)

Официальная "хранилка". Не сказать что много чего есть, но начать можно оттуда
https://share.zabbix.com/

Форум, много чего есть, использовать поиск
Zabbix Cookbook

Вики, тоже можно заглянуть
https://www.zabbix.org/wiki/Main_Page

Русская ветка
https://www.zabbix.com/forum/forumdisplay.php?f=21

и например оттуда
Ubiquiti UniFi + zabbix
Интерактивная карта для Zabbix.

Прочие источники
Наверное, под 90% всего открытого выложено на github, например
https://github.com/jjmartres/Zabbix/tree/master/zbx-templates
https://github.com/kmomberg/pyZabbixSender

Как менять лимиты на лету

Есть ulimit, есть /etc/limits.conf, но для применения изменений надо перезапускать софт или перезагружать сервер.
Но можно менять и "на лету". Правда, для этого нужен util-linux не ниже 2.23, так что centos 6 и debian 7 в пролёте. Называется prlimit
prlimit --pid <pid> --<limit>=<soft>:<hard>

В более ранних версиях можно попробовать конструкцию вида
echo -n "Max processes=20000:191967" > /proc/`pidof mysqld`/limits

среда, 15 июля 2015 г.

zabbix-get: command not found

# zabbix_get
-bash: zabbix_get: command not found

Если поставить штатую репу, в совсем последних версиях _вдруг_ пропал zabbix_get. Причина? Теперь это отдельный пакет
yum install -y zabbix-get

вторник, 14 июля 2015 г.

mysqldump: убрать DEFINER из бэкапа

В некоторых версиях появилась бесполезная хрень называемая DEFINER, паразитирующая на CREATE VIEW, CREATE PROCEDURE.
Почему хрень? Потому что такой функционал востребован максимум в 5% бэкапов и должен включаться опционально, и штатно НЕ НУЖЕН. Так что 2 пути - выпиливать из кода или обработать дамп.
Первый шаг пропустим, второй - коды разные, синтаксис тоже. Коды 50017, 50013
пример на sed:
sed -i'' 's/DEFINER=[^*]*\*/\*/g' mydump.sql


http://stackoverflow.com/questions/9446783/remove-definer-clause-from-mysql-dumps

понедельник, 13 июля 2015 г.

Как получить свой айпи, через который уходят запросы в мир

ip -o -f inet a |awk -v iface="$(ip -o -f inet r get 8.8.8.8|awk '{print $5}')" '$2==iface{sub(/\/.*$/,"",$4); print $4}'может иметь смысл для скриптов, "куда биндиться".

Получить свой внешний адрес сложнее, прямых способов я пока не знаю, только через сервисы типа myip.com (подставить свой любимый), пример
curl -s myip.com | grep Client_IP | awk '{print $2}'

среда, 8 июля 2015 г.

snmp + agentX, быстрая настройка

Ставим net-snmp, net-snmp-utils
Если агент нам нужен только под 1 сервис - имеет смысл штатный хитрый конфиг переименовать, взяв за основу самый простой.

zabbix 2.4: The frontend does not match Zabbix database и далее

Запустили один не очень новый сервер с заббиксом и вылезло
Zabbix server will automatically upgrade the database
The frontend does not match Zabbix database. Current database version (mandatory/optional): 2020000/2020000. Required mandatory version: 2030000. Contact your system administrator.

RabbitMQ: Highly Available Queues

Сделать high availability несложно, но нюансы далее.
Быстрый старт.

среда, 1 июля 2015 г.

couchbase: получить список вьюх

http://[localhost]:8091/pools/default/buckets/[bucket-name]/ddocs

дока
http://docs.couchbase.com/admin/admin/REST/rest-ddocs-get.html

Небольшой бонус: синхронизатор вьюх
HOST=''
HOST_TO=''
AUTH='-u Administrator:pass'
BUCKET=''
for i in `curl ${AUTH} -s http://${HOST}:8091/pools/default/buckets/$BUCKET/ddocs |sed -e 's#/#\n#g' |egrep "^_design"|sort|uniq| awk -F '%2F' '{print $2}'` ; do
        curl $AUTH -s "http://${HOST}:8092/$BUCKET/_design/$i" > $i.ddoc
        curl $AUTH -s -X PUT -d @${i}.ddoc -H 'Content-Type: application/json' "http://${HOST_TO}:8092/$BUCKET/_design/$i"
done

nginx+pootle

Pootle - это система на базе django, помогающая с переводом .po файлов на разные языки, в том числе отслеживание изменений.
Поскольку это питон, желательно использовать uWSGI и nginx.