среда, 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.

четверг, 25 июня 2015 г.

git и bitbucket = беспарольная работа

Сделали клон какого-то репозитария, и активно с ним работаем, но ввод пароля утомляет. Что делать? Можно настроить беспарольный вход по ssh ключам.

1) создадим ключи. Делаем от того пользователя, от которого будем работать, то есть не рута.

ssh_keygen -b 2048 -N '' -f ~/.ssh/bitbucket
cat >> ~/.ssh/config <<EOF
Host bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket
EOF

chmod 0600 ~/.ssh/config
cat ~/.ssh/bitbucket.pub

2)
вывод - на битбакет (публичный ключ), раздел настройки (manage) - security - SSH keys - add key
User git - не меняем, так и должно быть, актуальный юзер указывается в пути.

Если надо сделать ключ для деплоя (только для чтения), то добавляется он в другое место - открываем репозиторий, слева внизу settings, там в Deployment keys придумываем имя ключа (оно же будет логином) и вставляем ключ, полученный выше.

3) проверка
ssh -T git@bitbucket.org

Если что-то не так, можно руками добавить после -T: -i (какой файл использовать)

Нормальный вывод:
authenticated via a deploy key.


You can use git or hg to connect to Bitbucket. Shell access is disabled.

This deploy key has read access to the following repositories:

и дальше список, куда можно логиниться. Смотрим интересующие нас репы и копируем/запоминаем первую часть до двоеточия (:), понадобится дальше.

4) Использование
git clone ssh://git@bitbucket.org/(тут пишем/вставляем нужную репу, выбранную выше)

хотя если в .ssh/config есть User git, то из клона можно убрать git@

Линки
https://confluence.atlassian.com/display/BITBUCKET/Add+an+SSH+key+to+an+account
https://confluence.atlassian.com/display/BITBUCKET/Set+up+SSH+for+Git
https://confluence.atlassian.com/display/BITBUCKET/Use+deployment+keys
http://jeka.by/post/1051/setup-ssh-keys-for-bitbucket-github/ - с картинками

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

bridge on boot

При сборке мостов, например для виртуализации, часто требуется автозагрузка каких-то мостов на старте системы.
Управление - через brctl, пакет bridge-utils, ставим через yum или apt-get