Pull to refresh

Comments 59

Мы, в свое время, решили такую задачу чисто софтовым методом — измеряли температуру внутри корпуса нескольких серверов, усредняли, и ставили триггер на превышение. По моему, стандартные счетчики температуры у системы выводились в Windows, дальше все было элементарно.
Позднее решение дополнили бэкапным независимым датчиком с GSM модемом (обычная самая дешевая «сигналка» для дачи с датчиком температуры). На случай, если в момент отказа кондея что-то случится с сетью/системой мониторинга, или просто будет ночь.
А не проще(дешевле) использовать что-нибудь типа SNR-ERD 3s (или аналоги)? Можно данные забирать\отправлять сразу по SNMP, 3-5 датчиков температуры. DI\DO в наличии.
Возможно проще, но вот что дешевле сильно сомневаюсь — контроллер 0.5-1$, обвязка стоит копейки, usb порт можно выкинуть и впать кабель в плату, сама плата, даже если заказывать, выйдет не дороже 2-3$.

У меня была идея разместить спереди и сзади стойки по 5-6 датчиков DS18B20, благо шина это позволяет. И стоить на основе данных тепловые карты распределения температуры воздуха. Т.к. как правило одной цифры для всей серверной может быть не достаточно.
Но реализовать так и не довелось.

Я ставлю в серверной дополнительные вентиляторы чтобы воздух перемешивался и не было застойных зон.
Ой как сложно. Несколько диодов и резистор в com порт. Опрашивать библиотекой digitemp. Несколько лет такая фигня уже работает.


Соглашусь! Делал на днях наспех по этой схеме, что бы быстренько предъявить УК график температуры батареи. Данные снимаю через digitemp, картинки collectd+rrd. COM порт на материнке.
Добавлю, что можно использовать USB-UART преобразователь, например, на CP210x — в этом случае дополнительно нужен только резистор 4.7… 10 кОм

image

Прекрасно работает через digitemp — баловался с мониторингом температуры и фотоконтролем за котами через Telegram-бота
Сильно упрощает. Пока навесом паял все эти диоды и стабилитроны (в наличии только 3V3 — пришлось комбинировать), наделал ошибок. Но USB-UART просто не было под рукой
Для DS18S20 к тому же можно попытаться паразитное питание использовать — на двух проводах датчик прицепить. Но IMHO не слишком надежный вариант, поэтому я не даже и не пробовал.
И GND тут нормально подключен, что повышает помехоустойчивость и живучесть при статических разрядах…
Интересно, можно ли пробросить порт в виртуальную машину vmware и опрашивать из нее?
А потом машина переедет на соседний хост и будет тщетно искать свой USB-датчик.
Не стоит привязывать датчик температуры к серверу. SNMP сильно лучше будет.
Как это отменяет мой ответ на вопрос и причём тут usb?)
Ответ — да, не отменяет. Но решение о пробросе физических портов сервера внутрь, до виртуалки, не имеет права на жизнь в продуктивной среде. Я ак считаю ;)
USB? Так в этой ветке комментов идет уже обсуждение датчиков на COM-портах и USB :)
Иногда лучше иметь мониторинг из говна и палок, чем не иметь никакого.
Кто бы спорил. Просто если есть серверная, то цена вопроса готового SNMP датчика, по сравнению с ценой вопроса решения из говна и палок, будет не сильно отличаться.
На момент разработки небыло нужных контроллеров, но я уже думал о реализации через SNMP, на базе — PIC32+ethernet PHY, например.
Да, вполне. Проверял на virtualbox, в этом случае энумерация USB устройства проходит в два этапа — хостовой осью и соответственно гостевой.
Можно и так, кстати у нас так сделан опрос уличного датчика, для выдачи титра с температурой. Просто когда возникла потребность в устройстве, я как раз заканчивал разбирать USB спецификации, это надо было для другого проекта, ну и подумал почему бы не сделать сразу на USB без ардуин, cp210x и прочих мам, пап, кредитов.

