< meta name="referrer" content="origin">
Home » Linux » Zabbix настройка мониторинга температуры

Zabbix настройка мониторинга температуры

Появилась у меня потребность мониторить температуру windows серверов в Zabbix. Из систем мониторинга он мне больше всего нравится, поэтому смотрел в его сторону. Решение задачи оказалось неожиданно простым, о чем я и хочу вам рассказать.

Введение

Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:

  1. Установка CentOS 7.
  2. Настройка CentOS 7.
  3. Установка и настройка zabbix сервера.

То же самое на Debian 9, если предпочитаете его:

  1. Установка Debian 9.
  2. Базовая настройка Debian 9.
  3. Установка и настройка zabbix на debian.

Текущая статья писалась для версии 2.4, все скриншоты приведены из нее. В настоящее время уже вышли более новые версии, но вся нижеизложенная инструкция не потеряла актуальности. Все будет работать и в новой версии.

Подготовка к мониторингу в Zabbix

Описанным мной способом можно мониторить температуру не только windows серверов, но и любых рабочих станций, если будет такая необходимость. Схема мониторинга следующая:

Существует бесплатная утилита Open Hardware Monitor, которая может показывать температуру некоторых датчиков сервера. Вообще говоря, она много чего может показывать (напряжение, скорость вентиляторов, загрузку процессора), но в данном случае нас интересует только температура. У этой утилиты есть версия, работающая в командной строке. Из командной строки показания датчиков можно записывать в файл. Этот файл можно анализировать и забирать из него необходимую для мониторинга информацию. Дальше эта информация передается в сервер Zabbix с помощью опции UserParameter. Все достаточно просто и в то же время эффективно.

Приступим к реализации. Скачиваем GUI версию утилиты по ссылке, приведенной ранее и консольную версию OpenHardwareMonitorReport. Запускаем GUI на сервере и смотрим, какие датчики нам доступны для мониторинга.

OpenHardwareMonitor для мониторинга в Zabbix

Программа увидела несколько датчиков. С процессором все понятно, а вот три других датчика не ясно, чью температуру показывают. Я хотел мониторить температуру процессора и материнской платы. Узнать, какая температура относится к материнской плате можно несколькими способами. Конкретно в данной ситуации я просто запустил портированную версию AIDA64 и посмотрел, какие показания у датчика материнской платы:

AIDA64 мониторинг температуры

Оказалось — 45 градусов. Я запомнил, что датчик Temperature #3 отображает температуру материнской платы.

Можно было пойти другим путем, зайти в IPMI панель, если она есть, и посмотреть там. Я работал с серверами SuperMicro, там она есть. Я на всякий случай зашел и проверил:

IPMI сенсоры мониторинга

Почему-то в этой панели не оказалось информации с датчика температуры процессора. Но нам это не важно. Самое главное, что мы узнали параметры, за которыми будем следить — это CPU Packege и Temperature #3. Теперь запускаем консольную версию и смотрим вывод информации. Я для удобства положил OpenHardwareMonitorReport.exe в папку с основной программой и все это хозяйство скопировал в корень диска C:

OpenHardwareMonitorReport экспорт данных в файл

Открываем файл 1.txt. Ищем там строки

|  +- CPU Package    :       52       51       52 (/intelcpu/0/temperature/4)
|  |  +- Temperature #3 :       45       45       45 (/lpc/nct6776f/temperature/3)

Нас интересует выделенный текст. По нему мы будем вычленять температуру для мониторинга и передавать ее на Zabbix сервер. Создаем в этой же папке 2 bat файла следующего содержания:

CPUTemperature.bat

@echo off
for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/intelcpu/0/temperature/4">nul && set temper=%%a 
echo %temper%

MotherTemperature.bat

@echo off
for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/lpc/nct6776f/temperature/3">nul && set temper=%%a 
echo %temper%

Запускаем эти батники в командной строке и проверяем вывод. Там должны быть только цифры температуры:

cmd вывод температур с датчиков

