Ad Widget

Collapse

MySQL (Мониторинг параметра Slave)

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Flegel
    Member
    • Nov 2009
    • 42

    #1

    MySQL (Мониторинг параметра Slave)

    Всем доброго дня!

    Настроил мониторинг почти всех нужных параметров MySQL Slave, кроме одного

    mysql -h ip -uuser -ppassword -Bse "show slave status \G"
    Slave_IO_State: Waiting for master to send event
    Master_Host: IP
    Master_User: replicator
    Master_Port: 3306
    Connect_Retry: 60
    Master_Log_File: nth_new.000025
    Read_Master_Log_Pos: 43720395
    Relay_Log_File: nth-relay-bin.000014
    Relay_Log_Pos: 43720538
    Relay_Master_Log_File: nth_new.000025
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
    Replicate_Do_DB: db1, db2
    Replicate_Ignore_DB:
    Replicate_Do_Table:
    Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
    Replicate_Wild_Ignore_Table:
    Last_Errno: 0
    Last_Error:
    Skip_Counter: 0
    Exec_Master_Log_Pos: 43720395
    Relay_Log_Space: 43720732
    Until_Condition: None
    Until_Log_File:
    Until_Log_Pos: 0
    Master_SSL_Allowed: No
    Master_SSL_CA_File:
    Master_SSL_CA_Path:
    Master_SSL_Cert:
    Master_SSL_Cipher:
    Master_SSL_Key:
    Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
    Last_IO_Errno: 0
    Last_IO_Error:
    Last_SQL_Errno: 0
    Last_SQL_Error:
    Проблема - мониторинг значения параметра
    Last_Error:
    В этом поле MySQL указывает тип ошибки. Если ошибок в репликации нет, то это поле пустует. Мне нужно каким-либо способом забирать значение этого параметра с сервера...пусть даже пустое.

    Настроил UserParameter:
    UserParameter=mysql.slave_error,mysql -h ip -uuser -ppassword -Bse "show slave status \G" | grep Last_Error | awk '{ print $2 }'
    MySQL честно при этом запросе выдаёт пустое поле, так как в этом поле ничего нет.

    На сервере соответственно получаю ZBX_NOTSUPPORTED

    Подскажите чего умного
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Originally posted by Flegel
    На сервере соответственно получаю ZBX_NOTSUPPORTED

    Подскажите чего умного
    Сделайте подмену в скрипте пустой строки на любое слово, например
    No data
    OK

    Comment

    • Flegel
      Member
      • Nov 2009
      • 42

      #3
      Originally posted by dima_dm
      Сделайте подмену в скрипте пустой строки на любое слово, например
      No data
      OK
      Здорово...можно пример в студию? Сижу с awk, sed...в голову ничего не приходит

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Originally posted by Flegel
        Здорово...можно пример в студию? Сижу с awk, sed...в голову ничего не приходит
        Например так
        Code:
        bash-3.00# echo "test"| sed "s/^\$/OK/"
        test
        bash-3.00# echo ""| sed "s/^\$/OK/"
        OK

        Comment

        • dotneft
          Senior Member
          • Nov 2008
          • 699

          #5
          Если не ошибаюсь состояние можно получить еще запросом:

          Code:
          show global status where variable_name = 'Slave_running';
          
          или
          
          select variable_value from information_schema.GLOBAL_STATUS where variable_name = 'Slave_running' ;
          но рекомендую протестировать, что значение меняется с поломкой реплики!!

          Comment

          • Flegel
            Member
            • Nov 2009
            • 42

            #6
            dima_dm Спасибо за пример!

            но рекомендую протестировать, что значение меняется с поломкой реплики!!
            Спасибо, проверю на досуге

            Comment

            Working...