Сервер где стоит устройство должен работать. Zabbix должен работать. Канал связи тоже может внезапно упасть (например если используется провод у оператора связи может не быть резервного питания оборудования в этом здании).
А ведь могло быть независимое от электропитания и работоспособности сервера устройство как пишут в первом сообщении.


При внезапной духовке в серверной из-за внезапных отключений кондиционера на скорую руку мониторилась температура чипсета и ежедневно рассылались sms сообщения для тестирования работы всей системы.

Как раз в данный момент занимаюсь проектом для мониторинга\управления бензиновым генератором. Необходимо измерять уровень топлива, наличие напряжения на входе\выходе, температуру, управлять нагрузкой. Остановился на Arduino mega + Ethernet shield, библиотекой Agentuino, логированием на SD карту, и всё это с Web мордой. Если интересно, постараюсь запилить статью на эту тему.
Ethershield умеет неплохо так зависать
так у него же ресет отдельно выведен

Пилите статью, интересно сравнить с промышленными решениями по цене и эффективности.
В создании двух подобных систем принимала участие, от 50 до 250 тысяч только за железо выходило.

Да, писал выше в ответе на другой комментарий, что есть в планах перевод на SNMP этого дела, но на PIC32+Realtek 100mb или любой другой PHY, ардуины как-то не очень. Кстати, если ether shield на ENC28J60, то подтверждаю — зависают через рандомный промежуток времени, возможно это только в первых ревизиях, но мне хватило с ними проблем чтобы не иметь никакого желания больше использовать их в принципе, да и самих ревизий было 6 или 7, что говорит само за себя. И еще потребление под 200мА.
Я отказался в своих проектах на ардуино от Ethernet shield, дорого, когда устройств много, и ненадежно работает. Использую modbus на скорости 9600. Если команды на исполнительные и устройства и датчики идут с частотой от единиц минут, то все норм тянет. На шине у меня уже 10 slave устройств. Чем модбас хорош, серверную часть можно поменять на любой ПЛК по мере развития. Например мегу я со временем заменил на малину, скрипты переписал на питоне.
Диагностику slave устройств также легко проводить. Подключил к ПК через переходник USB-RS485 и вперед.
У меня одно время за окном висел китайский термометр, который был подключен к ближайшему окну через USB удлинитель. Сам термометр — просто USB брелок с проводом и датчиком. Опрос производился небольшой программкой. Первый сервер работал на FreeBSD, потом был сервер на Linux. Везде работало. При поставленной задаче всё упрощается, потому что просто втыкаем брелок в любой сервер и вытягиваем провод с датчиком в удобное для измерения месте.
Подключение к Zabbix? Ну если из командной строки можно получить данные на экране, то высылать эти данные в Zabbix, думаю, не составит труда. У меня эти данные через HTTP улетали на сервер в интернете по задаче в cron.
Если не секрет, какой бюджет был? Или это за свои делалось?
Судя по всему дороже, чем USB свисток готовый. По крайней мере три контроллера на алиэкспресе стоят как один свисток.
И что мы будем делать, когда температура все же начала расти? У нас же должны быть два кондиционера как минимум и блок ротации. Мониторить желательно не просто температуру в серверной, а дельту на входе и выходе кондиционера. Если с кондеем что то не так — по дельте мы узнаем о неисправности самого кондиционера раньше. И самое главное — у нас должна быть возможность включить резервный, заведомо исправный кондей. А для этого рабочий и резервный нужно переключать время от времени, например, каждые 24 часа. И мониторить, мониторить, мониторить каждый кондей, а не только температуру.
Ну и не забыть подключить резервную систему охлаждения от альтернативного источника питания.
А на деле мы имеем один бытовой кондиционер, который зависает от скачков напряжения. Даже полная остановка всех серверов от перегрева не помогает руководству понять что требуется полная переделка системы охлаждения. Тут и начинается простор для поделок мониторинга. Крупнейшая нефтяная компания, между прочим.
А на деле мы имеем один бытовой кондиционер, который зависает от скачков напряжения.
Стабилизатор? Копеечная штука.
Крупнейшая нефтяная компания, между прочим
Ух совок блин.
За свой счёт, пожалуйста.
я бы рекомендовал вам рассмотреть вариант установки рекуператора в пару к кондеционеру.
полная остановка всех серверов от перегрева

