Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Flatly)
  • No Skin
Collapse
Brand Logo

NetXMS Forum

  1. Home
  2. Support (Russian)
  3. Пропадают настройки при выключении сервера.

Пропадают настройки при выключении сервера.

Scheduled Pinned Locked Moved Support (Russian)
18 Posts 2 Posters 67.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • K
    K
    karmael
    wrote on last edited by
    #1

    День добрый, коллеги.
    У меня опять наверное глупый вопрос, но ситуация такая:
    Делаю DCI на все что можно и нужно. Все прекрасно работает до момента перезапуска netxms.
    После старта пропадают все сделанные DCI  😕 
    стартую\стоплю вот таким скриптом:

    #! /bin/sh
    #
    # /etc/init.d/netxms
    #
    ### BEGIN INIT INFO
    # Provides:      netxms
    # Required-Start: $local_fs $network sshd
    # Required-Stop:
    # Default-Start:  3 5
    # Default-Stop:
    # Description:    Provides netxms control
    ### END INIT INFO
    
    case "$1" in
            start)
                    echo "whaiting for sql base start, 30 sec around."
            su postgres --session-command="/usr/local/pgsql/bin/pg_ctl -D /opt/pgsql/data start"
                    sleep 20
                    echo "netxmsd starting up..."
                    /usr/local/netxms/bin/netxmsd -c /usr/local/netxms/etc/netxmsd.conf -D 0 -d
                    /usr/local/netxms/bin/nxagentd -d -c /usr/local/netxms/etc/nxagentd.conf
                    ;;
            stop)
            su postgres --session-command "/usr/local/pgsql/bin/pg_ctl -D /opt/pgsql/data stop"
                            killall TERM nxagentd nxhttpd netxmsd
                    ;;
            restart)
                    $0 stop
                    echo "5 second pause before restart. . ."
                    sleep 5
                    $0 start
                    ;;
            *)
            echo "Usage: $0 {start|stop|restart}"
        exit 1
        esac
       exit 0
    

    Что я делаю не так ? Может быть есть где то описанная более-менее процедура правильной остановки ?

    ПО:

    БД - postgresql
    netxms - 0.2.31
    

    Заранее спасибо.

    1 Reply Last reply
    0
    • V
      V
      Victor Kirhenshtein
      wrote on last edited by
      #2

      Добрый день!

      Если я правильно понимаю этот скрипт, при остановке сначала останавливается база данных, а уже потом netxmsd. Соответственно при выходе сервер может не записать какие-то данные из памяти, поскольку база уже остановлена. Правильная последовательность - дать SIGTERM процессу netxmsd, дождаться его завершения (в зависимости от ситуации это может занять какое-то время - до 30 секунд на больших базах), и только после этого останавливать базу.

      Best regards,
      Victor

      1 Reply Last reply
      0
      • K
        K
        karmael
        wrote on last edited by
        #3

        Спасибо, я конечно попробую, но в настройках сервера стоит, что commit в базу раз в 60 сек, однако у меня ситуация более интересная.

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

        -- with best regards,
        Alexander Kleyev.

        p.s. > хм, у меня была идея как раз в том, чтобы сначала правильно погасить базу, чтобы все commitы прошли, но видимо идея не работает, т.к. результат тот же.
        Ибо при перезагрузке сервера - руками послали SIGTERM netxmsd , базу не трогали, перегружали уже целиком сервер, т.е. делали в том порядке, который Вы рекомендовали.

        1 Reply Last reply
        0
        • V
          V
          Victor Kirhenshtein
          wrote on last edited by
          #4

          Да, если пропали настройки, сделанные давно - это конечно к порядку остановки сервисов отношения не имеет. А что в логах сервера? Добавьте в netxmsd.conf строчку

          LogFailedSQLQueries = yes

          возможно какие-то SQL запросы не проходят.

          1 Reply Last reply
          0
          • K
            K
            karmael
            wrote on last edited by
            #5

            в логах netxms - все нормально, никаких сообщений об ошибках. Зато  в логах postgresql - следующее:

            edit:
            в логе netxms.log увидел вот такую штуку :

            Inconsistent database: ServiceRoot object has reference to non-existing child object 1309

            сделал nxdbmgr check - прошло без ошибок.

            [root@monitor ~]# /usr/local/netxms/bin/nxdbmgr check
            NetXMS Database Manager Version 0.2.31
            
            Configuration file OK
            Checking database:
            Database is locked by server 192.168.3.5 [monitor.int.rapida.ru Linux Release 2.6.25-14.fc9.i686]
            Do you wish to force database unlock? (Y/N) y
            Database lock removed
            * Checking node objects...                                              [PASSED]
            * Checking interface objects...                                         [PASSED]
            * Checking network service objects...                                   [PASSED]
            * Checking cluster objects...                                           [PASSED]
            * Checking template to node mapping...                                  [PASSED]
            * Checking object properties...                                         [PASSED]
            * Checking event processing policy...                                   [PASSED]
            * Checking collected data...                                            [PASSED]
            Database doesn't contain any errors
            Database check completed
            

            Зато  в логах postgresql - следующее:

            STATEMENT:  SELECT id FROM nodes WHERE id=1242
            ERROR:  current transaction is aborted, commands ignored until end of transaction block
            STATEMENT:  INSERT INTO nodes (id,primary_ip,node_flags,snmp_version,community,status_poll_type,agent_port,auth_method,secret,snmp_oid,proxy_node,node_type,agent_version,platform_name,uname,poller_node_id,zone_guid,snmp_proxy,required_polls,use_ifxtable,usm_auth_password,usm_priv_password,usm_methods) VALUES (1242,'192.168.3.31',517,1,'public',0,4700,0,'#00','.1.3.6.1.4.1.9.1.217',0,0,'#00','#00','Cisco Internetwork Operating System Software  IOS (tm) C2900XL Software (C2900XL-C3H2S-M), Version 12.0(5.2)XU, MAINTENANCE INTERIM SOFTWARE Copyright (c) 1986-2000 by cisco Systems, Inc. Compiled Mon 17-Jul-00 17:35 by ayounes',0,0,0,0,0,'#00','#00',0)
            ERROR:  current transaction is aborted, commands ignored until end of transaction block
            

            Ошибок конечно на порядок больше, и при каждом обращении клиента к netxmsd - лезет нечто подобное.
            гуглил ошибку в гуглях - вменяемого ответа на ошибку : ERROR:  current transaction is aborted, commands ignored until end of transaction block так и не нашел. Может быть есть специфика в том как netxms пишет в базу ? или все таки уже у постресов спрашивать про ошибку?

            1 Reply Last reply
            0
            • K
              K
              karmael
              wrote on last edited by
              #6

              Виктор, вроде нашел в чем проблема, точней первую ошибку после которой он начинает пробрасывать запросы.
              Не хватает кавычки в первом UPDATE.
              вот кусок лога:

              LOG:  database system was interrupted; last known up at 2010-02-08 16:12:21 MSK
              LOG:  database system was not properly shut down; automatic recovery in progress
              LOG:  redo starts at E6/F0E62E40
              LOG:  record with zero length at E6/F1611F24
              LOG:  redo done at E6/F1611EE4
              LOG:  last completed transaction was at log time 2010-02-08 16:12:12.672469+03
              LOG:  autovacuum launcher started
              LOG:  database system is ready to accept connections
              >>>>>>>>>>>>>>> ERROR:  unterminated quoted string at or near "'N 00" at character 328 #вот в этом месте
              STATEMENT:  UPDATE object_properties SET name='Entire Network',status=4,is_deleted=0,inherit_access_rights=1,last_modified=1265634909,status_calc_alg=0,status_prop_alg=0,status_fix
              ed_val=1,status_shift=0,status_translation='01020304',status_single_threshold=75,status_thresholds='503C2814',comments='',is_system=0,location_type=0,latitude='N 00[/b]
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  DELETE FROM acl WHERE object_id=1
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  SELECT object_id FROM object_properties WHERE object_id=2
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  DELETE FROM container_members WHERE container_id=2
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  DELETE FROM acl WHERE object_id=2
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  SELECT object_id FROM object_properties WHERE object_id=11
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  SELECT id FROM templates WHERE id=11
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  INSERT INTO templates (id,version,enable_auto_apply,apply_filter) VALUES (11,65536,0,'#00')
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              STATEMENT:  DELETE FROM dct_node_map WHERE template_id=11
              ERROR:  current transaction is aborted, commands ignored until end of transaction block
              

              как исправить сие ?

              1 Reply Last reply
              0
              • V
                V
                Victor Kirhenshtein
                wrote on last edited by
                #7

                Sdelaju vecherom patch i vilozu. Spasibo 🙂

                Viktor

                1 Reply Last reply
                0
                • V
                  V
                  Victor Kirhenshtein
                  wrote on last edited by
                  #8

                  Ochen' stranno - vrode kak ispravlena uze eta oshibka. Sravnite pozalujsta fail src/server/core/netobj.cpp s prilozennim. Esli oni ne sovpadajut, zamenite na prilozennij i peresoberite server.


                  netobj.cpp

                  1 Reply Last reply
                  0
                  • K
                    K
                    karmael
                    wrote on last edited by
                    #9

                    пересобрал с Вашим файлом netobj.cpp - проблема сохранилась. вот кусок лога pg_sql:

                    LOG:  received smart shutdown request
                    LOG:  autovacuum launcher shutting down
                    LOG:  shutting down
                    LOG:  database system is shut down
                    LOG:  database system was shut down at 2010-02-11 10:47:49 MSK
                    LOG:  autovacuum launcher started
                    LOG:  database system is ready to accept connections
                    ERROR:  unterminated quoted string at or near "'N 00" at character 328
                    STATEMENT:  UPDATE object_properties SET name='Entire Network',status=4,is_deleted=0,inherit_access_rights=1,last_modified=1265874505,status_calc_alg=0,status_prop_alg=0,status_fixed_val=1,status_shift=0,status_translation='01020304',status_single_threshold=75,status_thresholds='503C2814',comments='',is_system=0,location_type=0,latitude='N 00

                    ERROR:  current transaction is aborted, commands ignored until end of transaction block
                    STATEMENT:  DELETE FROM acl WHERE object_id=1
                    ERROR:  current transaction is aborted, commands ignored until end of transaction block
                    STATEMENT:  SELECT object_id FROM object_properties WHERE object_id=2
                    ERROR:  current transaction is aborted, commands ignored until end of transaction block
                    STATEMENT:  DELETE FROM container_members WHERE container_id=2
                    ERROR:  current transaction is aborted, commands ignored until end of transaction block
                    STATEMENT:  DELETE FROM acl WHERE object_id=2

                    1 Reply Last reply
                    0
                    • V
                      V
                      Victor Kirhenshtein
                      wrote on last edited by
                      #10

                      Poprobujte zapustit' server s kljucom -D 9 (togda budet pisat'sja mnogo debug informacii, vkljuchaja i sql zaprosi) i prislat' log servera pered vipolneniem etogo sql zaprosa (vkljuchaja i sam zapros).
                      I kakaja versija PostgreSQL i operacionki?

                      1 Reply Last reply
                      0
                      • K
                        K
                        karmael
                        wrote on last edited by
                        #11

                        версия линукса и postgres :

                        [root@monitor local]# /usr/local/pgsql/bin/postgres --version
                        postgres (PostgreSQL) 8.3.3
                        [root@monitor local]# uname -a
                        Linux monitor.int.rapida.ru 2.6.25-14.fc9.i686 #1 SMP Thu May 1 06:28:41 EDT 2008 i686 i686 i386 GNU/Linux
                        [root@monitor local]#

                        файл лога прикреплен. Ошибка возникает в самом первом запросе, сразу после старта сервера. т.е. первая строчка в логе.


                        netxms.log.tgz

                        1 Reply Last reply
                        0
                        • V
                          V
                          Victor Kirhenshtein
                          wrote on last edited by
                          #12

                          Vrode razobralsja. Poprobujte novij variant netobj.cpp.


                          netobj.cpp

                          1 Reply Last reply
                          0
                          • K
                            K
                            karmael
                            wrote on last edited by
                            #13

                             теперь вот такая ошибка :

                            11-Feb-2010 15:39:25] Log file opened
                            [11-Feb-2010 15:39:25] Platform subagent "/usr/local/netxms/lib/libnsm_linux.so" successfully loaded
                            [11-Feb-2010 15:39:25] Database driver "/usr/local/netxms/lib/libnxddr_pgsql.so" loaded and initialized successfully
                            [11-Feb-2010 15:39:33] Listening for SNMP traps on UDP socket 0.0.0.0:162
                            [11-Feb-2010 15:39:33] NetXMS Server started
                            [11-Feb-2010 15:39:33] Listening for client connections on TCP socket 0.0.0.0:4701
                            [11-Feb-2010 15:42:33] SQL query failed (Query = "UPDATE object_properties SET name='Подключение по л▒',status=0,is_deleted=0,inherit_access_rights=1,last_modified=1265892116,status_calc_alg=0,status_prop_alg=0,status_fixed_val=1,status_shift=0,status_translation='01020304',status_single_threshold=75,status_thresholds='503C2814',comments='',is_system=0,location_type=0,latitude**='0.000000',longitude='0.000000' WHERE object_id=1374"): ERROR:  unterminated quoted string at or near "'Подключение по л"
                            LINE 1: UPDATE object_properties SET name='Подключение по л**
                                                                      ^
                            [11-Feb-2010 15:42:33] SQL query failed (Query = "SELECT id FROM interfaces WHERE id=1374"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                            [11-Feb-2010 15:42:33] SQL query failed (Query = "INSERT INTO interfaces (id,ip_addr,ip_netmask,node_id,if_type,if_index,mac_addr,synthetic_mask,required_polls) VALUES (1374,'192.168.5.12','255.255.255.0',1103,6,65539,'00304866C4E3',0,0)"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                            [11-Feb-2010 15:42:33] SQL query failed (Query = "DELETE FROM acl WHERE object_id=1374"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                            [11-Feb-2010 15:42:33] SQL query failed (Query = "SELECT object_id FROM object_properties WHERE object_id=1531"): ERROR:  current transaction is aborted, commands ignored until end

                            1 Reply Last reply
                            0
                            • V
                              V
                              Victor Kirhenshtein
                              wrote on last edited by
                              #14

                              Poprobujte zamenit' src/server/dbdrv/pgsql/pgsql.cpp na prilozennij.
                              A v kakoj kodirovke sdelana baza? Esli zamena pgsql.cpp ne pomozet i kodirovka bazi ne UTF8, poprobujte sozdat' bazu s UTF8 kodirovkoj.


                              pgsql.cpp

                              1 Reply Last reply
                              0
                              • K
                                K
                                karmael
                                wrote on last edited by
                                #15

                                Кодировка в базе - UT8
                                проверить смогу только завтра с утра увы, по результатам - отпишусь.
                                Спасибо Вам за оперативную помощь.

                                1 Reply Last reply
                                0
                                • K
                                  K
                                  karmael
                                  wrote on last edited by
                                  #16

                                  Спасибо огромное. Настройки стали сохраняться, в логах ошибки присутствуют, но как  понял работе не мешают  ;D

                                  1 Reply Last reply
                                  0
                                  • V
                                    V
                                    Victor Kirhenshtein
                                    wrote on last edited by
                                    #17

                                    A kakie oshibki ostalis' v loge?

                                    1 Reply Last reply
                                    0
                                    • K
                                      K
                                      karmael
                                      wrote on last edited by
                                      #18

                                      Вы не поверите , но старые, но мало. т.е. они не блокирую прохождение других sql запросов (не знаю, скорей всего после сборки с новым pgsql.cpp)
                                      нынешний лог в полном составе (т.е. больше не растет и ошибок больше нет) ошибки генерит только при старте сервера и выглядит вот так :

                                      [12-Feb-2010 09:34:18] Log file opened
                                      [12-Feb-2010 09:34:18] Platform subagent "/usr/local/netxms/lib/libnsm_linux.so" successfully loaded
                                      [12-Feb-2010 09:34:18] Database driver "/usr/local/netxms/lib/libnxddr_pgsql.so" loaded and initialized successfully
                                      [12-Feb-2010 09:35:00] Listening for SNMP traps on UDP socket 0.0.0.0:162
                                      [12-Feb-2010 09:35:00] NetXMS Server started
                                      [12-Feb-2010 09:35:00] Listening for client connections on TCP socket 0.0.0.0:4701
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "UPDATE object_properties SET name='Подключение по л<D0>',status=0,is_deleted=0,inherit_access_rights=1,last_modified=1265956683,status_calc_alg=0,status_prop_alg=0,status_fixed_val=1,status_shift=0,status_translation='01020304',status_single_threshold=75,status_thresholds='503C2814',comments='',is_system=0,location_type=0,latitude='0.000000',longitude='0.000000' WHERE object_id=1374"): ERROR:  unterminated quoted string at or near "'Подключение по л"
                                      LINE 1: UPDATE object_properties SET name='Подключение по л
                                                                                ^
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "SELECT id FROM interfaces WHERE id=1374"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "INSERT INTO interfaces (id,ip_addr,ip_netmask,node_id,if_type,if_index,mac_addr,synthetic_mask,required_polls) VALUES (1374,'192.168.5.12','255.255.255.0',1103,6,65539,'00304866C4E3',0,0)"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "DELETE FROM acl WHERE object_id=1374"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "SELECT object_id FROM object_properties WHERE object_id=1638"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "SELECT id FROM interfaces WHERE id=1638"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "INSERT INTO interfaces (id,ip_addr,ip_netmask,node_id,if_type,if_index,mac_addr,synthetic_mask,required_polls) VALUES (1638,'192.168.2.4','255.255.255.0',373,6,65539,'003005989DE8',0,0)"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      [12-Feb-2010 09:38:03] SQL query failed (Query = "DELETE FROM acl WHERE object_id=1638"): ERROR:  current transaction is aborted, commands ignored until end of transaction block
                                      
                                      1 Reply Last reply
                                      0

                                      Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                      Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                      With your input, this post could be even better 💗

                                      Register Login
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes


                                      • Login

                                      • Don't have an account? Register

                                      • Login or register to search.
                                      Powered by NodeBB Contributors
                                      • First post
                                        Last post
                                      0
                                      • Categories
                                      • Recent
                                      • Tags
                                      • Popular
                                      • Users
                                      • Groups