Ad Widget

Collapse

Сканер порта nmap

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • NEViL
    Junior Member
    • Mar 2017
    • 10

    #1

    Сканер порта nmap

    Доброго Времени суток.
    Помогите решить проблему. Есть много виртуальных машин (Linux). Необходимо на них осуществить проверку процесса путём слежения за портом, на некоторых машинах это 2020, на некоторых 2010,2017 ... Т.е. Когда процесс "падает", то и пропадает порт, соответственно уведомление от заббикса что процесс упал.

    Ключ net.tcp.service[tcp,,2020] выдаёт 0, хотя nmap выдаёт что этот порт открыт
    22/tcp open ssh
    2020/tcp open xinupageserver

    Брал https://share.zabbix.com/operating-s...-automatically , всё тоже самое... 22 порт выдаёт 1, порт который мне необходим выдаёт 0.

    Помогите может каким-то скриптом осуществлять проверку. Заранее спасибо !
  • NEViL
    Junior Member
    • Mar 2017
    • 10

    #2
    Нашёл на форуме скрипт

    #!/bin/bash
    nmap -P0 -sT -p $port_number $server_name_or_ip | egrep '\<open\>' >/dev/null && echo 1 || echo 0
    Если nmap находит порт, выдаёт "1" иначе "0" ...

    Теперь проблема как прикруть в zabbix ) чтобы эту самую единицу или ноль в Items на выходе получить
    Last edited by NEViL; 28-03-2017, 11:42.

    Comment

    • Viewer
      Senior Member
      • Oct 2012
      • 131

      #3
      Originally posted by NEViL
      Нашёл на форуме скрипт



      Если nmap находит порт, выдаёт "1" иначе "0" ...

      Теперь проблема как прикруть в zabbix ) чтобы эту самую единицу или ноль в Items на выходе получить
      Создай файл скрипта check.sh в директории внешних скриптов (скорее всего /usr/lib/zabbix/externalscripts). Передавай ему параметры (номер порта если нужно) через $1.
      Выставь забиксу права на запуск.
      В шаблоне создай элемент данных типа external check
      check.sh["$1"]

      Comment

      • NEViL
        Junior Member
        • Mar 2017
        • 10

        #4
        Originally posted by viewer
        Передавай ему параметры (номер порта если нужно) через $1.
        Можно вот тут подробнее пожалуйста... Как передать параметр ?

        Comment

        • Viewer
          Senior Member
          • Oct 2012
          • 131

          #5
          Originally posted by NEViL
          Можно вот тут подробнее пожалуйста... Как передать параметр ?
          Как то так :
          Скрипт check.sh:

          Code:
          #!/bin/bash
          nmap -P0 -sT -p $1 $2 | egrep '\<open\>' >/dev/null && echo 1 || echo 0
          Элемент данных для проверки 2022 порта сервера, к которому прицепишь шаблон.
          check.sh["2022","{HOST.IP}"]

          Comment

          • NEViL
            Junior Member
            • Mar 2017
            • 10

            #6
            Originally posted by Viewer
            Как то так :
            Скрипт check.sh:

            Code:
            #!/bin/bash
            nmap -P0 -sT -p $1 $2 | egrep '\<open\>' >/dev/null && echo 1 || echo 0
            Элемент данных для проверки 2022 порта сервера, к которому прицепишь шаблон.
            check.sh["2022","{HOST.IP}"]
            Спасибо... Ваш вариант работает... Но - в терминале сервера забикс
            nmap -P0 -sT -p 22 IP_КОНЕЧНОГО_КОМПЪЮТЕРА | egrep '\<open\>' >/dev/null && echo 1 || echo 0
            Выдаёт 1
            и в Items
            nmap.sh["22","{HOST.IP}"
            Выдаёт 1....

            а нужный порт
            nmap -P0 -sT -p 2020 IP_КОНЕЧНОГО_КОМПЪЮТЕРА | egrep '\<open\>' >/dev/null && echo 1 || echo 0
            Выдаёт 1
            а в Items
            nmap.sh["2020","{HOST.IP}"
            Выдаёт 0.... (((

            Items добавил в Template Virt VMware Guest


            Type: external check
            Key: nmap.sh["2020","{HOST.IP}"
            Type of information: Numeric (unsigned)
            Data type: Boolean

            какой-то печальный порт... Кстати процесс ещё так же открывает порт 5005, с ним такая же ситуация... в терминале команда выдаёт 1, в забиксе 0...

            Comment

            • Viewer
              Senior Member
              • Oct 2012
              • 131

              #7
              Originally posted by NEViL
              нужный порт
              Quote:
              nmap -P0 -sT -p 2020 IP_КОНЕЧНОГО_КОМПЪЮТЕРА | egrep '\<open\>' >/dev/null && echo 1 || echo 0
              Выдаёт 1
              а в Items
              Quote:
              nmap.sh["2020","{HOST.IP}"
              Выдаёт 0.... (((

              Items добавил в Template Virt VMware Guest


              Type: external check
              Key: nmap.sh["2020","{HOST.IP}"
              Type of information: Numeric (unsigned)
              Data type: Boolean
              Почему Data type не Decimal ?
              Может в этом дело?
              Хотя странно , в консоли одно , в веб-интерфейсе другое.
              Проверьте ещё раз все скобочки , запятые, типы данных...

              Comment

              • NEViL
                Junior Member
                • Mar 2017
                • 10

                #8
                Originally posted by Viewer
                Почему Data type не Decimal ?
                Может в этом дело?
                Хотя странно , в консоли одно , в веб-интерфейсе другое.
                Проверьте ещё раз все скобочки , запятые, типы данных...
                Data type : Decimal

                Тоже самое (((

                Comment

                • SKabanov
                  Member
                  • Jan 2014
                  • 36

                  #9
                  NEViL, добрый день!

                  Проверьте права на запуск самого nmap от zabbix.

                  Comment

                  • NEViL
                    Junior Member
                    • Mar 2017
                    • 10

                    #10
                    Originally posted by skabanov
                    nevil, добрый день!

                    Проверьте права на запуск самого nmap от zabbix.
                    ну так 22 порт работает этим скриптом... Значит с правами всё нормально...

                    Проверил, руками проверил любой хост, всё работает

                    Comment

                    • Viewer
                      Senior Member
                      • Oct 2012
                      • 131

                      #11
                      Противоестественная ситуация ))) В консоли то тот же скрипт всё корректно возвращает. Подозрения на ошибку).

                      Проверьте что zabbix опрашивает именно нужный сервер.
                      Замените в элементе данных макрос {HOST.IP} на реальный ip опрашиваемого сервера.

                      Других идей пока в голову не приходит.

                      Comment

                      • NEViL
                        Junior Member
                        • Mar 2017
                        • 10

                        #12
                        Originally posted by Viewer

                        Проверьте что zabbix опрашивает именно нужный сервер.
                        Замените в элементе данных макрос {HOST.IP} на реальный ip опрашиваемого сервера.

                        О ЧУДО!!! Действительно... когда подставил IP всё замечательно работает... Какой теперь макрос нужно подставить чтобы работало для всего шаблона...

                        Другие Item везде используют [{$URL},{HOST.HOST}]. Подскажите как его преобразовать для этого скрипта

                        Comment

                        • Viewer
                          Senior Member
                          • Oct 2012
                          • 131

                          #13
                          Originally posted by NEViL
                          О ЧУДО!!! Действительно... когда подставил IP всё замечательно работает... Какой теперь макрос нужно подставить чтобы работало для всего шаблона...

                          Другие Item везде используют [{$URL},{HOST.HOST}]. Подскажите как его преобразовать для этого скрипта
                          Возможно нужно указывать макрос {HOST.IP1} ?7! Возможно в разных версиях сервера по разному раскрывается.
                          Вот список макросов https://www.zabbix.com/documentation...ed_by_location

                          Нужно использовать тот, который будет работать).

                          {HOST.HOST} {HOST.DNS} {HOST.IP1} {HOST.NAME1}...

                          Comment

                          • NEViL
                            Junior Member
                            • Mar 2017
                            • 10

                            #14
                            Originally posted by Viewer
                            Возможно нужно указывать макрос {HOST.IP1} ?7! Возможно в разных версиях сервера по разному раскрывается.
                            Вот список макросов https://www.zabbix.com/documentation...ed_by_location

                            Нужно использовать тот, который будет работать).

                            {HOST.HOST} {HOST.DNS} {HOST.IP1} {HOST.NAME1}...
                            ни один не подходит. Наверное потому что это Template Virt VMware Guest . Все виртуалки добавлялись через VCENTER EXCI (указать УРЛ вцентра, логин и пасс к нему) .... Агент на каждую виртуалку не ставился... и все Items в Template Virt VMware Guest используют Simple check c указанием User name и Password.

                            Возможно поэтому он берет IP нужной машины, а берет свой IP (забикс сервера)

                            Осталось разобраться как взять IP нужной машины

                            Comment

                            • Viewer
                              Senior Member
                              • Oct 2012
                              • 131

                              #15
                              Originally posted by NEViL
                              ни один не подходит. Наверное потому что это Template Virt VMware Guest .
                              Осталось разобраться как взять IP нужной машины
                              Точно , не обратил внимания как работает шаблон.
                              Надо попробовать макрос {#VM.NAME}

                              Comment

                              Working...