Помимо факта остановки следует помнить, что это и на продолжительности жизни железа может сказаться.
Пожалуй самое грамотное решение при условии что есть второй кондей.
А то иногда и первого нету.
Ну выводить во внешний контроль блок управления кондиционерами я бы не рискнул по причине безопасности. А вот наличие автономного переключателя — и не роскошь. При привышении температуры просто в работу вводится вторая система охлаждения (у меня переключением занимается kg316t с некоторым обвесом).
Вводить вторую систему по превышении можно банально разной уставкой кондиционеров. На первом +21С на втором +25С и он включится только при выходе из стоя первого. Раз в месяц (неделю, квартал) уставки первого и второго менять местами для выравнивания износа агрегатов и контроля исправности. Из недостатков тут только человеческий фактор — уставки забыл поменять, никогда не менял, и в результате в момент аварии второй не завелся ибо сдох еще пол года назад.
Я честно говоря не понимаю зачем изобретать велосипед, в серверах присутствует все необходимое(самосбор это не сервер) можно мониторить температуру встроенными системами мониторинга…
Да, если в большинстве установленных серверов есть BMC, то как правило с него можно снимать показания всех датчиков сервера через SNMP, где есть не только температура воздуха но и температура выхлопа сервера.
А общие показания температуры воздуха самой серверной полезны в том случае если таких серверов не подавляющее большинство, да плюс с вручную управляемыми кондеями.

Я делал мониторинг температуры в серверной с использованием плат NMC2 AP9631, вставляемых в качестве платы расширения в ИБП фирмы APC. В каждой стойке был как минимум один ИБП, показания которого в любом случае также хотелось мониторить, на предмет режима работы, температуры батарей, входного и выходного напряжения, оставшегося заряда. Эта плата позволяет подключить и управлять ИБП через сеть, собирать показания через SNMP. А также с ней в комплекте идет выносной температурный датчик с магнитным креплением, на проводе около 2 метров. Разместив эти датчики в удобных местах на каждой стойке, примерно в 1,7 метра над полом, получил картинку температуры воздуха возле каждой стойки, причем по сути как дополнительный бонус. Очень удобно.

Тоже сначала рукоблудничал с Ардуино типо такого habr.com/ru/post/394909, но мне тогда обхаяли это решение.
Да и на самом деле после того как одно такое изделие сдохло сделали получение данных с термодатчика блэйда через SNMP

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

А у меня в серверной почти в каждой стойке top-of-rack switch есть с датчиками температуры
которые вполне нативно мониторятся тем же заббиксом
После того как повысилась температура, желательно начинать действовать сразу, включать кондиционер или вентиляцию или что у Вас еще припасено, независимо есть канал связи или нет, графики это для общей картины на объекте или последующего анализа. Один из вариантов решения подобных задач описывал в статье, там и графики и архивы habr.com/ru/post/424791, с нужным количеством каналов можно реализовать всю необходимую автоматику. Сейчас на той же плате добавил работу с датчиками ds18b20, можно подключить на шину до 16 шт, пока тестирую на 8 разведенных по дому витой парой, общая длина метров 40, значения можно архивировать, выводить на WEB страницу, читать через Modbus TCP, а если использовать с программируемым реле то можно реализовать управляющие алгоритмы. В автономной работе без программируемого устройства можно еще добавить датчик влажности, еще все значения можно отправлять по mqtt, есть несколько роликов с примерами youtube.com/channel/UCj4HeZMvSH5H3d_t6iDlQOQ
либо подключить внешний UART-USB мост типа CP2102. Не очень люблю подобные костыли

