guides:reference:nccm
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
guides:reference:nccm [2021/04/09 08:44] – [Polling groups] pgels | guides:reference:nccm [2024/07/03 12:31] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== NCCM Reference ===== | ||
+ | NCCM stands for Network Configuration and Change Management. It keeps track of the configs of your nodes, and any changes that happen to them over time. It is stored in its own database, alongside compliance which is heavily dependant on it. You can view these tables in the Custom data form in the admin section. | ||
+ | |||
+ | ==== NCCM Selections ==== | ||
+ | The Nccm_selections table keeps track of all nodes that are maintained in the NCCM. These can be nodes in YCE or the CMDB. It has the following attributes: | ||
+ | |||
+ | * **Nodename: | ||
+ | * **Server:** This field is used by the yce_nccmd daemon to claim this node: if this field has a value, no other yce machine may claim this node. | ||
+ | * **Schedule_servers: | ||
+ | * **Disable_polling: | ||
+ | * 0: The node can be polled | ||
+ | * 1: Something went wrong and polling is halted, the node will not be polled | ||
+ | * 2: The node is disabled and will not be polled | ||
+ | * **Current_base_id: | ||
+ | * **Marked_id: | ||
+ | * **Task_mask: | ||
+ | * Bit 1: on if the nccm poll should be followed up by a compliance check. | ||
+ | * **Next_poll_time: | ||
+ | * **Last_successfull_poll: | ||
+ | * **Last_failed_poll: | ||
+ | * **Failed_polls: | ||
+ | * **Total_successfull_polls: | ||
+ | * **Total_failed_polls: | ||
+ | * **Comment_str: | ||
+ | |||
+ | The Next_poll_time and how many Failed_polls should be tolerated are dependent on the node's polling groups. | ||
+ | |||
+ | |||
+ | ==== Polling groups ==== | ||
+ | |||
+ | Polling groups can contain a number of node groups. A node can therefore have more than one polling group. If any attributes conflict for such a node, the minimum value is picked. A polling group has the following attributes: | ||
+ | * **Polling_group_id: | ||
+ | * **Group_name: | ||
+ | * **Polling_group_type: | ||
+ | * 0: This polling group consists of node groups | ||
+ | * 1: This polling group consists of nodes | ||
+ | * **Node_groups: | ||
+ | * **Next_poll_interval: | ||
+ | * **Max_retries: | ||
+ | |||
+ | ==== NCCM Data and Diffs ==== | ||
+ | |||
+ | The Nccm_data table keeps track of all nccm polls. Since these tables can grow quite large, they are split into weekly tables for added stability. The table Nccm_data_all and Nccm_data_quarter combine those together into just one table for all records, or all records of the past three months respectively. They have the following attributes: | ||
+ | |||
+ | * **Nccm_id**: | ||
+ | * **Nodename**: | ||
+ | * **Node_fqdn**: | ||
+ | * **Baseconfig_id**: | ||
+ | * **JobID**: The job that lead to this record, if applicable | ||
+ | * **Operator**: | ||
+ | * **Nccm_cause**: | ||
+ | * **Nccm_status**: | ||
+ | |||
+ | The Nccm_diff table contains the actual configs. Their records correspond one-on-one to the Nccm_data table, linked by their Nccm_id. This table too is split in weekly tables, and they are combined together in the Nccm_diff_all and Nccm_diff_quarter tables. This is where the Baseconfig_ids come in. Since most changes in configs only relate to a part of a config, saving the whole config for every single poll would create a lot of waste. Base configs are therefore saved as whole configs, and diffs just store the lines that are different from their base config. | ||
+ | |||
+ | The Nccm_diff tables have the following attributes: | ||
+ | |||
+ | * **Nccm_id**: | ||
+ | * **Nodename**: | ||
+ | * **Config_text**: | ||
+ | |||
+ | Please note that any text that changes every time (for example cyphers and timestamps) are filtered out so that they don't trigger false positives. We also filter out passwords for security reasons. | ||
+ | |||
+ | ==== NCCMD Daemon ==== | ||
+ | |||
+ | //Main article [[guides: |