Initial startup debug log from proxy indicates disconnect between database schema and daemon queries. On a clean startup with only one host enabled for monitoring through the proxy, the server successfully sends config data to the proxy, but the proxy cannot take action on its local database:. log snippets, full versions attached:. zbxserver01: 0608:092902.811 Deleted 0 records from history and trends 0608:092912.351 Sending configuration data to proxy 'zbxproxy01'. Datalen 16272.
zbxproxy01: 0608:092912.355 Received configuration data from server. Datalen 5:20112.367 Z3005 query failed: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`zabbix20086`.`optemplate`, CONSTRAINT `coptemplate2` FOREIGN KEY (`templateid`) REFERENCES `hosts` (`hostid`)) delete from hosts where hostid in (2,4,8,0,2,4,6,8,0,2,4,6,8,0,2,4,6,9,1,3,5,10046) This problem appears to be due to changes made to the zabbix server default templates, where I have deleted many of the default entries, and created several new ones. The proxy was set up with the STOCK sql per installation instructions. The query failure seems to be due to these discrepancies, and the daemons are not replicating changes from the master zabbix server to proxy instance. Note that this same behaviour appears to be happening in my tests when using DM child nodes. Example of the failing criteria query run on both the zabbix server and proxy illustrating the differences in DB content:. zbxserver01: mysql select hostid,host from hosts where hostid in (2,4,8,0,2,4,6,8,0,2,4,6,8,0,2,4,6,9,1,3,5,10046); - -+.
Items Items are individual, measurable counters that may be retrieved by querying the OS or Zabbix Agent. The administrator may easily define time-weighted average sampling to smooth 'peaks' and 'valleys' in the calculated values. A sampling rate (frequency) and period (time) define a time-weighted average. For instance, if the sampling period is defined as 300 seconds and the rate at one sample per 30 seconds, a time-weighted average value for each stored Item value consists of the mean of ten samples. Triggers Triggers are counter values that represent degraded conditions.
Zabbix provides the following classifications of Trigger values:. Not Classified. Information.
Warning. Average. High. Disaster Each Trigger also has administratively-assigned fields for Description and URL.
Server and Application Monitor's Exchange template lets you easily identify performance issues in your Microsoft Exchange Server environment for faster troubleshooting. Monitor mailbox database size, mount status, replication status, information store, and more. I decided to bypass the module - pyzabbix and decided to use the raw zabbix sender utility. For other folks my solution relies on a file with values that need to be sent to zabbix.
These are very useful as the administrator may assign the URL of a reliable source and description of the Trigger (e.g. Microsoft Technet Performance Monitor references for descriptions and thresholds) and a brief description copied into the trigger. Graphs Graphs are the primary visualization for collected data and the feature at which Zabbix excels. Multiple, related items may be assigned to a single graph (e.g.
Processor Idle% and Processor Utilization%) for easy comparison. Graphs should be grouped according to the types of data present (e.g. Rates in counters/sec for one graph, percentages in a second, total counters in a third, etc.). Graphs, unlike those generated by many RRDTool implementations, are generated just-in-time, saving resource utilization. That is, without a CGI implementation, RRDTool typically generates all graphs simultaneously using cron jobs.
For an example, see this article on Munin and this article on Icinga/Nagios graphing for examples. Zabbix only generates graphs when called upon by the administrator, thus saving much of the periodic processing time a cron job implementation requires. The Importance of Defining Appropriate Sets of Zabbix Template Information for Exchange Enterprises Exchange Server Roles Zabbix will not allow you to assign Templates to a host if there are duplicates in the Templates.
Thus, if Template A defines and item 'servicestateMSExchangeADTopology' and Template B defines the same item, Zabbix will only allow you to assign one of the Templates. It is critical to design Templates in advance so that Item, Trigger, Graph and Screen names are not duplicated. For an Exchange Enterprise, the author has selected a framework based upon the overall architecture of the Application, its Performance Counters and its Services. Yet even then it is more complex than just those three general groups. Exchange Server 2010 allows the administrator to install different roles. Mailbox Role (Mandatory).
Hub Transport Role (Mandatory). Client Access Server Role (Mandatory). Unified Messaging Server Role (Optional). Edge Transport Role (Optional and Unique) The first three roles must be present in the enterprise. They may be deployed on a single server or deployed individually or in combination on multiple servers.
The Unified Messaging role is optional; the Edge Transport Role is also optional and (if installed) no other roles may be present. A more detailed description of Exchange 2010 Roles is available in the article. The templates for each Role/Role Service/Feature set monitor the availability of services using both the Zabbix 'servicestate' check to query the OS and 'net.tcp.listen' (or variant thereof) to query the NIC TCP service(s) in question. For instance, you may check the Service state 'Microsoft Exchange IMAP Service' and associated TCP services on ports 143 (IMAP) and 993 (IMAPS) to determine if the IMAP Mailbox Access service is available. Service state queries may have multiple triggers that depend on the state returned by Windows (Up, Down, Restarting, etc.) and TCP services a single trigger for Up or Down. Templates also collect fundamental Performance Counters. There is still another set of definitions for Templates - information important for day-to-day monitoring and information important for troubleshooting, trend analysis and scalability design.
The second set includes primarily Performance Counters. Thus, for each set of Exchange data collected, there is a standard set of data including Application service checks, TCP service checks and Performance Counters and a second, more detailed set that includes primarily Performance Counters. Flowing from the examples above, the 'Exchange 2010 Client Access Server' Template would provide important day-to-day triggers and performance information while a second, 'exchange 2010 Client Access Server Performance Counters' provides highly detailed data for troubleshooting, trend analysis, etc.
Implementation Avoiding duplicate definitions that may lead to the inability to assign multiple Templates to a Zabbix host requires planning and a thorough understanding of Exchange Server Architecture and Topology. A thorough understanding of the critical core Items versus specialized troubleshooting ones is also very important to provide both day-to-day functionality and less-commonly used troubleshooting, trend analysis, and scalability design information. Using the above guidelines, we may define an (incomplete) example set of:. The optional Unified Messaging and Edge Transport Roles are not included in this list, but may also be defined. The Edge Transport Role is a subset of the Hub Transport Role functionality and the Templates may be easily added by cloning and modifying the existing Hub Transport Templates. Each Template contains (where available and appropriate):.
Item an d Trigger Descriptions. Time-weighted Item collection (generally a 30 second collection interval averaged over a 300 second collection period). Trigger URL references to the source reference page for the definition. Graphs of individual and sets of items. Screens of Application Groups that collect various screens into logical and complete visualization sets Discovery Discovery uses the same methodology as described in the article. The Zabbix configuration file deployed to each node through Active Directory Group Policy Objects uses Windows commands to check for specific services - unique to Roles - during discovery.
In the case of Exchange, the following service check statements are added to the file: Common to All Exchange Servers UserParameter=services.MSExchangeServiceHost,net start MSExchangeServiceHost Mailbox Servers UserParameter=services.MSExchangeIS,net start MSExchangeIS Hub Transport Servers UserParameter=services.MSExchangeTransport,net start MSExchangeTransport Client Access Servers UserParameter=services.MSExchangeFBA,net start MSExchangeFBA The Zabbix Discovery Process runs those queries only during discovery and adds the hosts to the proper groups and templates using Actions.