Шаблон для мониторинга Linux-хоста использует ssh-подключение к хосту. 1.Необходимо произвести настройки согласно пунктам 1-6 из этой статьи https://kamaok.org.ua/?p=1409 2.Импортирование шаблона У меня используется spine вместо cmd.php и частота запуска определена как 60 секунд (вместо дефолтных 300 секунд).Поэтому перед импортированием шаблона от Percona, в котором также используется 300 секунд, необходимо изменить частоту запуска на 60 […]
Архивы за месяц Декабрь, 2015
Настройка мониторинга Linux-хоста в Cacti средствами Percona Monitoring Plugins
Настройка мониторинга Nginx, Memcached, Redis в Cacti средствами Percona Monitoring Plugins
Мониторинг Nginx 1.Узнаем под каким пользователем запускается poller
1 |
# grep -ri cacti /etc/cron* |
1 |
/etc/cron.d/cacti:* * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 |
В данном случае под пользователем cacti 2. Создаем пару SSH-ключей без пароля и сохраняем ключи в /etc/cacti
1 |
# ssh-keygen |
1 2 3 4 5 6 |
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /etc/cacti/id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /etc/cacti/id_rsa. Your public key has been saved in /etc/cacti/id_rsa.pub. |
3.Выставляем корректного владельца на ключи – пользователя cacti
1 |
# chown cacti /etc/cacti/id_rsa* |
1 |
# ls -al /etc/cacti/ | grep id |
1 2 |
-rw------- 1 cacti root 1679 Dec 29 22:52 id_rsa -rw-r--r-- 1 cacti root 406 Dec 29 22:52 id_rsa.pub |
4.Создаем пользователя,например, cacti на клиенте(192.168.1.100), с которого будет сниматься статитика
1 |
# ssh -p 2220 root@192.168.1.100 adduser cacti |
[…]
Настройка мониторинга дисковой подсистемы в Cacti
1.Загружаем и распаковываем архив Cacti_Net-SNMP_DevIO_v3.1
1 |
# unzip Cacti_Net-SNMP_DevIO_v3.1.zip |
2.Копируем файл net-snmp_devio.xml на Cacti сервер в каталог resource/snmp_queries/
1 |
# cp net-snmp_devio.xml /usr/share/cacti/resource/snmp_queries/ |
3.Импортируем по очереди шаблоны
1 |
Console->Import Templates |
1 |
net-snmp_devIO-BytesRW_graph_TMPL.xml |
1 |
net-snmp_devIO-LoadAVG_graph_TMPL.xml |
1 |
net-snmp_devIO-ReadsWrites_graph_TMPL.xml |
И самым последним импортируем шаблон
1 |
net-snmp_devIO-Data_query.xml |
4.Добавляем новый Data Queries
1 |
Console->Devices->ServerName->Associated Data Queries->ucd/net – Get Device I/O и Re-Indexed Method->Index count Changed->Add |
5.Создаем графики
1 |
Console->Devices->ServerName->Create Graphs for this Host->Data Query-> |
выбираем устройства(диски),например, vda, sda(либо разделы sda1, sda2 и т.д.)->graph type-> Bytes Read/Written Аналогично […]
Настройка мониторинга PHP-FPM в Cacti
Есть три сайта, каждый из которых использует свой PHP-FPM-пул
1 2 3 |
kamaok.us - /etc/php-fpm.d/kamaok.conf joomla.us - /etc/php-fpm.d/joomla.conf wordpress.us - /etc/php-fpm.d/wordpress.conf |
И дефолтный сайт
1 |
default.us - /etc/php-fpm.d/www.conf |
1.Настройка PHP-FPM для снятия статистки Включаем отображение статуса для каждого php-fpm-пула
1 |
# nano /etc/php-fpm.d/kamaok.conf |
1 2 |
pm.status_path = /status-kamaok ping.path = /ping-kamaok |
1 |
# nano /etc/php-fpm.d/joomla.conf |
1 2 |
pm.status_path = /status-joomla ping.path = /ping-joomla |
1 |
# nano /etc/php-fpm.d/wordpress.conf |
1 2 |
pm.status_path = /status-wordpress ping.path = /ping-wordpress |
1 |
# nano /etc/php-fpm.d/www.conf |
1 2 |
pm.status_path = /status ping.path = /ping |
1 |
# php5-fpm –t |
1 |
# service php-fpm reload |
2.Настройка Nginx для отображения PHP-FPM-статистики Настраиваем все пулы в дефолтном Nginx хосте
1 |
# nano /etc/nginx/conf.d/default.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
location ~ ^/(status-kamaok|ping-kamaok)$ { fastcgi_pass unix:/var/run/php5-fpm.kamaok.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log off; allow 127.0.0.1; allow 192.168.1.0/24; allow <IP-address-Cacti-server>; deny all; } location ~ ^/(status-wordpress|ping-wordpress)$ { fastcgi_pass unix:/var/run/php5-fpm.wordpress.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log off; allow 127.0.0.1; allow 192.168.1.0/24; allow <IP-address-Cacti-server>; deny all; } location ~ ^/(status-joomla|ping-joomla)$ { fastcgi_pass unix:/var/run/php5-fpm.joomla.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log off; allow 127.0.0.1; allow 192.168.1.0/24; allow <IP-address-Cacti-server>; deny all; } location ~ ^/(status|ping)$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log off; allow 127.0.0.1; allow 192.168.1.0/24; allow <IP-address-Cacti-server>; deny all; } |
1 |
# nginx –t |
1 |
# service nginx reload |
Локально с […]
Настройка мониторинга Nginx в Cacti
1.Проверяем наличие поддержки http_stub_status модуля.
1 |
# nginx -V 2>&1 | grep -o http_stub_status_module |
1 |
http_stub_status_module |
2.Настраиваем хост по умолчанию на отображение статистики Nginx.
1 |
# nano /etc/nginx/conf.d/default.conf |
1 2 3 4 5 6 7 8 |
location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; allow 192.168.1.0/24; allow <IP_address_Cacti_server>; deny all; } |
1 |
# nginx –t |
1 |
# service nginx reload |
Проверяем вывод Nginx-статистики
1 |
# lynx http://<ip-address-client>/nginx_status |
1 2 3 4 |
Active connections: 1 server accepts handled requests 3 3 10 Reading: 0 Writing: 1 Waiting: 0 |
3.Скачиваем необходимые скрипты/шаблоны и копируем скрипты get_nginx_clients_status, get_nginx_socket_status в папку scripts на сервере Cacti. Отсюда качаем необходимые скрипты/шаблоны http://forums.cacti.net/about26458.html Либо с моего сайта cacti-nginx.tar Выставляем корректные права на скрипты […]
Nginx — полезные мелочи (security, redirect)
Безопасность 1.Блокировка определенных User-Agents. Создаем файл с запрещенными User-Agent-ами
1 |
# nano /etc/nginx/blockuseragents.rules |
1 2 3 4 5 6 7 8 |
map $http_user_agent $blockedagent { default 0; ~*malicious 1; ~*bot 1; ~*backdoor 1; ~*crawler 1; ~*bandit 1; } |
Подключаем файл с запрещенными User-Agent-ами(вставляем перед секцией server)
1 |
include /etc/nginx/blockuseragents.rules; |
Добавляем в секцию server запрет для указанных в файле User-Agents
1 2 3 4 5 6 |
server { if ($blockedagent) { return 444; } …… } |
Либо второй вариант. Например , защита от сканеров
1 2 3 4 5 |
server { if ( $http_user_agent ~* (nmap|nikto|wikto|sf|sqlmap|bsqlbf|w3af|acunetix|havij|appscan) ) { return 444; } } |
Тестируем
1 |
# wget --user-agent "I am a bandit" http://example.com/index.html |
2.Защита от HotLink. Для конкретного location
1 2 3 4 5 6 7 8 |
location /images/ { # Или для определенных типов файлов #location ~ .(gif|png|jpe?g)$ { valid_referers none blocked example.com *.example.com; if ($invalid_referer) { return 444; } } |
3.Защита от реферального спама. […]
Установка и использование Percona XtraBackup
1.Установка Percona XtraBackup Centos
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
1 |
# yum install percona-xtrabackup |
Ubuntu Импортируем публичный GPG-ключ
1 |
# apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A |
Добавляем репозитарий Percona
1 |
# echo "deb http://repo.percona.com/apt "$(lsb_release -sc)" main" | tee /etc/apt/sources.list.d/percona.list |
Проверяем,что добавился новый репозитарий
1 |
# cat /etc/apt/sources.list.d/percona.list |
1 |
deb http://repo.percona.com/apt trusty main |
Обновляем локальный кеш и устанавливаем пакет
1 |
# apt-get update && apt-get install percona-xtrabackup |
Также можно скачать конкретную версию Percona XtraBackup для требуемой операционной системы с официального сайта Percona
1 |
https://www.percona.com/downloads/XtraBackup/ |
Update: Установка XtraBackup-2.4 на Ubuntu/Debian
1 |
# wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# dpkg -i percona-release_0.1-4.xenial_all.deb |
1 |
# apt-get update |
1 |
# apt-get install percona-xtrabackup-24 |
[…]
Установка и использование Percona Toolkit
Установка Percona Toolkit Debian/Ubuntu
1 |
# wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb |
1 |
# apt-get update |
1 |
# apt-get install percona-toolkit |
Centos
1 |
# yum install perl-IO-Socket-SSL perl-Digest-MD5 perl-TermReadKey |
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm |
1 |
# yum install percona-toolkit |
1 |
pt-variable-advisor |
Анализ переменных MySQL(на основе SHOW VARIABLES) и вывод рекомендаций
1 |
# pt-variable-advisor localhost |
1 |
pt-query-digest |
Анализ slow-log,списка процессов(show processlist) или tcpdump 1)Отчет самых медленных запросов из файла
1 |
# pt-query-digest /var/log/mysql/mysql-slow.log |
2)Отчет самых медленных запросов из списка процессов
1 |
# pt-query-digest --processlist h=127.0.0.1 |
Либо через анализ tcpdump
1 |
# tcpdump -s 65535 -x -nn -q -tttt -i any -c 10 port 3306 > mysql.tcp.txt |
1 |
# pt-query-digest --type tcpdump mysql.tcp.txt |
1 |
pt-ioprofile |
Просмотр […]
Установка и настройка Percona XtraDB Cluster на Centos7/Ubuntu14
Разработчик продукта рекомендует использовать минимум 3 ноды для создания кластера(причины описаны в статье). С целью знакомства с этим продуктом использовалось две ноды на виртуальных машинах. 1.Установка Percona XtraDB Cluster Centos
1 |
# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm |
Подключаем EPEL-репозитарий(если он еще не был подключен)
1 |
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm |
Устанавливаем пакет, необходимій для Percona XtraDB Cluster
1 |
# yum install socat |
Устанавливаем PXC
1 |
# yum install Percona-XtraDB-Cluster-56 |
Отклчаем SELinux, если он […]