Отлично, на выходе готовые цифры, которые мы будем передавать в Zabbix. Займемся его настройкой.

Настройка Zabbix agent в Windows

Предполагается, что у вас уже настроен сервер мониторинга Zabbix и подключены клиенты, которые ему передают информацию. В данном материале я не буду касаться непосредственно установки и настройки сервера Zabbix, это будет отдельный материал. Сейчас же мы берем готовый файл конфигурации агента zabbix_agentd.win.conf и добавляем в самый конец файла следующие строки:

UserParameter=Temperature.CPU, C:\OpenHardwareMonitor\CPUTemperature.bat
UserParameter=Temperature.Mother, C:\OpenHardwareMonitor\MotherTemperature.bat

Перезапускаем службу агента Zabbix, чтобы изменения вступили в силу.

Настройка мониторинга на Zabbix сервере

Теперь идем на сервер. У меня Zabbix установлен на сервере CentOS, хотя это не принципиально. Добавляем новый Item. Пойти можно двумя путями:

  • Создать template, в него добавить все items, создать триггеры, графики и назначить этот шаблон нужным серверам.
  • К каждому серверу отдельно добавлять только необходимые итемы и вручную добавлять триггеры и графики.

Очевидно, что первым путем идти удобнее и разумнее. Я так и поступил, но в процессе реализации столкнулся с проблемой. Не все сервера имеют одинаковый набор датчиков. Где-то я не смог снять температуру с материнской платы, где-то вместо одного процессора, стояло два и хотелось снимать температуру с обоих камней. Как будет в вашем случае — не знаю. Если все серверы однотипные, то создавайте template, если все разные, то вручную добавляйте каждый итем на сервер. Я в итоге сделал и шаблон для одинотипных серверов, и вручную добавлял итемы туда, где имелись отличия от шаблона.

Итак, сначала создадим шаблон. Идем в ConfigurationsTemplatesCreate Template. Шаблон я назвал Temperature Windows. Добавил в него ApplicationTemperature, затем Item CPU Temperatue. Заполняем поля итема как у меня на картинке:

Zabbix создание итема

Параметр Temperature.CPU тот же самый, что и в файле конфигурации агента.

По аналогии создаем итем Mother Temperatue:

Zabbix создание item

Сохраняем шаблон. По желанию создаем для него триггеры и графики. Можно и без них. Добавляем шаблон к серверу, который хотим мониторить. Ждем некоторое время и идем проверять входящие данные. Открываем MonitoringLatest data:

Zabbix latest data

Нажимаем graph и смотрим график:

Zabbix график температуры

Теперь добавим в Zabbix еще один сервер для мониторинга, который будет отличаться по конфигурации от предыдущего. На его примере я покажу, как менять настройки клиента и сервера. С этого сервера я не могу снять данные с датчика температуры материнской платы, по какой причине — не знаю, но не AIDA64 ни OpenHardwareMonitor мне температуру не показывают. Ее можно взять по SNTP с этого сервера, но это отдельная тема. В этом сервере 2 процессора и я хочу мониторить температуру обоих.

Запускаем GUI интерфейс и смотрим, какие датчики мы сможем мониторить:

Open Hardware Monitor

Нас будет интересовать температура обоих ядер процессора. Теперь запускаем OpenHardwareMonitorReport.exe с выводом информации в текстовый файл. Смотрим, как выглядят строки с интересующей нас информацией:

|  +- CPU Package    :       59       59       59 (/intelcpu/0/temperature/6)
|  +- CPU Package    :       53       53       54 (/intelcpu/1/temperature/6)

Создаем два bat файла следующего содержания:

CPU1Temperature.bat

@echo off
for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/intelcpu/0/temperature/6">nul && set temper=%%a
echo %temper%

CPU2Temperature.bat

@echo off
for /F "usebackq tokens=7-10" %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find "/intelcpu/1/temperature/6">nul && set temper=%%a
echo %temper%

Редактируем конфигурационный файл zabbix_agentd.win.conf агента Zabbix на клиенте. Добавляем в конец две строки:

