nagios - настройка клиента

Здесь клиент - это сервер, который нужно мониторить.

Установка nrpe (агент передачи данных)

 # yum install nrpe

Пример /etc/nagios/nrpe.cfg:

 log_facility=daemon
 pid_file=/var/run/nrpe.pid
 server_port=5666
 nrpe_user=nrpe
 nrpe_group=nrpe
 allowed_hosts=127.0.0.1,62.68.143.112
 dont_blame_nrpe=1
 debug=0
 command_timeout=60
 connection_timeout=300
 include_dir=/etc/nrpe.d/
 
 command[check_load]=/usr/lib/nagios/plugins/check_load -w $ARG1$ -c $ARG2$
 command[check_disk]=/usr/lib/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p / -p /boot/ -p /vz
 
 command[check_mysql]]=/usr/lib/nagios/plugins/check_mysql -w $ARG1$ -c $ARG2$ -u nagios -p dbpassword
 command[check_http]=/usr/lib/nagios/plugins/check_http -w $ARG1$ -c $ARG2$ -H HOST -4
 command[check_smtp]=/usr/lib/nagios/plugins/check_smtp -w $ARG1$ -c $ARG2$ -H HOST -4
 command[check_ftp]=/usr/lib/nagios/plugins/check_ftp -w $ARG1$ -c $ARG2$ -H HOST -4
 command[check_imap]=/usr/lib/nagios/plugins/check_imap -w $ARG1$ -c $ARG2$ -H HOST -4
 command[check_pop3]=/usr/lib/nagios/plugins/check_pop -w $ARG1$ -c $ARG2$ -H HOST -4
 
 command[check_raid]=/usr/lib/nagios/plugins/check_megaraid_sas -s $ARG1$

Шпаргалка - добавление поддержки PL/pgSQL

Для версии PostgreSQL < 8.3

 # yum install postgresql-pl

Для версии PostgreSQL ⇒ 8.3

 # yum install postgresql-plperl

Добавляем поддержку языка для конкретной БД:

 # createlang plpgsql database_name

Ссылки

Обновление postgreSQL до 8.3 в Plesk

На хостинг-сервере установлена и работает CentOS 5.x + Plesk 9.x, установлена «из коробки» СУБД postgreSQL 8.1, в работе несколько БД на postgreSQL. Задача - клиенты попросили выполнить обновление СУБД postgreSQL до версии 8.3
Моё решение ниже.

Сделаем дамп всех пользовательских БД (в Plesk уже были сделаны). Но можно выполнить из командной строки:

 # pg_dump -U root database_name > database_name.sql

либо

 # pg_dump -U root database_name |gzip > database_name.sql.gz

Подключим сторонний репозиторий с бинарными пакетами postgreSQL 8.3 для CentOS 5.x

 # rpm --ivh http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm
 

Обновим PostgreSQL

 
 # yum update postgresql-server

Повышение безопасности в Plesk 9

Plesk - это веб-панель управления хостингом. Позволяет создавать сайты, домен, базы данных, почтовые ящики и т.п.

Панель Plesk не выставляет safe_mode в on при конфигурации php-fastcgi+apache, а также open_basedir оставляет по-умолчанию пустым.
Панель Plesk может выставить safe_mode в on при наличии конфигурации mod_php+apache, а также выставляет open_basedir=/var/www/vhosts/имя_сайта:/tmp

Выполним ряд шагов по повышению безопасности связки LAMP (Linux Apache MySQL PHP):

Правка /etc/php.ini

 safe_mode = On // директива накладывает ограничения на выполнение системных команд, например, ls, pwd, cat и т.д.
 safe_mode_gid = On // директива разрешает писать/открывать в файл при совпадении владельца группы файла с владельцем группы запущенного процесса. Выставляется группа psacln для /var/log/baxtep, иначе safe_mode не даст записать лог.
 open_basedir = /var/www/vhosts:/tmp:/var/log/baxtep // директива разрешает выполнение php-команд (fopen) только в указанных каталогах.

mdadm - мониторинг и восстановление программного RAID

Мониторинг состояния

Информация о всех RAID-массивах

 # watch -n 1 cat /proc/mdstat

Информация о конкретном дисковом разделе

 # mdadm -E /dev/sd<a-b><1-10>

Пример

 # mdadm -E /dev/sdb2

Восстановление функционирования (при потере второго диска)

Восстановление функционирования (rebuild) разделов диска по одному после однократного «несмертельного» сбоя:

 # mdadm -a /dev/md<0-6> /dev/sd<a-b><1-10>

например:

 # mdadm -a /dev/md0 /dev/sdb1
 

Нужно быть аккуратным с номерами разделов.
В случае ошибки, удалить компонент из RAID командой:

 # mdadm -r /dev/md0 /dev/sdb1

получается не всегда - устройство может быть занято.

Восстановление функционирования (при потере первого диска)

Грузимся с live-cd, проверяем наличие дисков в системе, создаем идентичные разделы на новом диске и заново создаем массив:

 # mdadm --create /dev/md0 --auto=yes --level=raid1 --raid-devices=2 /dev/sdb1 /dev/sda1 (соглашаемся создать массив с существующими разделами, данные будут скопированы с раздела /dev/sdb1 на раздел /dev/sda1)

Выставим загрузочный лэйбл на правильный раздел:

 # fdisk /dev/sdb

Жмем a и выбираем нужный раздел

 # fdisk /dev/sda

Жмем a и выбираем нужный раздел

Восстанавливаем mbr:

 # mount –o bind /dev /mnt/sysimage/dev
 # mount –t proc /proc /mnt/sysimage/proc
 # chroot /mnt/sysimage/ /bin/bash
 # grub-install /dev/sda

либо

 # dd if=mbr_backup.bin of=/dev/sda bs=1 count=512
 # exit

Замена диска

  • Выключить компьютер и заменить диск
  • Включить компьютер и определить имеющиеся на обоих дисках разделы:
 # fdisk /dev/sd<a-b> -l
  • С помощью fdisk создать на новом диске разделы, идентичные оригиналу. Необходимо пометить нужный раздел нового диска (sda1 или sdb1) как загрузочный до включения в зеркало. Swap-разделы не подлежат зеркалированию в программном RAID
  • Выполнить Мониторинг состояния и Восстановление функционирования

Настройка оповещения

Мониторинг выполняется с помощью crond ежечасно. В папку /etc/cron.haurly помещен файл mdRAIDmon, содержащий команду:

 # mdadm --monitor --scan -1 --mail=postmaster@domain.name.ru

Для проверки рассылки сообщения добавляется ключ –test:

 # mdadm --monitor --scan -1 --mail=postmaster@domain.name.ru --test

Помещая файл задания в папку, необходимо установить права доступа на выполнение Если нужно чаще, самое простое, добавьте в /etc/crontab строку:

  • /5 * * * * root run-parts /etc/cron.my5min

Справка

Необходимо держать бэкап mbr:

# dd if=/dev/sda of=mbr_backup.bin bs=1 count=512

Для восстановления всего MBR поменять if/of местами.

Таблица разделов находится в MBR по смещению 0x01BE (446) и состоит из 4 записей по 16 байт.

Для восстановления только таблицы разделов:

 # dd if=mbr_backup.bin of=/dev/sda bs=1 count=64 skip=446 seek=446

Под FreeBSD

 dd if=/dev/ad10 of=mbr bs=512 count=1

Ссылки

 
blog.txt · Последние изменения: 2013/01/23 14:51 — Антон Бугреев · []