Ad Widget

Collapse

Мониторинг температуры серверов на разн&

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alex1987
    Member
    • Nov 2015
    • 55

    #1

    Мониторинг температуры серверов на разн&

    Здравствуйте, коллеги,
    прошу вашей помощи!
    Встала задача мониторить температуру серверов на Linux, Windows и ESX. Серверов много.
    С Linux всё оказалось просто - температура всех сенсоров по умолчанию отдается в SNMP. С остальными всё не так хорошо. В SNMP отдается много данных, но не температура. На Windows 2008 способ со SpeedFan не работает.
    Есть ли какой-нибудь простой и универсальный способ мониторить температуру, желательно по SNMP (чтобы можно было настроить обнаружение)?
    Спасибо.
  • sadman
    Senior Member
    • Dec 2010
    • 1611

    #2
    Originally posted by alex1987
    Здравствуйте, коллеги,
    прошу вашей помощи!
    Встала задача мониторить температуру серверов на linux, windows и esx. Серверов много.
    С linux всё оказалось просто - температура всех сенсоров по умолчанию отдается в snmp.
    ipmi, если серверы поддерживают этот протокол. Иначе - только ритуальные пляски вокруг каждого выпуска операционной системы.

    Экзотический вариант - прилепливание ds18b20 к "контрольной точке" сервера.

    Comment

    • grommir
      Senior Member
      • Mar 2013
      • 134

      #3
      А что не так со спидфаном? У меня на 2008-й работает без проблем.

      Comment

      • Alex1987
        Member
        • Nov 2015
        • 55

        #4
        Originally posted by grommir
        А что не так со спидфаном? У меня на 2008-й работает без проблем.
        А в какие oid'ы отдается температура? Как настраивали?

        Comment

        • grommir
          Senior Member
          • Mar 2013
          • 134

          #5
          Включаем в винде SNMP, настраиваем. Устанавливаем Speedfan, потом расширение передающее от него данные в SNMP, потом аддон запускающий speedfan сервисом. В винде сделать отдельного пользователя от которого будет запускаться этот сервис. Запустить speedfan от имени этого пользователя и настроить его по мануалу. При желании - автоматизировать через GPO.

          темплейт для zabbix-а

          Code:
          <?xml version="1.0" encoding="UTF-8"?>
          <zabbix_export>
              <version>2.0</version>
              <date>2014-02-17T06:50:30Z</date>
              <groups>
                  <group>
                      <name>Templates</name>
                  </group>
              </groups>
              <templates>
                  <template>
                      <template>Speedfan_AUTO</template>
                      <name>Speedfan_AUTO</name>
                      <groups>
                          <group>
                              <name>Templates</name>
                          </group>
                      </groups>
                      <applications>
                          <application>
                              <name>speedfan_fan_speed_AUTO</name>
                          </application>
                          <application>
                              <name>speedfan_temperature_AUTO</name>
                          </application>
                          <application>
                              <name>speedfan_voltages_AUTO</name>
                          </application>
                      </applications>
                      <items/>
                      <discovery_rules>
                          <discovery_rule>
                              <name>fan_sensors</name>
                              <type>4</type>
                              <snmp_community>public</snmp_community>
                              <snmp_oid>iso.3.6.1.4.1.30503.1.3</snmp_oid>
                              <key>fan_sensors_discovery</key>
                              <delay>3600</delay>
                              <status>0</status>
                              <allowed_hosts/>
                              <snmpv3_contextname/>
                              <snmpv3_securityname/>
                              <snmpv3_securitylevel>0</snmpv3_securitylevel>
                              <snmpv3_authprotocol>0</snmpv3_authprotocol>
                              <snmpv3_authpassphrase/>
                              <snmpv3_privprotocol>0</snmpv3_privprotocol>
                              <snmpv3_privpassphrase/>
                              <delay_flex/>
                              <params/>
                              <ipmi_sensor/>
                              <authtype>0</authtype>
                              <username/>
                              <password/>
                              <publickey/>
                              <privatekey/>
                              <port/>
                              <filter>:</filter>
                              <lifetime>30</lifetime>
                              <description/>
                              <item_prototypes>
                                  <item_prototype>
                                      <name>Fan {#SNMPINDEX} speed</name>
                                      <type>4</type>
                                      <snmp_community>public</snmp_community>
                                      <multiplier>0</multiplier>
                                      <snmp_oid>iso.3.6.1.4.1.30503.1.3.{#SNMPINDEX}</snmp_oid>
                                      <key>fan_sensor_[{#SNMPINDEX}]</key>
                                      <delay>10</delay>
                                      <history>7</history>
                                      <trends>365</trends>
                                      <status>0</status>
                                      <value_type>3</value_type>
                                      <allowed_hosts/>
                                      <units>RPM</units>
                                      <delta>0</delta>
                                      <snmpv3_contextname/>
                                      <snmpv3_securityname/>
                                      <snmpv3_securitylevel>0</snmpv3_securitylevel>
                                      <snmpv3_authprotocol>0</snmpv3_authprotocol>
                                      <snmpv3_authpassphrase/>
                                      <snmpv3_privprotocol>0</snmpv3_privprotocol>
                                      <snmpv3_privpassphrase/>
                                      <formula>1</formula>
                                      <delay_flex/>
                                      <params/>
                                      <ipmi_sensor/>
                                      <data_type>0</data_type>
                                      <authtype>0</authtype>
                                      <username/>
                                      <password/>
                                      <publickey/>
                                      <privatekey/>
                                      <port/>
                                      <description/>
                                      <inventory_link>0</inventory_link>
                                      <applications>
                                          <application>
                                              <name>speedfan_fan_speed_AUTO</name>
                                          </application>
                                      </applications>
                                      <valuemap/>
                                  </item_prototype>
                              </item_prototypes>
                              <trigger_prototypes>
                                  <trigger_prototype>
                                      <expression>{Speedfan_AUTO:fan_sensor_[{#SNMPINDEX}].avg(10)}=0 &amp; {Speedfan_AUTO:fan_sensor_[{#SNMPINDEX}].avg(180)}#0</expression>
                                      <name>Fan {#SNMPINDEX} stopped</name>
                                      <url/>
                                      <status>0</status>
                                      <priority>3</priority>
                                      <description/>
                                      <type>0</type>
                                  </trigger_prototype>
                              </trigger_prototypes>
                              <graph_prototypes>
                                  <graph_prototype>
                                      <name>Fan {#SNMPINDEX} speed avg</name>
                                      <width>900</width>
                                      <height>200</height>
                                      <yaxismin>0.0000</yaxismin>
                                      <yaxismax>100.0000</yaxismax>
                                      <show_work_period>1</show_work_period>
                                      <show_triggers>1</show_triggers>
                                      <type>0</type>
                                      <show_legend>1</show_legend>
                                      <show_3d>0</show_3d>
                                      <percent_left>0.0000</percent_left>
                                      <percent_right>0.0000</percent_right>
                                      <ymin_type_1>1</ymin_type_1>
                                      <ymax_type_1>0</ymax_type_1>
                                      <ymin_item_1>0</ymin_item_1>
                                      <ymax_item_1>0</ymax_item_1>
                                      <graph_items>
                                          <graph_item>
                                              <sortorder>0</sortorder>
                                              <drawtype>0</drawtype>
                                              <color>C80000</color>
                                              <yaxisside>0</yaxisside>
                                              <calc_fnc>2</calc_fnc>
                                              <type>0</type>
                                              <item>
                                                  <host>Speedfan_AUTO</host>
                                                  <key>fan_sensor_[{#SNMPINDEX}]</key>
                                              </item>
                                          </graph_item>
                                      </graph_items>
                                  </graph_prototype>
                              </graph_prototypes>
                              <host_prototypes/>
                          </discovery_rule>
                          <discovery_rule>
                              <name>temp_sensors</name>
                              <type>4</type>
                              <snmp_community>public</snmp_community>
                              <snmp_oid>iso.3.6.1.4.1.30503.1.2</snmp_oid>
                              <key>temperature_sensors_discovery</key>
                              <delay>3600</delay>
                              <status>0</status>
                              <allowed_hosts/>
                              <snmpv3_contextname/>
                              <snmpv3_securityname/>
                              <snmpv3_securitylevel>0</snmpv3_securitylevel>
                              <snmpv3_authprotocol>0</snmpv3_authprotocol>
                              <snmpv3_authpassphrase/>
                              <snmpv3_privprotocol>0</snmpv3_privprotocol>
                              <snmpv3_privpassphrase/>
                              <delay_flex/>
                              <params/>
                              <ipmi_sensor/>
                              <authtype>0</authtype>
                              <username/>
                              <password/>
                              <publickey/>
                              <privatekey/>
                              <port/>
                              <filter>:</filter>
                              <lifetime>30</lifetime>
                              <description/>
                              <item_prototypes>
                                  <item_prototype>
                                      <name>Temperature {#SNMPINDEX}</name>
                                      <type>4</type>
                                      <snmp_community>public</snmp_community>
                                      <multiplier>1</multiplier>
                                      <snmp_oid>iso.3.6.1.4.1.30503.1.2.{#SNMPINDEX}</snmp_oid>
                                      <key>Temperature_sensor_[{#SNMPINDEX}]</key>
                                      <delay>10</delay>
                                      <history>7</history>
                                      <trends>365</trends>
                                      <status>0</status>
                                      <value_type>0</value_type>
                                      <allowed_hosts/>
                                      <units>C°</units>
                                      <delta>0</delta>
                                      <snmpv3_contextname/>
                                      <snmpv3_securityname/>
                                      <snmpv3_securitylevel>0</snmpv3_securitylevel>
                                      <snmpv3_authprotocol>0</snmpv3_authprotocol>
                                      <snmpv3_authpassphrase/>
                                      <snmpv3_privprotocol>0</snmpv3_privprotocol>
                                      <snmpv3_privpassphrase/>
                                      <formula>0.01</formula>
                                      <delay_flex/>
                                      <params/>
                                      <ipmi_sensor/>
                                      <data_type>0</data_type>
                                      <authtype>0</authtype>
                                      <username/>
                                      <password/>
                                      <publickey/>
                                      <privatekey/>
                                      <port/>
                                      <description/>
                                      <inventory_link>0</inventory_link>
                                      <applications>
                                          <application>
                                              <name>speedfan_temperature_AUTO</name>
                                          </application>
                                      </applications>
                                      <valuemap/>
                                  </item_prototype>
                              </item_prototypes>
                              <trigger_prototypes>
                                  <trigger_prototype>
                                      <expression>{Speedfan_AUTO:Temperature_sensor_[{#SNMPINDEX}].avg(20)}&gt;70</expression>
                                      <name>Temperature too HIGH on {HOSTNAME}!</name>
                                      <url/>
                                      <status>0</status>
                                      <priority>5</priority>
                                      <description/>
                                      <type>0</type>
                                  </trigger_prototype>
                              </trigger_prototypes>
                              <graph_prototypes>
                                  <graph_prototype>
                                      <name>Temperature {#SNMPINDEX} avg</name>
                                      <width>900</width>
                                      <height>200</height>
                                      <yaxismin>0.0000</yaxismin>
                                      <yaxismax>100.0000</yaxismax>
                                      <show_work_period>1</show_work_period>
                                      <show_triggers>1</show_triggers>
                                      <type>0</type>
                                      <show_legend>1</show_legend>
                                      <show_3d>0</show_3d>
                                      <percent_left>0.0000</percent_left>
                                      <percent_right>0.0000</percent_right>
                                      <ymin_type_1>1</ymin_type_1>
                                      <ymax_type_1>0</ymax_type_1>
                                      <ymin_item_1>0</ymin_item_1>
                                      <ymax_item_1>0</ymax_item_1>
                                      <graph_items>
                                          <graph_item>
                                              <sortorder>0</sortorder>
                                              <drawtype>0</drawtype>
                                              <color>C80000</color>
                                              <yaxisside>0</yaxisside>
                                              <calc_fnc>2</calc_fnc>
                                              <type>0</type>
                                              <item>
                                                  <host>Speedfan_AUTO</host>
                                                  <key>Temperature_sensor_[{#SNMPINDEX}]</key>
                                              </item>
                                          </graph_item>
                                      </graph_items>
                                  </graph_prototype>
                              </graph_prototypes>
                              <host_prototypes/>
                          </discovery_rule>
                          <discovery_rule>
                              <name>voltage_sensors</name>
                              <type>4</type>
                              <snmp_community>public</snmp_community>
                              <snmp_oid>iso.3.6.1.4.1.30503.1.4</snmp_oid>
                              <key>voltage_sensors_discovery</key>
                              <delay>3600</delay>
                              <status>0</status>
                              <allowed_hosts/>
                              <snmpv3_contextname/>
                              <snmpv3_securityname/>
                              <snmpv3_securitylevel>0</snmpv3_securitylevel>
                              <snmpv3_authprotocol>0</snmpv3_authprotocol>
                              <snmpv3_authpassphrase/>
                              <snmpv3_privprotocol>0</snmpv3_privprotocol>
                              <snmpv3_privpassphrase/>
                              <delay_flex/>
                              <params/>
                              <ipmi_sensor/>
                              <authtype>0</authtype>
                              <username/>
                              <password/>
                              <publickey/>
                              <privatekey/>
                              <port/>
                              <filter>:</filter>
                              <lifetime>30</lifetime>
                              <description/>
                              <item_prototypes>
                                  <item_prototype>
                                      <name>Voltage {#SNMPINDEX}</name>
                                      <type>4</type>
                                      <snmp_community>public</snmp_community>
                                      <multiplier>1</multiplier>
                                      <snmp_oid>iso.3.6.1.4.1.30503.1.4.{#SNMPINDEX}</snmp_oid>
                                      <key>voltage_sensor_[{#SNMPINDEX}]</key>
                                      <delay>10</delay>
                                      <history>7</history>
                                      <trends>365</trends>
                                      <status>0</status>
                                      <value_type>0</value_type>
                                      <allowed_hosts/>
                                      <units>V</units>
                                      <delta>0</delta>
                                      <snmpv3_contextname/>
                                      <snmpv3_securityname/>
                                      <snmpv3_securitylevel>0</snmpv3_securitylevel>
                                      <snmpv3_authprotocol>0</snmpv3_authprotocol>
                                      <snmpv3_authpassphrase/>
                                      <snmpv3_privprotocol>0</snmpv3_privprotocol>
                                      <snmpv3_privpassphrase/>
                                      <formula>0.01</formula>
                                      <delay_flex/>
                                      <params/>
                                      <ipmi_sensor/>
                                      <data_type>0</data_type>
                                      <authtype>0</authtype>
                                      <username/>
                                      <password/>
                                      <publickey/>
                                      <privatekey/>
                                      <port/>
                                      <description/>
                                      <inventory_link>0</inventory_link>
                                      <applications>
                                          <application>
                                              <name>speedfan_voltages_AUTO</name>
                                          </application>
                                      </applications>
                                      <valuemap/>
                                  </item_prototype>
                              </item_prototypes>
                              <trigger_prototypes>
                                  <trigger_prototype>
                                      <expression>((1-{Speedfan_AUTO:voltage_sensor_[{#SNMPINDEX}].last(0)}/{Speedfan_AUTO:voltage_sensor_[{#SNMPINDEX}].avg(10800)})&gt;0.1 | (1-{Speedfan_AUTO:voltage_sensor_[{#SNMPINDEX}].avg(10800)}/{Speedfan_AUTO:voltage_sensor_[{#SNMPINDEX}].last(0)})&gt;0.1) &amp; {Speedfan_AUTO:voltage_sensor_[{#SNMPINDEX}].avg(180)}&gt;3</expression>
                                      <name>Average voltage {#SNMPINDEX} changed more than 10% for last 3 hours on {HOSTNAME} !</name>
                                      <url/>
                                      <status>0</status>
                                      <priority>4</priority>
                                      <description/>
                                      <type>0</type>
                                  </trigger_prototype>
                              </trigger_prototypes>
                              <graph_prototypes>
                                  <graph_prototype>
                                      <name>voltage №{#SNMPINDEX}</name>
                                      <width>900</width>
                                      <height>200</height>
                                      <yaxismin>0.0000</yaxismin>
                                      <yaxismax>100.0000</yaxismax>
                                      <show_work_period>1</show_work_period>
                                      <show_triggers>1</show_triggers>
                                      <type>0</type>
                                      <show_legend>1</show_legend>
                                      <show_3d>0</show_3d>
                                      <percent_left>0.0000</percent_left>
                                      <percent_right>0.0000</percent_right>
                                      <ymin_type_1>0</ymin_type_1>
                                      <ymax_type_1>0</ymax_type_1>
                                      <ymin_item_1>0</ymin_item_1>
                                      <ymax_item_1>0</ymax_item_1>
                                      <graph_items>
                                          <graph_item>
                                              <sortorder>0</sortorder>
                                              <drawtype>0</drawtype>
                                              <color>C80000</color>
                                              <yaxisside>0</yaxisside>
                                              <calc_fnc>2</calc_fnc>
                                              <type>0</type>
                                              <item>
                                                  <host>Speedfan_AUTO</host>
                                                  <key>voltage_sensor_[{#SNMPINDEX}]</key>
                                              </item>
                                          </graph_item>
                                      </graph_items>
                                  </graph_prototype>
                              </graph_prototypes>
                              <host_prototypes/>
                          </discovery_rule>
                      </discovery_rules>
                      <macros/>
                      <templates/>
                      <screens/>
                  </template>
              </templates>
          </zabbix_export>

          Comment

          • Alex1987
            Member
            • Nov 2015
            • 55

            #6
            Так работает. Я до этого использовал способ без аддона, запускающего SpeedFan сервисом.
            А есть возможность получить названия сенсоров? А то без них сложно будет сделать обнаружение.

            Comment

            • grommir
              Senior Member
              • Mar 2013
              • 134

              #7
              А откуда их взять, эти названия, если сам спидфан их не знает?

              Comment

              • Alex1987
                Member
                • Nov 2015
                • 55

                #8
                Originally posted by grommir
                А откуда их взять, эти названия, если сам спидфан их не знает?
                Знает он. Откуда тогда имена датчиков?
                Last edited by Alex1987; 26-09-2016, 12:05.

                Comment

                • grommir
                  Senior Member
                  • Mar 2013
                  • 134

                  #9
                  Я не точно высказался - не всегда знает. Зачастую в нем данные с датчиков тупо по номерам идут. Но даже если и знает то инжектор, в той версии что имеется, имена все равно не передает в snmp. А другой версии не предвидится бо разработчик исчез вникуда вместе с сайтом.

                  Comment

                  • sadman
                    Senior Member
                    • Dec 2010
                    • 1611

                    #10
                    Если под виндой градусники нужно мониторить, то в интернетах еще пишут про OpenHardwareMonitor+PowerShell
                    Немного о себе и о рабочей среде Работаю инженером в компании из двух человек, обслуживаем десяток муниципальных и коммерческих предприятий с парком компьютеров до 100 штук из них 99% windows машин....

                    Comment

                    • Semiadmin
                      Senior Member
                      • Oct 2014
                      • 1625

                      #11
                      Подниму старую тему, может, кому пригодится.
                      Попросили меня помочь с мониторингом рабочих станций.
                      Консольный openhardwaremonitor ничего полезного не дал, по WMI узнал только то, что некий кулер ОК и Running/Full Power.
                      Поставил SpeedFan. Сайт разработчика SpeedFan SNMP Extension мертв, нашел где-то версию 0.1.12 от 2010 г., под win10 не заработала.
                      Снес, оставил SpeedFan как сервис. Включил логирование, выбрал датчики для лога. Рестартовал сервис SpeedFan, чтобы применились настройки логирования.
                      Сделал простенький парсер лога:

                      temper.bat

                      @echo off
                      setlocal enabledelayedexpansion
                      rem If your date format is mm.dd.yyyy, try this:
                      rem set D=c:\Program Files (x86)\SpeedFan\SFLog%date:~-4%%date:~-10,2%%date:~-7,2%.csv
                      set d=c:\Program Files (x86)\SpeedFan\SFLog%date:~-4%%date:~-7,2%%date:~-10,2%.csv
                      for /f "usebackq tokens=%1" %%c in ("!D!") do set T=%%c
                      @echo !T!

                      и LLD через парсинг конфига:

                      counter.bat

                      @echo off
                      setlocal enabledelayedexpansion
                      set /a I=1
                      for /F "tokens=5" %%k in ('find /C "logged=true" "c:\Program Files (x86)\SpeedFan\speedfansens.cfg"') do set NUMBER=%%k
                      @echo {
                      @echo "data":[
                      for /f "usebackq tokens=1,2 delims==" %%a in ("c:\Program Files (x86)\SpeedFan\speedfansens.cfg") do (
                      if %%a == name (set COUNT_NAME=%%b) else (
                      if %%a == logged (if %%b == true (set /a I=!I!+1
                      if !I! LEQ !NUMBER! (@echo { "{#COLUMN}":"!I!", "{#COUNTER}":"!COUNT_NAME: =_!" }, ) else (
                      @echo { "{#COLUMN}":"!I!", "{#COUNTER}":"!COUNT_NAME: =_!" }))))
                      )
                      @echo ]
                      @echo }

                      UserParameters:

                      UserParameter=sf.discovery,c:\zabbix\counter.bat
                      UserParameter=sf[*],c:\zabbix\temper.bat $2

                      Шаблон:

                      <?xml version="1.0" encoding="UTF-8"?>
                      <zabbix_export>
                      <version>3.2</version>
                      <date>2017-01-27T19:19:41Z</date>
                      <groups>
                      <group>
                      <name>Templates</name>
                      </group>
                      </groups>
                      <templates>
                      <template>
                      <template>SpeedFan</template>
                      <name>SpeedFan</name>
                      <description/>
                      <groups>
                      <group>
                      <name>Templates</name>
                      </group>
                      </groups>
                      <applications>
                      <application>
                      <name>Counters</name>
                      </application>
                      </applications>
                      <items/>
                      <discovery_rules>
                      <discovery_rule>
                      <name>SpeedFan counters discovery</name>
                      <type>0</type>
                      <snmp_community/>
                      <snmp_oid/>
                      <key>sf.discovery</key>
                      <delay>3600</delay>
                      <status>0</status>
                      <allowed_hosts/>
                      <snmpv3_contextname/>
                      <snmpv3_securityname/>
                      <snmpv3_securitylevel>0</snmpv3_securitylevel>
                      <snmpv3_authprotocol>0</snmpv3_authprotocol>
                      <snmpv3_authpassphrase/>
                      <snmpv3_privprotocol>0</snmpv3_privprotocol>
                      <snmpv3_privpassphrase/>
                      <delay_flex/>
                      <params/>
                      <ipmi_sensor/>
                      <authtype>0</authtype>
                      <username/>
                      <password/>
                      <publickey/>
                      <privatekey/>
                      <port/>
                      <filter>
                      <evaltype>0</evaltype>
                      <formula/>
                      <conditions/>
                      </filter>
                      <lifetime>30</lifetime>
                      <description/>
                      <item_prototypes>
                      <item_prototype>
                      <name>{#COUNTER}</name>
                      <type>0</type>
                      <snmp_community/>
                      <multiplier>0</multiplier>
                      <snmp_oid/>
                      <key>sf[{#COUNTER},{#COLUMN}]</key>
                      <delay>60</delay>
                      <history>90</history>
                      <trends>365</trends>
                      <status>0</status>
                      <value_type>0</value_type>
                      <allowed_hosts/>
                      <units/>
                      <delta>0</delta>
                      <snmpv3_contextname/>
                      <snmpv3_securityname/>
                      <snmpv3_securitylevel>0</snmpv3_securitylevel>
                      <snmpv3_authprotocol>0</snmpv3_authprotocol>
                      <snmpv3_authpassphrase/>
                      <snmpv3_privprotocol>0</snmpv3_privprotocol>
                      <snmpv3_privpassphrase/>
                      <formula>1</formula>
                      <delay_flex/>
                      <params/>
                      <ipmi_sensor/>
                      <data_type>0</data_type>
                      <authtype>0</authtype>
                      <username/>
                      <password/>
                      <publickey/>
                      <privatekey/>
                      <port/>
                      <description/>
                      <inventory_link>0</inventory_link>
                      <applications>
                      <application>
                      <name>Counters</name>
                      </application>
                      </applications>
                      <valuemap/>
                      <logtimefmt/>
                      <application_prototypes/>
                      </item_prototype>
                      </item_prototypes>
                      <trigger_prototypes/>
                      <graph_prototypes/>
                      <host_prototypes/>
                      </discovery_rule>
                      </discovery_rules>
                      <httptests/>
                      <macros/>
                      <templates/>
                      <screens/>
                      </template>
                      </templates>
                      </zabbix_export>

                      Использовался SpeedFan 4.52, совместимость с другими версиями не проверял.

                      Comment

                      Working...