UserParameter=Temperature.CPU1, C:\OpenHardwareMonitor\CPU1Temperature.bat
UserParameter=Temperature.CPU2, C:\OpenHardwareMonitor\CPU2Temperature.bat

Перезапускаем службу агента, чтобы изменения вступили в силу.

Дальше идем на сервер Zabbix и по аналогии с предыдущим сервером создаем там Итемы мониторинга. Причем итемы создаем не в шаблоне, а в конкретном сервере, который будем мониторить. Параметр key в этих итемах будет соответственно Temperature.CPU1 и Temperature.CPU2 Ждем некоторое время и проверяем результат.

item became not supported

Во время отладки работ я столкнулся с проблемами. Периодически Item отваливались и получали статус: Not Supported. При этом в логах сервера были следующие записи:

27614:20150702:065936.698 item "videoserver:Temperature.CPU" became not supported: Timeout while executing a shell script.
27625:20150702:070938.720 item "videoserver:Temperature.CPU" became supported

То есть данные то собирались, то переставали собираться. Иногда, чтобы данные снова пошли, приходилось удалять итем и создавать его заново. Некоторое время я повозился, пока не понял, в чем дело.

Я обратил внимание, что при запуске батника из командной строки, вывод данных происходит с приличной задержкой в 3-5 секунд. В Zabbix по-умолчанию стоит параметр, по которому агент ожидает ответа от скрипта 3 секунды и на сервере есть подобный параметр, по которому сервер ждет ответа от агента 3 секунды. Если за это время данные не поступают, то итем переходит в статус Not Supported и данные с него не собираются.

Чтобы избавиться от этой ошибки, необходимо увеличить таймаут до 15-ти секунд. Меняем параметр в конфиге на клиентах и на сервере. Он и там и там один и тот же:

Timeout=15

Потом перезапускаем сервер и агентов и ждем результатов. Больше ошибок быть не должно.

На этом, собственно настройка мониторинга температуры окончена. Можно дальше все оформить как полагается: настроить тригеры, оповещения, графики красивые нарисовать. Кому что нужно. Я себе вывел вот такую картинку для наглядности:

Zabbix мониторинг температуры


Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по Zabbix

Рекомендую полезные материалы по Zabbix:
Настройки системы
  • Установка 3.2 на CentOS 7
  • Обновление 3.0 -> 3.2
  • Обновление 2.4 -> 3.0
  • Установка Zabbix Proxy
  • Работа на NGINX
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание обновления системы мониторинга zabbix версии 3.0 до новой версии 3.2.
Пошаговая процедура обновления сервера мониторинга zabbix 2.4 до 3.0. Подробное описание каждого шага с пояснениями и рекомендациями.
Подробное описание установки и настройки zabbix proxy для организации распределенной системы мониторинга. Все показано на примерах.
Подробное описание установки системы мониторинга Zabbix на веб сервер на базе nginx + php-fpm.
Мониторинг служб и сервисов
 
  • Температура процессора
  • Nginx и php-fpm
  • Mysql репликация
  • Службы Linux
  • Рейд mdadm
  • Транки Asterisk
  • Synology
Мониторинг температуры процессора с помощью zabbix на Windows сервере с использованием пользовательских скриптов.
Настройка полноценного мониторинга web сервера nginx и php-fpm в zabbix с помощью скриптов и пользовательских параметров.
Мониторинг репликации mysql с помощью Zabbix. Подробный разбор методики и тестирование работы.
Описание настройки мониторинга tcp служб с помощью zabbix и его инструмента простых проверок (simple checks)
Настройка мониторинга рейда mdadm с помощью zabbix. Подробное пояснение принципа работы и пошаговая инструкция.
Подробное описание мониторинга регистраций транков (trunk) в asterisk с помощью сервера мониторинга zabbix.
Подробная инструкция со скриншотами по настройке мониторинга по snmp дискового хранилища synology с помощью сервера мониторинга zabbix.
Мониторинг различных значений
  • Мониторинг сайта
  • Мониторинг бэкапов
  • Размер бэкапа
  • Делегирование домена
  • Значения из текстового файла
  • Мониторинг логов
