Avid tech and PC enthusiast. System Administrator by day, Dad by night.

  • 4 Posts
  • 14 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle








  • What I’m trying to achieve is backup and archival of data for long term retention and recovery.

    There are certain legal obligations that as an organization we need to fulfill. Being able to recover emails and data from up to 5 years ago. If a user leaves or deletes an email or a file that we suddenly need to reference years down the road, that is not possible with the retention tools MS gives us.

    So I’m looking for a solution that allows me to backup this data daily and store it for 5 to 7 years for future reference and recovery if needed.




  • Edit: September 25, 2023 - Added more details to the solution for my issue.

    Just wanted to update this so if anyone else is having the same issue hopefully it helps them.

    During initial tenant setup I created a couple of retention policies. I thought these would only affect Teams data, but it turns out it also applied to Exchange Online mailboxes. When I tried to remove the Exchange Online license from the user it would give an Exchange error message in admin console and the mailbox would not get removed.

    The issue turned out to be caused by holds that were applied to the user mailbox. Specifically these two:

    DelayHoldApplied

    ReleaseDelayHoldApplied

    Both were set to $true.

    1. I removed the retention policies, they probably weren’t configured correct in the first place.

    2. Used the following Powershell command to identify the holds applied to mailboxes:

    Get-Mailbox | FL Identity,*HoldApplied*

    1. Used the “Set-Mailbox” command to remove those holds:

    Set-Mailbox -Identity @mydomain.com -RemoveDelayHoldApplied

    Set-Mailbox -Identity @mydomain.com -RemoveDelayReleaseHoldApplied

    1. Delete the user’s mailbox by removing the Exchange Online license from the user and waited for the mailbox to disappear from the Exchange Online admin center.

    2. Run the following command to wipe out the pre-existing mailbox data. Without doing this, even after the on-prem user is synced Exchange Online will not care that the user has an on-prem mailbox, and will restore the previously deleted cloud mailbox from step 4.

    Set-User @mydomain.com -PermanentlyClearPreviousMailboxInfo

    1. Force a sync of users using Azure AD Connect

    2. Re-enable the Exchange Online license for the user. After this is done in the users Mail settings you should see a message “This user’s on-premises mailbox hasn’t been migrated to ‎Exchange Online‎. The ‎Exchange Online‎ mailbox will be available after migration is completed”

    Thanks to everyone who replied and offered help.






  • Zabbix stores all it’s data in a PostgreSQL or MySQL database. However… there are 2 ways that Zabbix Agents work. Either in passive mode, or in active mode.

    Passive Agent = “poller” process on the Zabbix server sends a request to the agent asking for values for the items it’s monitoring (based on template applied to host). Depending on the number of hosts you’re monitoring and how many poller processes are configured to start with the Zabbix server, you may run into a situation where requests are queued because the poller process is too busy. Increasing the number of poller processes will fix this, but it also adds additional load to your DB as each poller process will connect to your DB to write data, and each poller process will consume a certain amount of memory. Too many and you’ll run out of RAM, or bog down your DB.

    Active Agent = “trapper” process on the Zabbix server listens for item values from being sent to it from the agents. Agents will query the Zabbix server to see what templates are applied to it’s host, and will figure out what items it’s supposed to monitor. The agent will actively query the items without the Zabbix server requesting it, and will send the item values to the server as scheduled. This puts a lot less load on the Zabbix server.

    Item values are not read from the DB to activate the trigger. When a value is received that matches the trigger’s expression, then the trigger is activated. Live values are used to activate triggers and trigger actions (alerts).