Posts Tagged ‘ Debian

Мониторинг Docker контейнеров в Zabbix

Мониторить хочу количество контейнеров в состоянии Running/Crashed/Available. Для нескольких особо важных контейнеров нужно иметь возможность мониторить их статус по имени.
Что до количества, взял готовое решение вот тут. Добавил в Zabbix вот так:
Размещаем в /etc/zabbix/scripts такой вот скриптец под именем docker_status.sh:

#!/bin/bash
 
function countContainers() {
    docker ps -q $1 | wc -l
}
 
function countCrashedContainers() {
    docker ps -a | grep -v -F 'Exited (0)' | grep -c -F 'Exited ('
}
 
TYPE=${1-all}
 
case $TYPE in
    running) COUNT_FUNCTION="countContainers"; shift;;
    crashed) COUNT_FUNCTION="countCrashedContainers"; shift;;
    all) COUNT_FUNCTION="countContainers -a"; shift;;
esac
 
$COUNT_FUNCTION

Читать полностью

Установка Zabbix-agent 2.2 в Debian Squezee

В официальных репозитариях Debian Squezee есть zabbix версии 1.8 Я же хотел установить zabbix-agent хотя бы версии 2.0 Но оказалось что для Debian Squezee в репах Zabbix-а есть агент версии 2.2 Его я и буду ставить! Для начала качаем файлик с репозитарием:

black@deb5:~$ wget -c http://repo.zabbix.com/zabbix/2.2/debian/pool/main/z/zabbix-release/zabbix-release_2.2-1+squeeze_all.deb

И установим его:

black@deb5:~$ sudo dpkg -i zabbix-release_2.2-1+squeeze_all.deb
Selecting previously deselected package zabbix-release.
(Reading database ... 54804 files and directories currently installed.)
Unpacking zabbix-release (from zabbix-release_2.2-1+squeeze_all.deb) ...
Setting up zabbix-release (2.2-1+squeeze) ...
black@deb5:~$

Поехали дальше … Читать полностью

Debian GNU Linux — Установка/миграция eGroupWare

Итак, у меня новая задача — перенести программу eGroupWare со старого сервера на новый. Тем кому нужно заинсталить с нуля — тоже статья пригодится … хоть и ничего сложного в этом нет 🙂
Старая версия 1.8.003 установлена на Debian, база в mysql
Новая версия доступная в репозитарии 1.8.005, ее и будем подымать на новом сервере. Hostname нового сервера — cr.mycom.loc

Делается миграция очень просто:
1. На новом сервере устанавливаем с нуля самую новую версию mysql-server и EGW
2. На старом сервере делаем дамб базы данных и переносим его на новый сервер
3. На новом сервере восстанавливаем базу с дампа в «рабочую базу» свежеустановленного EGW
4. На новом сервере делаем Upgrade EGW (Через WEB интерфейс)
5. При желании, немного оптимизации

Поехали …. Читать полностью

Debian Squeezy — Установка пакета конкретной версии

Столкнулся на одном из серверов со странной ситуацией. Для установки более новой версии zabbix-agent добавил официальную репу Zabbix-а, скормил apt-у ключ этой репы, сделал apt-get update, но устанавливать zabbix-agent apt всеравно хотел из официальной репы. Итак …. пробуем разобраться!
Смотрим что есть в репах:

black@srv1:~$ sudo apt-cache showpkg zabbix-agent
Package: zabbix-agent
Versions:
1:2.2.8-1+squeeze (/var/lib/apt/lists/repo.zabbix.com_zabbix_2.2_debian_dists_squeeze_main_binary-amd64_Packages)
 Description Language:
                 File: /var/lib/apt/lists/repo.zabbix.com_zabbix_2.2_debian_dists_squeeze_main_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b

