Ad Widget

Collapse

Zabbix - мониторинг кластера. Вопрос

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • narmo
    Junior Member
    • Nov 2016
    • 20

    #46
    Originally posted by sadman
    А JSON валидировался?
    - ошибку не выдаёт, валидировался, но данных пока нет.


    Если при powershell -ExecutionPolicy "RemoteSigned" -NoProfile -File wsfc.ps1 -Action "Discovery" -Object "ClusterResourceVirtualMachine" -defaultConsoleWidth -Verbose все ОК, то нужно докручивать таймаут в конфиге агента.
    При выполнении в powershell всё ок. решил выставлением тай-аута.

    Comment

    • narmo
      Junior Member
      • Nov 2016
      • 20

      #47
      Originally posted by sadman
      А замените-ка в .ps1
      Code:
       'ClusterSharedVolume'           { $ObjectProperties = @("ID", "CLUSTER", "NAME", "STATE", "FRIENDLYVOLUMENAME", "FILESYSTEM"); }
      На
      Code:
       'ClusterSharedVolume'           { $ObjectProperties = @("ID", "CLUSTER", "NAME", "STATE", "FRIENDLYVOLUMENAME"); }
      Свойство FileSystem у CSV только в 2012-м сервере появилось, а для 2008-го с ним невалидный JSON получается.
      Параметр\переменная FILESYSTEM так же упоминается в других частях скрипта, это не потащит за собой новые проблемы?

      Code:
       Add-Member -InputObject $CSV -MemberType NoteProperty -Name "FileSystem" -Value ($($CSV.SharedVolumeInfo.Partition).FileSystem);

      Comment

      • sadman
        Senior Member
        • Dec 2010
        • 1611

        #48
        Originally posted by narmo
        Параметр\переменная FILESYSTEM так же упоминается в других частях скрипта, это не потащит за собой новые проблемы?
        Очень хороший вопрос. Пришлось не лениться и потыкать в коде кое-что.
        Вобщем, я слегонца напутал и в скрипте не заполнялось NoteProperty FileSystem. И не могу найти, где на TechNet лежит описание класса SharedVolumeInfo. Какие-то всё же изменения в нем были для 2012-го сервера...

        С гитхаба обновите скрипт. Теперь должно всё правильно приходить в JSON :
        Code:
        {
         "data":[
                { "{#ID}":"71ad77c5-a774-4e6a-b926-760b7fecd09e", "{#CLUSTER}":"Cluster-A", "{#NAME}":"Store001 on xxxxxxxx", "{#STATE}":"Online", "{#FRIENDLYVOLUMENAME}":"C:\\ClusterStorage\\ClusterA-Store001", "{#FILESYSTEM}":"NTFS" }
            ]
        }

        Comment

        • narmo
          Junior Member
          • Nov 2016
          • 20

          #49
          Originally posted by sadman
          С гитхаба обновите скрипт. Теперь должно всё правильно приходить в JSON
          ]
          Обновил скрипт, удалил тэмплэйт,зачистл, установил заново, заново добавил хост --- валидацию проходит, ошибок нет.
          Но спустя 1,5 часа нет данных для графиков по "hyperv: [hyperv] CSV Диск кластера 1 free space (%)" и так всех 3-х дисков.

          Хочется Вас поблагодарить за все труды!

          Попробую утром посмотреть появилась ли инфа, сделаю апдейт поста.

          Comment

          • sadman
            Senior Member
            • Dec 2010
            • 1611

            #50
            Originally posted by narmo
            Но спустя 1,5 часа нет данных для графиков по "hyperv: [hyperv] CSV Диск кластера 1 free space (%)" и так всех 3-х дисков.
            Может всё ещё быть проблема с таймаутом агента/сервера, если сервер не сильно мощный, то PosH его пригрузит. Нужно ненужные Discovery rules / Item prototypes отключать, периоды опросов тюнить и т.п. Ну или покруче зайти и перепилить часть прототипов под прямые WMI-запросы.

            А так, проверить стандартно - взять то, что с прототипа создалось и:

            Code:
            zabbix_get -s <...> -k "wsfc[Get,ClusterSharedVolume,SharedVolumeInfo.Partition.PercentFree,71ad77c5-a774-4e6a-b926-760b7fecd09e]"
            57.56392
            Хотя, замечал я за заббиксом иногда, что он рекаверит вылетавшие в ошибку айтемы не сильно быстро. Не знаю, с чем связано.

            Comment

            • narmo
              Junior Member
              • Nov 2016
              • 20

              #51
              Originally posted by sadman
              перепилить часть прототипов под прямые WMI-запросы.
              А так, проверить стандартно - взять то, что с прототипа создалось и:
              Code:
              zabbix_get -s <...> -k "wsfc[Get,ClusterSharedVolume,SharedVolumeInfo.Partition.PercentFree,71ad77c5-a774-4e6a-b926-760b7fecd09e]"
              57.56392
              Выставил таймаут у Прототипов элементов данных на 5 мин вместо 1 мин.
              Пробовал напрямую через zabbix_get всё из прототипов отлично бегает, но инфы в фронтэнде забикса нет ( в логах чисто. Куда ещё копать хз...
              "прямые WMI-запросы." - можно по подробней?

              Comment

              • sadman
                Senior Member
                • Dec 2010
                • 1611

                #52
                [QUOTE=narmo;191485]Выставил таймаут у Прототипов элементов данных на 5 мин вместо 1 мин.
                Пробовал напрямую через zabbix_get всё из прототипов отлично бегает, но инфы в фронтэнде забикса нет ( в логах чисто. Куда ещё копать хз...
                Если в логах всё чисто, то тогда уж и не знаю. Под дебианом я вчера раз пять отлинковывал-прилинковывал. Никаких вопросов с получением данных.
                Хотя, как правило, в центосах куча "странных" проблем связана с selinux. Отключают люди его и всё волшебным образом работать начинает.

                "прямые WMI-запросы." - можно по подробней?
                Учите WQL, берете в руку MSDN и...
                wmi.get[<пространство_имен>,<запрос>]

                Comment

                • narmo
                  Junior Member
                  • Nov 2016
                  • 20

                  #53
                  Originally posted by sadman
                  Хотя, как правило, в центосах куча "странных" проблем связана с selinux. Отключают люди его и всё волшебным образом работать начинает.
                  он отключен. да и с включенным все бы не работали.

                  Originally posted by sadman
                  Учите wql, берете в руку msdn
                  Спасибо за наводку!

                  Так же в "Прототипы элементов данных" щас такой вид. прикладываю в скрине. это норма? или там вместо #id должны стоять уже готовые id винтов? Скину в ЛС

                  Comment

                  • sadman
                    Senior Member
                    • Dec 2010
                    • 1611

                    #54
                    Originally posted by narmo
                    Так же в "Прототипы элементов данных" щас такой вид. прикладываю в скрине. это норма? или там вместо #id должны стоять уже готовые id винтов? Скину в ЛС
                    В прототипах должны быть макросы, в айтемах - uid. Так что тут всё в норме.
                    Но вот еще какой вопрос - hostname в конфиге агента, куда прицеплен скрипт, совпадает с hostname, который виден в Zabbix frontend? Такое чувство, что активный агент недонастроен. Обычные запросы работают - LLD через пассивный режим функционирует, а вот созданные айтемы, которые уже активный режим используют - нет.

                    Comment

                    • narmo
                      Junior Member
                      • Nov 2016
                      • 20

                      #55
                      Originally posted by sadman
                      В прототипах должны быть макросы, в айтемах - uid. Так что тут всё в норме.
                      Но вот еще какой вопрос - hostname в конфиге агента, куда прицеплен скрипт, совпадает с hostname, который виден в Zabbix frontend?
                      Hostname в конфиге клиента совпадает с frontend. но имя хоста(физической машины) отлично от имени в конфиге.

                      Comment

                      • narmo
                        Junior Member
                        • Nov 2016
                        • 20

                        #56
                        Originally posted by sadman
                        В прототипах должны быть макросы, в айтемах - uid. Так что тут всё в норме.
                        Но вот еще какой вопрос - hostname в конфиге агента, куда прицеплен скрипт, совпадает с hostname, который виден в Zabbix frontend? Такое чувство, что активный агент недонастроен. Обычные запросы работают - LLD через пассивный режим функционирует, а вот созданные айтемы, которые уже активный режим используют - нет.
                        Конфиг агента :

                        Server=192.168.4.89
                        Hostname=hyperv
                        #EnableRemoteCommands=1
                        DebugLevel=3
                        ListenPort=10050
                        LogFile=c:\zabbix\zabbix_agentd.log
                        LogFileSize=10
                        Timeout=10
                        UserParameter=wsfc[*], powershell -NoProfile -ExecutionPolicy "RemoteSigned" -File "C:\zabbix\s\wsfc.ps1" -Action "$1" -ObjectType "$2" -Key "$3" -Id "$4" -ErrorCode "$5" -consoleCP CP866

                        Comment

                        • narmo
                          Junior Member
                          • Nov 2016
                          • 20

                          #57
                          Включил отладку в клиенте, при запуске в логе:
                          Code:
                          3324:20161102:142211.762 Starting Zabbix Agent [hyperv]. Zabbix 3.2.0 (revision 62444).
                            3324:20161102:142211.762 **** Enabled features ****
                            3324:20161102:142211.762 IPv6 support:          YES
                            3324:20161102:142211.778 TLS support:            NO
                            3324:20161102:142211.778 **************************
                            3324:20161102:142211.778 using configuration file: C:\zabbix\zabbix_agentd.conf
                            3324:20161102:142211.778 In init_collector_data()
                            3324:20161102:142211.778 End of init_collector_data()
                            3324:20161102:142211.778 In init_perf_collector()
                            3324:20161102:142211.778 End of init_perf_collector():SUCCEED
                            3324:20161102:142211.778 agent #0 started [main process]
                            3620:20161102:142211.778 agent #1 started [collector]
                            4836:20161102:142211.778 agent #3 started[listener #2]
                            1112:20161102:142211.778 agent #2 started[listener #1]
                            5080:20161102:142211.778 agent #4 started[listener #3]
                            3620:20161102:142211.778 In init_cpu_collector()
                            3620:20161102:142211.778 In get_counter_name() pdhIndex:238
                            3620:20161102:142212.339 End of get_counter_name():SUCCEED
                            3620:20161102:142212.339 In get_counter_name() pdhIndex:6
                            3620:20161102:142212.339 End of get_counter_name():SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Процессор(_Total)\% загруженности процессора' interval:900
                            3620:20161102:142212.339 add_perf_counter(): PerfCounter '\Процессор(_Total)\% загруженности процессора' successfully added
                            3620:20161102:142212.339 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Процессор(0)\% загруженности процессора' interval:900
                            3620:20161102:142212.339 add_perf_counter(): PerfCounter '\Процессор(0)\% загруженности процессора' successfully added
                            3620:20161102:142212.339 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Процессор(1)\% загруженности процессора' interval:900
                            3620:20161102:142212.339 add_perf_counter(): PerfCounter '\Процессор(1)\% загруженности процессора' successfully added
                            3620:20161102:142212.339 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Процессор(2)\% загруженности процессора' interval:900
                            3620:20161102:142212.339 add_perf_counter(): PerfCounter '\Процессор(2)\% загруженности процессора' successfully added
                            3620:20161102:142212.339 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Процессор(3)\% загруженности процессора' interval:900
                            3620:20161102:142212.339 add_perf_counter(): PerfCounter '\Процессор(3)\% загруженности процессора' successfully added
                            3620:20161102:142212.339 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.339 In get_counter_name() pdhIndex:2
                            3620:20161102:142212.339 End of get_counter_name():SUCCEED
                            3620:20161102:142212.339 In get_counter_name() pdhIndex:44
                            3620:20161102:142212.339 End of get_counter_name():SUCCEED
                            3620:20161102:142212.339 In add_perf_counter() counter:'\Система\Длина очереди процессора' interval:900
                            3620:20161102:142212.355 add_perf_counter(): PerfCounter '\Система\Длина очереди процессора' successfully added
                            3620:20161102:142212.355 End of add_perf_counter(): SUCCEED
                            3620:20161102:142212.355 End of init_cpu_collector():SUCCEED
                            3620:20161102:142212.355 In collect_perfstat()
                            3620:20161102:142212.355 End of collect_perfstat()
                            3620:20161102:142213.369 In collect_perfstat()
                            3620:20161102:142213.369 End of collect_perfstat()
                            3620:20161102:142214.383 In collect_perfstat()
                            3620:20161102:142214.383 End of collect_perfstat()
                            3620:20161102:142215.397 In collect_perfstat()
                            3620:20161102:142215.397 End of collect_perfstat()
                            3620:20161102:142216.411 In collect_perfstat()
                            3620:20161102:142216.411 End of collect_perfstat()
                            3620:20161102:142217.425 In collect_perfstat()
                            3620:20161102:142217.425 End of collect_perfstat()
                            3620:20161102:142218.439 In collect_perfstat()
                            3620:20161102:142218.439 End of collect_perfstat()
                            3620:20161102:142219.453 In collect_perfstat()
                            3620:20161102:142219.453 End of collect_perfstat()
                            3620:20161102:142220.467 In collect_perfstat()
                            3620:20161102:142220.467 End of collect_perfstat()
                            3620:20161102:142221.481 In collect_perfstat()
                            3620:20161102:142221.481 End of collect_perfstat()
                            3620:20161102:142222.495 In collect_perfstat()
                            3620:20161102:142222.495 End of collect_perfstat()
                            3620:20161102:142223.509 In collect_perfstat()
                            3620:20161102:142223.509 End of collect_perfstat()
                            3620:20161102:142224.523 In collect_perfstat()
                            3620:20161102:142224.523 End of collect_perfstat()
                            3620:20161102:142225.537 In collect_perfstat()
                            3620:20161102:142225.537 End of collect_perfstat()
                            3620:20161102:142226.551 In collect_perfstat()
                            3620:20161102:142226.551 End of collect_perfstat()
                            3620:20161102:142227.565 In collect_perfstat()
                            3620:20161102:142227.565 End of collect_perfstat()
                            3620:20161102:142228.579 In collect_perfstat()
                            3620:20161102:142228.579 End of collect_perfstat()
                            3620:20161102:142229.593 In collect_perfstat()
                            3620:20161102:142229.593 End of collect_perfstat()
                            3620:20161102:142230.607 In collect_perfstat()
                            3620:20161102:142230.607 End of collect_perfstat()
                            3620:20161102:142231.621 In collect_perfstat()
                            3620:20161102:142231.621 End of collect_perfstat()
                            3620:20161102:142232.635 In collect_perfstat()
                            3620:20161102:142232.635 End of collect_perfstat()
                            3620:20161102:142233.649 In collect_perfstat()
                            3620:20161102:142233.649 End of collect_perfstat()
                            3620:20161102:142234.663 In collect_perfstat()
                            3620:20161102:142234.663 End of collect_perfstat()
                            3620:20161102:142235.677 In collect_perfstat()
                            3620:20161102:142235.677 End of collect_perfstat()
                            3620:20161102:142236.691 In collect_perfstat()
                            3620:20161102:142236.691 End of collect_perfstat()
                            3620:20161102:142237.705 In collect_perfstat()
                            3620:20161102:142237.705 End of collect_perfstat()
                            3620:20161102:142238.719 In collect_perfstat()
                            3620:20161102:142238.719 End of collect_perfstat()
                            3620:20161102:142239.733 In collect_perfstat()
                            3620:20161102:142239.733 End of collect_perfstat()
                            3620:20161102:142240.747 In collect_perfstat()
                            3620:20161102:142240.747 End of collect_perfstat()
                            3620:20161102:142241.761 In collect_perfstat()
                            3620:20161102:142241.761 End of collect_perfstat()

                          Comment

                          • sadman
                            Senior Member
                            • Dec 2010
                            • 1611

                            #58
                            Originally posted by narmo
                            Конфиг агента :
                            Server=192.168.4.89
                            Hostname=hyperv
                            ...
                            Отлично. ServerActive кто будет задавать? На тех картинах, что вы мне слали, имя хоста другое, с указанием домена.

                            Comment

                            • narmo
                              Junior Member
                              • Nov 2016
                              • 20

                              #59
                              Originally posted by sadman
                              Отлично. ServerActive кто будет задавать? На тех картинах, что вы мне слали, имя хоста другое, с указанием домена.
                              ServerActive указал адрес сервака забикса - всё заработало!
                              Ещё раз благодарю за оказанную поддержку! Без Вас я бы не справился.

                              Comment

                              • chipoza
                                Junior Member
                                • Jan 2017
                                • 7

                                #60
                                sadman день добрый, подскажите пожалуйста в чём может быть проблема, при импорте шаблона на версию 3.0.6 вылазит вот такая ошибка:
                                Error in query [SELECT t.triggerid,t.expression,t.description FROM triggers t WHERE (t.description IN ('[{#CLUSTER}] Network interface {#NAME} is not up','[{#CLUSTER}] Network interface {#NAME} is unavailable by ICMP','[{#CLUSTER}] On network interface {#NAME} ping loss is too high','[{#CLUSTER}] On network interface {#NAME} response time is too high','[{#CLUSTER}] Network {#NAME} is not up','[{#CLUSTER}] Node {#NAME} is not up','[{#CLUSTER}] Service {#NAME} is not online','[{#CLUSTER}] IP address {#NAME} is not online','[{#CLUSTER}] IP address {#NAME} is unavailable by ICMP','[{#CLUSTER}] IP address {#NAME} ping loss is too high','[{#CLUSTER}] IP address {#NAME} response time is too high','[{#CLUSTER}] Network name {#NAME} is not online','[{#CLUSTER}] Physical disk {#NAME} is not online','[{#CLUSTER}] VM {#NAME} heartbeat controlled','[{#CLUSTER}] VM {#NAME} heartbeat not OK','[{#CLUSTER}] VM {#NAME} in maintenance mode','[{#CLUSTER}] VM {#NAME} in migration state','[{#CLUSTER}] VM {#NAME} is not online','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 1GB','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 20%','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 30G','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 500М','[{#CLUSTER}] CSV {#NAME} in maintenance mode','[{#CLUSTER}] CSV {#NAME} is fault','[{#CLUSTER}] CSV {#NAME} is not online','[{#CLUSTER}] CSV {#NAME} partition size is not valid','[{#CLUSTER}] CSV {#NAME} redirected access activated')) AND t.flags IN ('0','2','4')] [Illegal mix of collations for operation ' IN ']
                                Error in query [SELECT DISTINCT t.triggerid,t.expression FROM triggers t,functions f,items i,hosts h WHERE t.flags=2 AND t.description='[{#CLUSTER}] CSV {#NAME} Free disk space is less than 500М' AND f.triggerid=t.triggerid AND f.itemid=i.itemid AND h.hostid=i.hostid AND h.host='Template WSFC'] [Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=']
                                Error in query [INSERT INTO triggers (url,status,priority,type,comments,description,fla gs,triggerid) VALUES ('','0','3','0','','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 500М','2','23290')] [Incorrect string value: '\xD0\x9C' for column 'description' at row 1]
                                SQL statement execution has failed "INSERT INTO triggers (url,status,priority,type,comments,description,fla gs,triggerid) VALUES ('','0','3','0','','[{#CLUSTER}] CSV {#NAME} Free disk space is less than 500М','2','23290')".

                                Import file

                                При импорте на версии 3.2 ругается на 45-ю строчку шаблона.

                                Шаблон брал с https://github.com/zbx-sadman/WSFC/t...bbix_Templates

                                Спасибо!

                                Comment

                                Working...