No module named pkg_resources

Posted in Новости on 20 сентября, 2016 by admin


apt-get install --reinstall python-pkg-resources


wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python

Tags: ,

Быстрый сетап elasticsearch cluster на docker

Posted in Новости on 14 апреля, 2016 by admin

node1 — master — 1.1.1.1
node2 — slave — 2.2.2.2
node3 — slave — 3.3.3.3

Одна нода :

docker run -d --name es-master -p 9200:9200 es
docker run -d --name es-slave1 --link es-master -e UNICAST_HOSTS=es-master es
docker run -d --name es-slave2 --link es-master -e UNICAST_HOSTS=es-master es

Между разными docker нодами.
node1 :

docker run --net=host -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e CLUSTER=Prod itzg/elasticsearch

node2,node3 :

docker run --net=host -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e UNICAST_HOSTS=1.1.1.1 -e CLUSTER=Prod itzg/elasticsearch

Tags: , , , ,

Запускаем docker consul кластер между физическими серверами

Posted in Новости on 14 апреля, 2016 by admin

Серверы :

node1 - master - external ip : 1.1.1.1
node2 - slave - external ip : 2.2.2.2
node3 - slave - external ip : 3.3.3.3

Стартуем master :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
-p 53:53/udp \
progrium/consul -server -advertise=1.1.1.1 -bootstrap-expect 3

Стартуем первый slave :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise=2.2.2.2 -join 1.1.1.1

Стартуем второй slave :

docker run -d -v /mnt:/data \
--name consul \
-p 8300:8300 \
-p 8301:8301 \
-p 8301:8301/udp \
-p 8302:8302 \
-p 8302:8302/udp \
-p 8400:8400 \
-p 8500:8500 \
progrium/consul -server -advertise=3.3.3.3 -join 1.1.1.1

Tags: , , , ,

Поднимаем mongodb кластер на docker.

Posted in Новости on 13 апреля, 2016 by admin

Условные обозначения :

node1 - mongo-master.server.com - first_ip
node2 - mongo-slave1.server.com - second_ip
node3 - mongo-slave2.server.com - third_ip

1. Создаем на сервере окружение :

mkdir -p /opt/mongo
cd /opt/mongo
openssl rand -base64 741 > mongodb-keyfile
chmod 600 mongodb-keyfile
chown 999 mongodb-keyfile

2. Собираем и стартуем контейнер на node1 :

docker run --name mongo -v /opt/mongo/mongo-files/data:/data/db -v /opt/mongo/mongo-files:/opt/keyfile --hostname="mongo-master.server.com" -p 27017:27017 -d mongo:2.6.5 --smallfiles

3. Заходим в контейнер

docker exec -it mongo /bin/bash

4. Конфигурируем mongo-master :

mongo

use admin

db.createUser( {
user: "siteUserAdmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
});

db.createUser( {
user: "siteRootAdmin",
pwd: "password",
roles: [ { role: "root", db: "admin" } ]
});

exit

5. Выходим из контейнера :

exit
docker stop mongo

6. Удаляем текущий контейнер и запускаем новый с ключом :

docker run --name mongo -v /opt/mongo/mongo-files/data:/data/db -v /opt/mongo/mongo-files:/opt/keyfile --hostname="mongo-master.server.com" --add-host mongo-master.server.com: --add-host mongo-slave1.server.com: --add-host mongo-slave2.server.com: -p 27017:27017 -d mongo:2.6.5 --smallfiles --keyFile /opt/keyfile/mongodb-keyfile --replSet "rs0"

7. Заходим на node1 в контейнер и включаем репликацию :

docker exec -it mongo /bin/bash

mongo

use admin

db.auth("siteRootAdmin", "password");


rs.initiate()


{
"info2" : "no configuration explicitly specified -- making one",
"me" : "node1.example.com:27017",
"info" : "Config now saved locally. Should come online in about a minute.",
"ok" : 1
}


rs.conf()


{
"_id" : "rs0",
"version" : 1,r
"members" : [
{
"_id" : 0,
"host" : "node1.example.com:27017"
}
]
}

8. Стартуем node2 , node3 mongo docker

docker run --name mongo -v /opt/mongo/mongo-files/data:/data/db -v /opt/mongo/mongo-files:/opt/keyfile --hostname="mongo-slave1.server.com" --add-host mongo-master.server.com: --add-host mongo-slave1.server.com: --add-host mongo-slave2.server.com: -p 27017:27017 -d mongo:2.6.5 --smallfiles --keyFile /opt/keyfile/mongodb-keyfile --replSet "rs0"

9. После успешного старта node2, node3 заходим в mongo на мастере и подключаем слейвы :

rs.add("mongo-slave1.server.com")
rs.add("mongo-slave2.server.com")

и проверяем статус :

rs.status()

Tags: , , ,

Один из способов решения проблемы с разрастающимися процессами apache

Posted in Новости on 12 марта, 2016 by admin

Итак, на сервере ни с того ни с сего начались проблемы — апач валился по MaxClients. Никаких манипуляций не производилось. Ищем виновника. Смотрим, что делают только что созданные процессы через strace :

root@xxx # strace -p 6806
Process 6806 attached - interrupt to quit
flock(226, LOCK_EXl^C
Process 6806 detached

Видим, что процесс ждет блокировки файлового дескриптора 226.
Далее, смотрим, что это за файл :

root@xxx # ls -la /proc/6806/fd/226
lrwx------ 1 root root 64 Mar 12 18:04 /proc/6806/fd/226 -> /var/www/xxx/data/mod-tmp/sess_udo951qv42mqk3s0l2ggmiqq66

Далее выведем все процессы, которые используют файл :

lsof /var/www/xxx/data/mod-tmp/sess_udo951qv42mqk3s0l2ggmiqq66

Видим, что их много.
Смотрим в один из процессов через lsof -p pid и смотрим, из какого каталога работает процесс.

Tags: , ,