Настройка мониторинга web сайта в zabbix. Параметры для наблюдения - доступность сайта, время отклика, скорость доступа к сайту.
Один из способов мониторинга бэкапов с помощью zabbix через проверку даты последнего изменения файла из архивной копии с помощью vfs.file.time.
Подробное описание настройки мониторинга размера бэкапов в Zabbix с помощью внешних скриптов.
Пример настройки мониторинга за временем делегирования домена с помощью Zabbix и внешнего скрипта. Все скрипты и готовый шаблон представлены.
Описание мониторинга лог файлов в zabbix на примере анализа лога программы apcupsd. Отправка оповещений по событиям из лога.

27 комментариев

  1. Отличный гайд! Спасибо!
    Датчики CPU/HDD работают, однако при попытке снять температуру GPU график не появляется.
    Батник отрабатывает и показывает реальную температуру, график в Zabbix пишет GPU Temperature [no data], в логах сервера
    2820:20170123:112614.418 item «Miner-04:GPU.1.Temperature» became not supported: Received value [ECHO is off] is not suitable for value
    type [Numeric (unsigned)] and data type [Decimal]
    при смене на Float, соответственно в логах
    2823:20170123:113044.631 error reason for «Miner-04:GPU.1.Temperature» changed: Received value [ECHO is off.] is not suitable for value
    type [Numeric (float)]

    Может есть идеи, куда копать? Спасибо!

    • Где-то ошибка. В zabbix на итем приходит не цифровое значение, а что-то другое. Я постоянно сталкиваюсь с такими ошибками. Надо отлаживать. Проверить можно через zabbix_agentd -t «имя итема» что он вообще отправляет на сервер.

      • Вообще очень странно. Я включил дебаг, в заббикс приходит значение «ECHO is off».
        По вашему совету сделал команду, вот странный вывод:
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t CPU.Temperature.Core.1
        CPU.Temperature.Core.1 [t|ECHO is off.]
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t GPU.1.Temperature
        GPU.1.Temperature [t|52]
        c:\zabbix>zabbix_agentd.exe -c zabbix_agentd.win.conf -t CPU.Temperature.Core.1
        CPU.Temperature.Core.1 [t|62]
        То есть в первом случае, когда я парсил температуру CPU, мне выдало Echo is off, а через несколько секунд выдало реальную температуру.
        Однако, с температурой CPU проблем нет (в плане графиков, заббикс её понимает). А информацию о температуре GPU как раз (как я выше и описал) заббикс получить и не может. Однако судя по консольной команде выше, агент переваривает итем GPU.1.Temperature и возвращает нормальное числовое значение.

        Батники идентичны, при запуске батника выводится реальная информация.

        Получается, что отправляет на сервер корректное число, а сервер его не принимает и по всем айтемам пишет [no data].
        ЧСХ это касается ТОЛЬКО датчиков GPU. ВСЕХ GPU. Все (!) датчики CPU, RAM, HDD работают корректно.
        Весь инет перегуглил, не могу найти решения. 🙁

        • Ну если что, решил через powershell скрипт вместо батника:

          param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)

          (Get-WmiObject -Namespace Root\OpenHardwareMonitor -Class sensor | where {$_.identifier -eq «/$hw/$hwid/$sensor/$sensorid»}).value

          В zabbix_agentd.conf
          UserParameter=system.sensor[*],powershell.exe C:\scripts\cpuid.ps1 $1 $2 $3 $4

          В zabbix
          В item:
          key = system.sensor[intelcpu,0,temperature,0]

          —-
          Только надо чтоб GUI-версия была запущена, можно в авторан пихнуть и спрятать в трей.
          Оставлю это здесь, вдруг кому пригодится:) Такого готового решения в инете я не нашел.

          • Если не трудно распишите поподробнее

          • Пытаюсь через PowerShell запустить этот батник cpuid.ps1, но выдается ошибка:

            PS D:\OpenHardwareMonitor> .\cpuid.ps1
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:11
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing expression after ‘=’.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:10
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing ‘)’ in function parameter list.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:22
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Missing argument in parameter list.
            At D:\OpenHardwareMonitor\cpuid.ps1:1 char:67
            + param($hw=»nvidiagpu», $hwid=0, $sensor=»temperature», $sensorid=0)
            + ~
            Unexpected token ‘)’ in expression or statement.
            At D:\OpenHardwareMonitor\cpuid.ps1:3 char:92
            + … \OpenHardwareMonitor -Class sensor | where {$_.identifier -eq «/$hw/$ …
            + ~
            You must provide a value expression following the ‘-eq’ operator.
            At D:\OpenHardwareMonitor\cpuid.ps1:3 char:93
            + … sor | where {$_.identifier -eq «/$hw/$hwid/$sensor/$sensorid»}).value
            + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            Unexpected token ‘«/$hw/$hwid/$sensor/$sensorid»’ in expression or statement.
            + CategoryInfo : ParserError: (:) [], ParseException
            + FullyQualifiedErrorId : MissingExpressionAfterToken

            Что делаю не так. подскжите?

  2. Тоже пошел путем powershell — не так тормозит систему и более универсальное решение…
    Скрипт powershell
    param($hw, $hwid, $sensor, $sensorid)
    (Get-WmiObject -Namespace Root\OpenHardwareMonitor -Class sensor | ?{$_.identifier -eq «/$hw/$hwid/$sensor/$sensorid»}).value

    Кстати, нужно разрешить выполнение скриптов
    Открываем powershell и делаем команду Set-ExecutionPolicy RemoteSigned
    Потом подтверждаем — Y

    В zabbix_agentd.conf
    UserParameter=system.sensor[*],powershell.exe C:\путь\до\вашего\скрипта powershell.ps1 $1 $2 $3 $4

    В zabbix
    В item:
    Имя — GPU1 Temperature
    system.sensor[atigpu,0,temperature,0] // ключи до вашей видюхи… у меня получилось так

    Я делал шаблон для мониторинга ферм, в ней 4 видюхи, сделал ключи для температуры, кулера и нагрузки…
    Примерно так:
    system.sensor[atigpu,0,temperature,0]
    system.sensor[atigpu,6,temperature,0]
    system.sensor[atigpu,12,temperature,0]
    system.sensor[atigpu,18,temperature,0]

    system.sensor[atigpu,0,fan,0]
    system.sensor[atigpu,6,fan,0]
    system.sensor[atigpu,12,fan,0]
    system.sensor[atigpu,18,fan,0]

    system.sensor[atigpu,0,load,0]
    system.sensor[atigpu,6,load,0]
    system.sensor[atigpu,12,load,0]
    system.sensor[atigpu,18,load,0]

    Все данные пошли. Осталось вот тригеры дописать и счастье 🙂
    Могу скинуть целиком шаблон…

    • Чисто для справки, почему powershell не так тормозит? Это чем-то обусловлено или только предположения? Я несколько раз использовал описанный в этой статье пример, у меня нормально работает. В одном офисе до сих пор с момента написания статьи трудятся эти скрипты и мониторят температуру. Вчера буквально проверял.

    • можно шаблон? либо просто посмотрю либо под себя переделаю.

  3. Я не знаю чем обусловлено, но для работы батников как минимум нужно увеличивать таймаут и агента и сервера. Скрипты power shel работают на дефолтных таймаутах. Да и визуально zabbix_get -s 10.0.2.14 -k system.sensor[atigpu,0,temperature,0] — который стучится на powershell скрипт — отдает результат в консоль за 1 секунду.
    zabbix_get -s 10.0.2.14 -k GPU1_temp — стучится на батник, отдает через 4 секунды…

  4. Константин

    Добрый день!
    У меня следующая проблема: При считывании параметров программой есть значение «| +- Temperature Difference from 100 : 64 64 64 (/hdd/0/temperature/0)»
    При добавлении параметра «@echo off
    for /F «usebackq tokens=7-10» %%a in (`C:\OpenHardwareMonitor\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find «/hdd/0/temperature/0″>nul && set temper=%%a
    echo %temper%» в bat файл, в ответ получаю «Режим вывода команд на экран (ECHO) отключен.». В чем может быть проблема?

    • проблема в том что tokens=7-10 означает что из строки | +- Temperature Difference from 100 : 64 64 64 (/hdd/0/temperature/0)
      7-10 часть будет «: 64 64 64», а еще наверняка сначала строки есть еще одна палка |
      поэтому поиск по строке не проводится и в echo нечего вывести

  5. Евгений

    Добрый день!
    Спасибо за статью. Однако столкнулся с проблемой. Есть батник на виндовой машине.
    @echo off
    for /F «usebackq tokens=7-10» %%a in (`C:\OHMReport\OpenHardwareMonitorReport.exe`) do echo %%b %%c %%d| find «/atigpu/0/temperature/0»>nul && set temper=%%a
    echo %temper%
    Вызываю на ней через
    c:\zabbix>zabbix_agentd.exe -t Temperature.GPU
    получаю [t|67]
    вроде всё ок.

    Но с сервера через zabbix_get -s serv -k Temperature.GPU
    вываливается
    ▒▒▒▒▒ ▒뢮▒▒ ▒▒▒▒▒▒ ▒▒ ▒࠭ (ECHO) ▒⪫▒祭
    Соответственно и на веб морде тоже самое в LatestData.

    Кто сталкивался с такой особенностью?

    Спасибо.

  6. Виктор

    А сталкивался ли кто с тем, что через несколько часов память компьютера забивается полностью и приходится его перегружать? Столкнулся с этим недавно и путем экспериментов выяснил, что именно мониторинг температуры процессора забивает память (хотя в памяти не видно запущенных процессов zabbix_agent’а). Используется бат-файл, думаю поэкспериментировать с повершеллом.

  7. А нет случайно файлика шаблона для импорта для удобства?

    • Я там сильно под себя настраивал, нет смысла в паблик выносить.

      • Аноним

        На Kaby Lake не работает слежение за сенсорами температуры , можно ли как то исправить ?

        • Только если найти софт, который будет в консоль выводить температуру.

          • Вышла новая версия OHWM 0.8.0 beta
            но там в составе нету OpenHardwareMonitorReport.exe, вы сами делали эту службу?

            • Нет, она была.

              • Ради интереса скачал v 0.7.1 с офф сайта, и там в составе нету. Что я делаю не так?

                • Честно говоря, сейчас уже не могу вспомнить, где я взял консольную версию. Я похоже ее и сохранил именно к себе, так как она не входила в стандартный набор программы. Где-то в англоязычном инете я ее нашел и использовал. Думаю, в гугле по имени файла или по ключевым словам можно будет найти эту версию.

  8. Только знакомлюсь с linux системами (буквально месяц). Установил ubuntu server 16 версию, поставил zabbix server\client снимаю стандартные метрики с серваков, нагрузка CPU/HDD , пытаюсь настроить снятие температуры как расписано выше, но в результате на графике пусто. В комментах выше увидел увидел проблему как и у меня, батники отрабатывают, а сервер их не считывает(игрался с задержками не помогло), люди прописали через shell и у них заработало, переделал тоже на шелл, попробовал оба варианта которые описывались, но та жа история, куда можно посмотреть, что пропустил? И есть момент, как можно проверить правильно ли срабатывает скрипт шелл, если запускаю через шелл (как по аналогии батники через командную) в ответ ругается, что не распознает команду.

  9. Не выводится температура при обычном запуске через cmd,только если запустить cmd «от администратора» получаю температуру. Изначально учетка уже имеет права админа,но температуру не получает. Куда копать подскажите?

Добавить комментарий

Ваш e-mail не будет опубликован.