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
apt-get install --reinstall python-pkg-resources
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
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
Серверы :
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
Условные обозначения :
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:
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:
9. После успешного старта node2, node3 заходим в mongo на мастере и подключаем слейвы :
rs.add("mongo-slave1.server.com")
rs.add("mongo-slave2.server.com")
и проверяем статус :
rs.status()
Итак, на сервере ни с того ни с сего начались проблемы — апач валился по 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 и смотрим, из какого каталога работает процесс.