Skip to content
Snippets Groups Projects
Select Git revision
  • 6ef84880cc1b05596c225a04c559ff7fb806e6ff
  • master default protected
  • simple-task/7248-eol-check-add-node-22
  • 6877_check_iml_deployment
4 results

check_couchdb.md

Blame
  • check_couchdb

    Introduction

    Check couchdb status.

    Requirements

    • curl
    • jq
    • a running couchdb service
    • authentication (see section Installation below)

    Syntax

    > check_couchdb -h
    ______________________________________________________________________
    
    CHECK_COUCHDB
    v0.7
    
    (c) Institute for Medical Education - University of Bern
    Licence: GNU GPL 3
    
    https://os-docs.iml.unibe.ch/icinga-checks/Checks/check_couchdb.html
    ______________________________________________________________________
    
    Show couchdb status.
    
    SYNTAX:
    check_couchdb [-h] [-t FILE] -m MODE
    
    OPTIONS:
      -h or --help    show this help.
      -c CFGFILE      set a custom config file
                      default: /etc/icingaclient/.couchdb
      -m MODE         test a value; for debugging purposes the full json 
                      response will be shown
    
      MODE is one of
      httpd           Show counters for http request types
      httpd_methods   Show counters for http request methods
      open_databases  show number of open databases
      open_os_files   show number of file descriptors CouchDB has open
      replication     show last replication status
      pending         show count of pending updates for nodes, dbs and users
      replication     show last replication status
      up              show general couchdb health status
    
    EXAMPLE:
    check_couchdb -m up
      Check if couchdb is up and running
    
    check_couchdb -m httpd_methods
      Show counters and change rate per sec of GET, POST, and other methods
    
    check_couchdb -c /opt/couchdb/myconfig.sh -m up
      Source another config to define COUCH_URL
    

    Installation

    The check script by default sources a file /etc/icingaclient/.couchdb. It is a shell script with read permissions for the icinga user. It contains a line with the url to couchdb

    # ls -l /etc/icingaclient/.couchdb
    -r--------. 1 icingaclient icingaclient 110 Aug 29 09:53 /etc/icingaclient/.couchdb
    
    # cat /etc/icingaclient/.couchdb
    export COUCH_URL=http://USERNAME:PASSWORD@localhost:5984

    The variable COUCH_URL will be used to request status information.

    With parameter -c CFGFILE can define another location where to find the variable COUCH_URL.

    Checks

    With the parameter -m METHOD you define what kind of check to perform.

    httpd

    Show counters for http request types.

    All values are taken from /_node/_local/_stats/couchdb/httpd

    check_couchdb -m httpd_methods returns

    OK: Couchdb :: Http request methods
    ______________________Property____Counter______Delta
                  aborted_requests          0          0 per sec
                     bulk_requests          0          0 per sec
                          requests     190116          1 per sec
                     view_timeouts          0          0 per sec
                     find_timeouts          0          0 per sec
                  explain_timeouts          0          0 per sec
                 all_docs_timeouts          0          0 per sec
           partition_view_requests          0          0 per sec
           partition_find_requests          0          0 per sec
        partition_explain_requests          0          0 per sec
       partition_all_docs_requests          0          0 per sec
           partition_view_timeouts          0          0 per sec
           partition_find_timeouts          0          0 per sec
        partition_explain_timeouts          0          0 per sec
       partition_all_docs_timeouts          0          0 per sec
              temporary_view_reads          0          0 per sec
                        view_reads          0          0 per sec
        clients_requesting_changes          0          0 per sec
                    purge_requests          0          0 per sec
    
     |abortedrequests=0;; bulkrequests=0;; requests=1;; viewtimeouts=0;; findtimeouts=0;; explaintimeouts=0;; alldocstimeouts=0;; partitionviewrequests=0;; partitionfindrequests=0;; partitionexplainrequests=0;; partitionalldocsrequests=0;; partitionviewtimeouts=0;; partitionfindtimeouts=0;; partitionexplaintimeouts=0;; partitionalldocstimeouts=0;; temporaryviewreads=0;; viewreads=0;; clientsrequestingchanges=0;; purgerequests=0;;

    Description of the properties:

    Property Description
    aborted_requests number of aborted requests
    bulk_requests number of bulk requests
    requests number of HTTP requests
    view_timeouts number of HTTP view timeouts
    find_timeouts number of HTTP find timeouts
    explain_timeouts number of HTTP _explain timeouts
    all_docs_timeouts number of HTTP all_docs timeouts
    partition_view_requests number of partition HTTP view requests
    partition_find_requests number of partition HTTP _find requests
    partition_explain_requests number of partition HTTP _explain requests
    partition_all_docs_requests number of partition HTTP _all_docs requests
    partition_view_timeouts number of partition HTTP view timeouts
    partition_find_timeouts number of partition HTTP find timeouts
    partition_explain_timeouts number of partition HTTP _explain timeouts
    partition_all_docs_timeouts number of partition HTTP all_docs timeouts
    temporary_view_reads number of temporary view reads
    view_reads number of view reads
    clients_requesting_changes number of clients for continuous _changes
    purge_requests number of purge requests

    httpd_methods

    Show counters for http request methods. All values are taken from /_node/_local/_stats/couchdb/httpd_request_methods

    check_couchdb -m httpd_methods returns

    OK: Couchdb :: Http request methods
    ____Method____Counter______Delta
          COPY          0          0 per sec
        DELETE          1          0 per sec
           GET     190332          1 per sec
          HEAD          0          0 per sec
       OPTIONS          0          0 per sec
          POST          0          0 per sec
           PUT          0          0 per sec
     |copy=0;; delete=0;; get=1;; head=0;; options=0;; post=0;; put=0;;

    httpd_status_codes

    Show counters per http status code. All values are taken from /_node/_local/_stats/couchdb/httpd_status_codes

    check_couchdb -m httpd_status_codes returns

    OK: Couchdb :: Http status codes
    ____Status____Counter______Delta
           200     199970          1 per sec
           201          0          0 per sec
           202          0          0 per sec
           204          0          0 per sec
           206          0          0 per sec
           301          0          0 per sec
           302          0          0 per sec
           304          0          0 per sec
           400          0          0 per sec
           401          2          0 per sec
           403          0          0 per sec
           404          9          0 per sec
           405          0          0 per sec
           406          0          0 per sec
           409          0          0 per sec
           412          0          0 per sec
           413          0          0 per sec
           414          0          0 per sec
           415          0          0 per sec
           416          0          0 per sec
           417          0          0 per sec
           500          0          0 per sec
           501          0          0 per sec
           503          0          0 per sec
     |http200=1;; http201=0;; http202=0;; http204=0;; http206=0;; http301=0;; http302=0;; http304=0;; http400=0;; http401=0;; http403=0;; http404=0;; http405=0;; http406=0;; http409=0;; http412=0;; http413=0;; http414=0;; http415=0;; http416=0;; http417=0;; http500=0;; http501=0;; http503=0;; 

    open_databases

    Show number of open databases The value is taken from /_node/_local/_stats/couchdb/open_databases

    This check sends performance data.

    check_couchdb -m open_databases returns

    OK: Couchdb :: open_databases = 0
     |opendatabases=0;; 

    open_os_files

    Show number of file descriptors CouchDB has open The value is taken from /_node/_local/_stats/couchdb/open_os_files

    This check sends performance data.

    check_couchdb -m open_os_files returns

    OK: Couchdb :: open_os_files = 0
     |openosfiles=0;; 

    pending

    From url /up it fetches from seeds -> [node] -> pending_updates the values for

    • _nodes
    • _dbs
    • _users

    and summarizes its values.

    It switches to warning if one of the values is > 0.

    This check sends performance data.

    check_couchdb -m pending returns

    OK: Couchdb :: pending updates: 0 (values below 'pending_updates' in /_up)
    Reponse: of /_up
    {
      "status": "ok",
      "seeds": {
        "couchdb@192.168.25.172": {
          "timestamp": "2023-08-28T07:27:54.938619Z",
          "last_replication_status": "ok",
          "pending_updates": {
            "_nodes": 0,
            "_dbs": 0,
            "_users": 0
          }
        },
        "couchdb@192.168.25.61": {}
      }
    }
     |nodes=0;; dbs=0;; users=0;; 

    replication

    From url /up it fetches seeds -> [node] -> last_replication_status. It switches to critical if one of the seeds is not "ok".

    check_couchdb -m replication returns

    OK: Couchdb :: replication (values 'last_replication_status' in /_up are 'ok')
    Reponse: of /_up
    {
      "status": "ok",
      "seeds": {
        "couchdb@192.168.25.172": {
          "timestamp": "2023-08-28T07:27:54.938619Z",
          "last_replication_status": "ok",
          "pending_updates": {
            "_nodes": 0,
            "_dbs": 0,
            "_users": 0
          }
        },
        "couchdb@192.168.25.61": {}
      }
    }

    up

    Simple check if couchdb is up and running.

    From url /up it fetches the value status. It switches to critical if one of the seeds is not "ok".

    check_couchdb -m up returns

    OK: Couchdb :: health status (value 'status' in /_up is 'ok')
    Reponse of /_up: 
    {
      "status": "ok",
      "seeds": {
        "couchdb@192.168.25.172": {
          "timestamp": "2023-08-28T07:27:54.938619Z",
          "last_replication_status": "ok",
          "pending_updates": {
            "_nodes": 0,
            "_dbs": 0,
            "_users": 0
          }
        },
        "couchdb@192.168.25.61": {}
      }
    }