1:2.0.4-1~dotdeb.0 (/var/lib/apt/lists/download.softagency.net_debian_dotdeb_dists_squeeze_all_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/download.softagency.net_debian_dotdeb_dists_squeeze_all_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b

1:1.8.2-1squeeze4 (/var/lib/apt/lists/security.debian.org_dists_squeeze_updates_main_binary-amd64_Packages)
 Description Language:
                 File: /var/lib/apt/lists/security.debian.org_dists_squeeze_updates_main_binary-amd64_Packages
                  MD5: 94cbfad20f3ff85a4bd88cb90c7e629a


Reverse Depends:
Dependencies:
1:2.2.8-1+squeeze - libc6 (2 2.7) libcurl3-gnutls (2 7.16.2-1) libldap-2.4-2 (2 2.4.7) debconf (18 0.5) debconf-2.0 (0 (null)) adduser (0 (null)) ucf (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
1:2.0.4-1~dotdeb.0 - libc6 (2 2.7) libcurl3-gnutls (2 7.16.2-1) libldap-2.4-2 (2 2.4.7) ucf (0 (null)) adduser (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
1:1.8.2-1squeeze4 - libc6 (2 2.7) libldap-2.4-2 (2 2.4.7) libopenipmi0 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) adduser (0 (null)) ucf (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
Provides:
1:2.2.8-1+squeeze -
1:2.0.4-1~dotdeb.0 -
1:1.8.2-1squeeze4 -
Reverse Provides:
black@srv1:~$

Тоесть с разных репозитариев доступно 3 разных версии zabbix-agent (1:2.2.8-1+squeeze, 1:2.0.4-1~dotdeb.0, 1:1.8.2-1squeeze4) Читать полностью

Sources.list для Debian 8 — Jessie

Итак, не дожидаясь релиза решил попробовать на рабочей тачке Debian Jessie. Установил Debian Minimal, подправил sources.list на такой:

# Main Debian Jessie Repository - UA Mirror #
deb http://ftp.ua.debian.org/debian/ jessie main contrib non-free
#deb-src http://ftp.ua.debian.org/debian/ jessie main contrib non-free

# Main Security Repository #
#deb http://security.debian.org/ jessie/updates main contrib non-free
#deb-src http://security.debian.org/ jessie/updates main contrib non-free

# Security Updates - UA Mirror #
deb http://ftp.ua.debian.org/debian-security/ jessie/updates main contrib non-free

# Jessie-updates, previously known as 'volatile' - UA Mirror #
deb http://ftp.ua.debian.org/debian/ jessie-updates main contrib non-free
#deb-src http://ftp.ua.debian.org/debian/ jessie-updates main contrib non-free

# Multimedia Updates - UA Mirror #
deb http://ftp.ua.debian.org/debian-multimedia/ jessie main non-free

# Proposed Updates - UA Mirror #
deb http://ftp.ua.debian.org/debian/ jessie-proposed-updates main contrib non-free

# Jessie Backports - UA Mirror #
deb http://ftp.ua.debian.org/debian/ jessie-backports main contrib non-free

и сделал заветные

root@deb:~# apt-get update && apt-get dist-upgrade

Читать полностью

MySQL — master/slave replication error «Duplicate entry»

Не так давно в очередной раз отвалилась MySQL реплика!
Казалось бы репликация в mysql за многие годы должна быть вылизана до идеала, но почемуто на практике это не так. Очень часто репликация master/slave в MySQL отваливается с ошибкой:

2014-09-26 08:57:14 42399 [ERROR] Slave SQL: Could not execute Write_rows_v1 event on table diff_wp.wp_options; Duplicate entry '_transient_is_multi_author' for key 'option_name', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000051, end_log_pos 128112, Error_code: 1062
2014-09-26 08:57:14 42399 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000051' position 127907

У меня уже такое было, и я писал что на тот момент нашел временное решение. Но почему временное? Просто не было времени разбираться, а разобравшись … понял что тот вариант не совсем мне подходил. Итак, вариантов решения много — выбирай что нравится! Читать полностью

Nagios3 — Мониторим Bandwidth в ESX 5.x через SNMP

Расскажу и покажу как мониторить загруженность сетевых интерфейсов (bandwidth) в ESX версии 5.x через SNMP. К слову сказать, с помощью SNMP в ESX можно мониторить загрузку CPU, памяти, винтов и прочие параметры … но главное понять принцип как это делается, а дальше — дело техники! Для начала на серваке с ESX нужно включить SNMP. Не вижу смысла повторять героический подвиг и ваять скриншотики, вот тут коллеги уже прекрасно справились — тыц!
Итак, далее предполагаю что Nagios3 у вас уже установлен и настроен. Поехали дельше … Читать полностью

APT — небольшой тюнинг с файлами «Translation»

Не знаю замечали Вы или нет, но apt по умолчанию тащит все переводы подряд. Давно хотел ограничить только En, Ua, и Ru. Вот оказывается как просто это делается:

root@deb:~# echo 'Acquire::Languages { "ua"; "ru"; "en"; };' > /etc/apt/apt.conf.d/93translaions

После этого я удалил то что apt вытащил ранее

root@deb:~# rm -r /var/lib/apt/lists/*Translation*

Ну и дальше проверяем: Читать полностью

Серьезная проблема с Bash — срочно обновиться!

Вот так нежданно-негаданно в мире Open Source вылезла еще одна масштабная проблема. Мир еще не успел оправиться от дырок в OpenSSL (все помнят Heartbleed), а тут на тебе — оказывается «фундамент тоже сыроват»! На этот раз свинью подложил Bash! А ведь он основной shell почти во всех дистрибутивах Linux и часто активно юзается админами *BSD! Уловили масштаб трагедии??? Можно подумать, ну баш и баш — что такого то? Проблема в том что он так или иначе связан с серьезными системными сервисами, например sshd, apache, git, некоторыми ftp и тд. Не говоря уже о том что ленивые админы и программисты не желая разбираться в хитроумных встроенных библиотеках python, perl и прочих языков в том или ином виде юзают «башизмы в CGI скриптах (сам такой, реализация find в perl выедает мне моск), которые выставлены в Интернет на всеобщее обозрение и легко могут быть использованы со злым умыслом 🙂 Сама суть проблемы в том что злоумышленник может через тот же ssh или apache подменить переменные ENV, что позволит ему удаленно выполнять произвольный код на системе жертвы без какойлибо авторизации! Заманчиво? Глядите на простейшую реализацию хака … простота неописуемая! Но идем дальше … Читать полностью

Debian/Ubuntu — watchdog для сервисов

Собственно по непонятным причинам на одном из серверов отваливается mysql. Давно хотел на критичные сервисы «натравить» watchdog, а вот и случай подвернулся 🙂 Итак, что делать для того чтобы восстановить работу «упавшего» сервиса? В репозитариях есть пакет watchdog, но он перегружает сервер в случай некой беды, будь то превышенный Load Avarage либо отвалившийся пинг и тд. Это нам не особо подходит. Можно конечно и там настроить реакцию на ивент не ребут, а выполнение своего собственного скрипта, но толку тогда от watchdog, если его работа периодическая (в системе и так есть Cron) и он умеет перегружать сервис только с помощью самописного скрипта … Короче скрипт что так, что сяк нужно писать самому, решил что watchdog это уже overhead. Читать полностью