Hey! These docs are for version 6.3, which is no longer officially supported. Click here for the latest version, 6.7!

Cache Manager

Description

Opsview Cache manager is a fast, distributed in-memory key-value store, which can be used to cache session and other disposable data with a short shelf life. As the storage is only in memory, restarting the Cache Manager will potentially lose previously stored cache data and the components making use of this will then need to re-populate that data.

The Cache Manager has an API available to client components with both HTTP and HTTPS endpoints. It also uses this API to communicate with other peers within the cluster to implement the distributed cache.

Package Dependencies

  • opsview-python.

Service Dependencies

  • opsview-registry

Installation

The component is deployed on Collectors by Opsview Deploy. The specific playbook is cache-manager-install.yaml.

Configuration

Specific configuration options should be set in /opt/opsview/cachemanager/etc/cachemanager.yaml. Opsview Deploy will automatically configure Cache Manager peers within the cluster.

The following settings can be managed, but it is strongly recommended that they managed via Opsview-Deploy to ensure that they are synchronized within each cluster, otherwise the Cache Manager may not function correctly.

SettingDescription
worker_timeoutThe time a worker remains dormant after an error before re-starting (default 30s).
max_cache_sizeThe maximum size of the local cache (default = 1GB, 0B = no limit).
max_item_sizeThe maximum size of an individual cache entry (default 10MB, 0B = no limit).
peer_refresh_timeThe time delay before peers marked as "down" will be rechecked.
peer_connection_timeoutThe timeout value when attempting communication with a peer.
timestamp_error_marginThe max time difference allowable when validating an encrypted namespace.
cache_purge_timeThe time delay before expired items are actively purged from the cache.
http_serverThe settings for the HTTP endpoint (including namespace encryption).
https_serverThe settings for the HTTPS endpoint (including namespace encryption). The encryption must match that specified in the http_server. The client certificate, ca certificate and server certificate should also be specified here. (Generally automatically setup by Opsview Deploy)
registryThe connection to Opsview Registry. (Generally automatically setup by Opsview Deploy)
peer_nodesThe other Cache Manager nodes in the cluster. (Generally automatically setup by Opsview Deploy)

Management

Start/Stop cachemanager

# Once configured on the machine you need to run the following command to get it working
sudo /opt/opsview/watchdog/bin/opsview-monit reload
sudo /opt/opsview/watchdog/bin/opsview-monit start opsview-cachemanager
# To stop the cachemanager
sudo /opt/opsview/watchdog/bin/opsview-monit stop opsview-cachemanager

Validate cache manager status

Get status of cache manager

curl http://127.0.0.1:8182/status -s | python -m json.tool
{
    "available_peer_refs": [
        "1d20de92-12bd-4067-8563-8d63e83429cc"
    ],
    "cache_items": 0,
    "peers": [
        {
            "deactivated": 0,
            "ref": "1d20de92-12bd-4067-8563-8d63e83429cc"
        }
    ],
    "ref": "1d20de92-12bd-4067-8563-8d63e83429cc",
    "uptime": 4581
}

Logging

Logs to syslog as per all other components

Example logging:

Oct 14 11:13:11 cdb-cachemanager journal: opsview : [NOTICE] Launching Opsview Cache-Manager daemon.
Oct 14 11:13:11 cdb-cachemanager journal: opsview.cachemanager.cachemanagerworker : [NOTICE] Worker started (PID=15807).