There really isn't any hard limit of 1000 devices and nothing bad happens if you have more than that. 1000 was used as a rough estimate because the table in section 1.2.1 scaled from 1 - 1000. Even those recommendations are still estimates.
If your 1000 devices are all in the /Ping device class, you may not need 16GB RAM and 8 CPU cores.
If your 1000 devices are all network switches with 1000 interfaces each, you may need more than 16GB and 8 cores.
The other important barrier to scaling Zenoss 4.x (and earlier) is that metrics are stored in the
. Every data point collected goes into its own, individual .rrd, meaning that every 5 minutes (unless you've changed the default cycle times), every one of those files is updated. That's why the chart in 1.2.1 switches to 15k RPM drives between 500 - 1000.
If you've already deleted and recreated the zenoss vhost and user in RabbitMQ, a restart of zenhub and zenjobs should recreate the necessary queues. The jobs listed as "Pending" in the UI may need to be manually deleted. After that, I would recommend adding a test device to see if the "create device" job gets created and processed. (To make things easier, I like to uncheck the "model device" box when adding in a fake device. Then the system doesn't complain that there's no management IP address.)
If nothing changes and jobs still don't want to process, grab the zenjobs.log file and I'll be happy to take a peek. As always, make sure to remove any hostnames/addresses/incriminating evidence.
Michael J. Rogers
Subject: |
RE: Zenoss 4.2.5 - Jobs status as "Peding" after adding a device |
Author: |
Gisele Andrade |
Posted: |
2022-03-14 08:12 |
Good morning Michael,
I appreciate your help! a lot has been clarified.
I will check the time to update the individual files.
I've already noticed that even for new devices that I add when I don't mark the model device I have more success when adding. I believe that currently, what I really need is to upgrade to Zenoss Core 6, but I'm still limited to using it with Ubuntu, so I'm still reading the documentation when I have time.
A great week!
------------------------------
Gisele Andrade
IT Analyst
Personal
São Paulo
------------------------------
Subject: |
RE: Zenoss 4.2.5 - Jobs status as "Peding" after adding a device |
Author: |
Gisele Andrade |
Posted: |
2022-03-14 15:04 |
Hi Michael,
The moment I tried to add a device, the zenjobs log pointed out:
2022-03-14 12:12:23,391 INFO celery.worker.consumer: Got task from broker: Products.ZenModel.ZDeviceLoader.DeviceCreationJob[d2494bfa-dfc7-4efc-965e-ba29ad788960]
2022-03-14 12:12:23,422 INFO relstorage: Reconnecting load_conn: (2013, 'Lost connection to MySQL server during query')
2022-03-14 12:12:23,424 CRITICAL celery.worker.job: Task Products.ZenModel.ZDeviceLoader.DeviceCreationJob[d2494bfa-dfc7-4efc-965e-ba29ad788960] INTERNAL ERROR: error(32, 'Broken pipe')
Traceback (most recent call last):
File "/usr/local/zenoss/lib/python/celery/task/trace.py", line 178, in trace_task
args=args, kwargs=kwargs)
File "/usr/local/zenoss/lib/python/celery/utils/dispatch/signal.py", line 151, in send
response = receiver(signal=self, sender=sender, **named)
File "/usr/local/zenoss/Products/Jobber/zenjobs.py", line 106, in task_prerun_handler
status = task.app.backend.get_status(task_id)
File "/usr/local/zenoss/lib/python/celery/backends/base.py", line 254, in get_status
return self.get_task_meta(task_id)["status"]
File "/usr/local/zenoss/lib/python/celery/backends/base.py", line 282, in get_task_meta
meta = self._get_task_meta_for(task_id)
File "/usr/local/zenoss/Products/ZenUtils/celeryintegration/backend.py", line 174, in _get_task_meta_for
return self.jobmgr.getJob(task_id)
File "/usr/local/zenoss/Products/ZenUtils/celeryintegration/backend.py", line 116, in jobmgr
return self.dmd.JobManager
File "/usr/local/zenoss/Products/ZenUtils/celeryintegration/backend.py", line 102, in dmd
conn = self.db.open()
File "/usr/local/zenoss/lib/python/ZODB/DB.py", line 751, in open
result.open(transaction_manager)
File "/usr/local/zenoss/lib/python/ZODB/Connection.py", line 1045, in open
self._flush_invalidations()
File "/usr/local/zenoss/lib/python/ZODB/Connection.py", line 492, in _flush_invalidations
invalidated = self._storage.poll_invalidations()
File "/usr/local/zenoss/lib/python/relstorage/storage.py", line 1233, in poll_invalidations
changes, new_polled_tid = self._restart_load_and_poll()
File "/usr/local/zenoss/lib/python/relstorage/storage.py", line 1207, in _restart_load_and_poll
self._adapter.poller.poll_invalidations, prev, ignore_tid)
File "/usr/local/zenoss/lib/python/relstorage/storage.py", line 262, in _restart_load_and_call
self._drop_load_connection()
File "/usr/local/zenoss/lib/python/relstorage/storage.py", line 227, in _drop_load_connection
self._adapter.connmanager.close(conn, cursor)
File "/usr/local/zenoss/lib/python/relstorage/adapters/connmanager.py", line 61, in close
obj.close()
File "/usr/local/zenoss/lib/python/pymysql/connections.py", line 536, in close
self.wfile.close()
File "/usr/local/zenoss/lib/python2.7/socket.py", line 279, in close
self.flush()
File "/usr/local/zenoss/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
------------------------------
Gisele Andrade
IT Analyst
Personal
São Paulo
------------------------------