Hello everyone, and thank you for this great piece of software 
I have a Zabbix Proxy machine using SQLite3, VM running CentOS 8, x86_64. It has just replaced a Zabbix proxy machine with exactly the same hostname which used to be a bare-metal machine, not sure it's important but I prefer to mention that.
Former proxy machine used to work like a charm. But new instance that replaced it doesn't initialize properly ; when Zabbix server try to send Proxy configuration, operation ends up with following logs :
Of course I first tried to remove the zabbix_proxy SQLite database, I removed the file then restarted Zabbix Proxy. Same issue.
I then retried with manual creation of SQLite database (using provided schema.sql.gz), same issue.
I thought it could be related to the old proxy machine sharing the same name (machine removed since), so I removed all configuration for that proxy, removed again the database, then restarted && recreated the Proxy object configuration. Same issue.
Except from trying with Postgres or Mariadb database as a workaround, I'm not sure what I can do next... The machine is supposed to monitor a bunch a agents only, so anything other than SQLite would be overkill IMO.
It looks like a new bug. Any ideas ..?
Thank you in advance,
Guillaume

I have a Zabbix Proxy machine using SQLite3, VM running CentOS 8, x86_64. It has just replaced a Zabbix proxy machine with exactly the same hostname which used to be a bare-metal machine, not sure it's important but I prefer to mention that.
Former proxy machine used to work like a charm. But new instance that replaced it doesn't initialize properly ; when Zabbix server try to send Proxy configuration, operation ends up with following logs :
Code:
7763:20211025:102610.189 received configuration data from server at "192.168.128.14", datalen 8532
7763:20211025:102610.190 [Z3005] query failed: [0] UNIQUE constraint failed: globalmacro.macro [insert into globalmacro (globalmacroid,macro,value) values (2,'{$SNMP_COMMUNITY}','public');
insert into globalmacro (globalmacroid,macro,value) values (2,'{$SNMP_COMMUNITY}','public');
insert into globalmacro (globalmacroid,macro,value) values (3,'{$IOB_NET_INT_TRUNK}','^[Tt][Rr][Uu][Nn][Kk].*');
insert into globalmacro (globalmacroid,macro,value) values (3,'{$IOB_NET_INT_TRUNK}','^[Tt][Rr][Uu][Nn][Kk].*');
insert into globalmacro (globalmacroid,macro,value) values (4,'{$IOB_NET_INT_PO}','^Interface [Pp][Oo][0-9]$');
insert into globalmacro (globalmacroid,macro,value) values (4,'{$IOB_NET_INT_PO}','^Interface [Pp][Oo][0-9]$');
insert into globalmacro (globalmacroid,macro,value) values (5,'{$IOB_NET_INT_DUPLEX}','.*Duplex status.*');
insert into globalmacro (globalmacroid,macro,value) values (5,'{$IOB_NET_INT_DUPLEX}','.*Duplex status.*');
insert into globalmacro (globalmacroid,macro,value) values (6,'{$IOB_NET_INT_PO_CH}','^[Pp][Oo][Rr][Tt]-[Cc][Hh][Aa][Nn][Nn][Ee][Ll][0-9.]');
insert into globalmacro (globalmacroid,macro,value) values (6,'{$IOB_NET_INT_PO_CH}','^[Pp][Oo][Rr][Tt]-[Cc][Hh][Aa][Nn][Nn][Ee][Ll][0-9.]');
insert into globalmacro (globalmacroid,macro,value) values (7,'{$IOB_NET_INT_GI}','[Gg][Ii][0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (7,'{$IOB_NET_INT_GI}','[Gg][Ii][0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (8,'{$IOB_NET_INT_SUP}','^[Ss][Uu][Pp].*$');
insert into globalmacro (globalmacroid,macro,value) values (8,'{$IOB_NET_INT_SUP}','^[Ss][Uu][Pp].*$');
insert into globalmacro (globalmacroid,macro,value) values (9,'{$IF.ERRORS.WARN}','30');
insert into globalmacro (globalmacroid,macro,value) values (9,'{$IF.ERRORS.WARN}','30');
insert into globalmacro (globalmacroid,macro,value) values (10,'{$IF.UTIL.MAX}','50');
insert into globalmacro (globalmacroid,macro,value) values (10,'{$IF.UTIL.MAX}','50');
insert into globalmacro (globalmacroid,macro,value) values (12,'{$IOB_NET_INT_GIGA}','^GigabitEthernet[0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (12,'{$IOB_NET_INT_GIGA}','^GigabitEthernet[0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (13,'{$IOB_NET_INT_TUNNEL}','^Tunnel[0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (13,'{$IOB_NET_INT_TUNNEL}','^Tunnel[0-9.].*');
insert into globalmacro (globalmacroid,macro,value) values (14,'{$IF.UTIL.DUREE.MAX}','1m');
insert into globalmacro (globalmacroid,macro,value) values (14,'{$IF.UTIL.DUREE.MAX}','1m');
insert into globalmacro (globalmacroid,macro,value) values (15,'{$IF.UTIL.MAX.RECOVERY}','2');
insert into globalmacro (globalmacroid,macro,value) values (15,'{$IF.UTIL.MAX.RECOVERY}','2');
insert into globalmacro (globalmacroid,macro,value) values (16,'{$IF.ERRORS.DUREE.WARN}','5m');
insert into globalmacro (globalmacroid,macro,value) values (16,'{$IF.ERRORS.DUREE.WARN}','5m');
insert into globalmacro (globalmacroid,macro,value) values (17,'{$IF.ERRORS.WARN.RECOVERY}','5');
insert into globalmacro (globalmacroid,macro,value) values (17,'{$IF.ERRORS.WARN.RECOVERY}','5');
insert into globalmacro (globalmacroid,macro,value) values (18,'{$IOB_NET_INT_EMBED}','^[Ee]mbedded-[Ss]ervice-[Ee]ngine.*');
insert into globalmacro (globalmacroid,macro,value) values (18,'{$IOB_NET_INT_EMBED}','^[Ee]mbedded-[Ss]ervice-[Ee]ngine.*');
insert into globalmacro (globalmacroid,macro,value) values (19,'{$IOB_NET_INT_NULL}','^[Nn]ull.*');
insert into globalmacro (globalmacroid,macro,value) values (19,'{$IOB_NET_INT_NULL}','^[Nn]ull.*');
insert into globalmacro (globalmacroid,macro,value) values (20,'{$IOB_NET_INT_NU}','^[Nn][Uu].*');
insert into globalmacro (globalmacroid,macro,value) values (20,'{$IOB_NET_INT_NU}','^[Nn][Uu].*');
insert into globalmacro (globalmacroid,macro,value) values (21,'{$IOB_NET_INT_EM}','^[Ee][Mm].*');
insert into globalmacro (globalmacroid,macro,value) values (21,'{$IOB_NET_INT_EM}','^[Ee][Mm].*');
insert into globalmacro (globalmacroid,macro,value) values (23,'{$IOB_NET_INT_NV}','^[Nn][Vv].*');
insert into globalmacro (globalmacroid,macro,value) values (23,'{$IOB_NET_INT_NV}','^[Nn][Vv].*');
insert into globalmacro (globalmacroid,macro,value) values (24,'{$IOB_NET_INT_VIR}','(24|131|135)');
insert into globalmacro (globalmacroid,macro,value) values (24,'{$IOB_NET_INT_VIR}','(24|131|135)');
insert into globalmacro (globalmacroid,macro,value) values (26,'{$IOB_NET_INT_TYPE_1}','(1)');
insert into globalmacro (globalmacroid,macro,value) values (26,'{$IOB_NET_INT_TYPE_1}','(1)');
insert into globalmacro (globalmacroid,macro,value) values (27,'{$IOB_NET_INT_BRIO}','^[Bb][Rr][Ii][Oo].*');
insert into globalmacro (globalmacroid,macro,value) values (27,'{$IOB_NET_INT_BRIO}','^[Bb][Rr][Ii][Oo].*');
insert into globalmacro (globalmacroid,macro,value) values (28,'{$IOB_NET_INT_BRIO_IFNAME}','^[Bb][Rr][0-9].*');
insert into globalmacro (globalmacroid,macro,value) values (28,'{$IOB_NET_INT_BRIO_IFNAME}','^[Bb][Rr][0-9].*');
insert into globalmacro (globalmacroid,macro,value) values (30,'{$CPU.UTIL.CRIT}','99');
insert into globalmacro (globalmacroid,macro,value) values (30,'{$CPU.UTIL.CRIT}','99');
insert into globalmacro (globalmacroid,macro,value) values (31,'{$MEMORY.UTIL.MAX}','95');
insert into globalmacro (globalmacroid,macro,value) values (31,'{$MEMORY.UTIL.MAX}','95');
insert into globalmacro (globalmacroid,macro,value) values (32,'{$SWAP.FREE.ALERT}','30');
insert into globalmacro (globalmacroid,macro,value) values (32,'{$SWAP.FREE.ALERT}','30');
]
7763:20211025:102610.190 failed to update local proxy configuration copy: database error
I then retried with manual creation of SQLite database (using provided schema.sql.gz), same issue.
I thought it could be related to the old proxy machine sharing the same name (machine removed since), so I removed all configuration for that proxy, removed again the database, then restarted && recreated the Proxy object configuration. Same issue.
Except from trying with Postgres or Mariadb database as a workaround, I'm not sure what I can do next... The machine is supposed to monitor a bunch a agents only, so anything other than SQLite would be overkill IMO.
It looks like a new bug. Any ideas ..?
Thank you in advance,
Guillaume
Comment