Ну понятно в этом своя схемотехническая красота, минимализм.
Но мост это специализированное аппаратное решение, заточенное на работу с USB, а в микроконтроллере может быть минимальная обвязка самая. Есть ли там защита от статики? На схеме для согласования с USB портом всего 2 резистора на 33 Ома. В промышленных решениях и гальваническую развязку добавляют, и сложные цепи согласования, это не костыль, а необходимость, вот пример, и схема.
Ну во первых. Я бы согласился с подобным комментарием, если USB был реализован как в V-USB — так называемым «ногодрыгом», то есть — софтово, однако в данном случае USB модуль контроллера (SIE) аппаратный и полностью, в том числе электрически, совместим со стандартом USB 2.0 и реализует физический уровень, это сказано в даташите, так что не соглашусь — 210x и прочие преобразователи считаю избыточными, так как тот же функционал заложен в самом МК. Во вторых, упомянутый cp2102 не имеет развязки и ESD защиты, и под костылем я подразумевал сам UART-USB мост, а не навесную ESD защиту, которая впрочем, может быть добавлена и к данной схеме. Но не вижу в этом необходимости, так как это устройство ни в коей мере не претендует на статус промышленного решения, и скорее сделано как временное до перехода на SNMP, о чем я думаю, так-же расскажу в дальнейших публикациях. Так в планах есть мониторить не только температуру…
Мы снимаем показания с длинного датчика от UPS APC. Датчик прицеплен к верху шкафа.
а как-же ардуиной по воробьям? И не надо своих библиотек писать и датчики можно разные использовать.
Огромный минус библиотек ардуины, то что они закрыты и это вызывают много вопросов относительно методов и корректности их реализации, если уж использовать библиотеки — то официальные от производителя самих контроллеров, в данном случае это Microchip. Хотя и в этом случае нет страховки от т. н. «индусского кода». Что касается своих либ, то это скорее спортивный интерес, чем реальная необходимость. Однако не весь требуемый функционал предоставляется официальными и сторонними либами.
Ардуино, закрытые библиотеки? что вы курите?
Извиняюсь, возможно я что-то путаю, так как не особо слежу за этой платформой. Поправьте если я ошибаюсь, но по сути ардуино — это отладочная плата с довольно примитивной схематикой и блокнотоподобное недоIDE использующее avr-gcc в качестве компилятора, в котором неудобно работать с древовидным проектом, да и любым проектом, содержащим более одного файла. И набор библиотек сомнительного качества, непонятно кем написанных, от того что они открытые по сути ничего не меняется. Так как опять же повторюсь — для AVR есть официальные либы от производителя, тогда это был Atmel, сейчас Microchip. Как при своем появлении, ардуино не вызвала никакого интереса, так и сейчас ничего не изменилось. Хотя для тех кто «не шарит» в электронике и программировании контроллеров и не хочет заморачиваться с разведением и пайкой плат — пойдет. Однако какой в этом интерес, когда все уже сделано за тебя?..
Я тоже не поклонник ардуин, но если надо что-то быстро проверить, за 2 минуты любой пример можно загрузить и проверить. Что касается плат, разницы нет, hex загружается в камень, а не плату. По поводу древовидного проекта, видел много исходников с отдельно открывающимися вкладками.
Ну, кстати да согласен, если надо что-то быстро слабать на коленке, дуина вполне покатит.
Не знаю, насколько это может быть актуально, но я тут одну систему строю, она позволяет через web «общаться» с устройствами через UART. Я немного подзабросил разработку ввиду слабого интереса общественности, но если будут заинтересованные люди — связывайтесь.
Если интересно взглянуть на демо:

18.224.10.61

username: operator_0
password: 123456789
Выбрать QA_Test и потом station_0

Sign up to leave a comment.

Articles