mirror of
				https://github.com/nttgin/BGPalerter.git
				synced 2024-05-19 06:50:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Process monitoring
 | 
						|
 | 
						|
Since version 1.22.0 it is possible to monitor the status of the BGPalerter process.
 | 
						|
 | 
						|
There are various approaches for monitoring the status of BGPalerter, each implemented in a specific module. 
 | 
						|
You can declare the modules you want to load/enable in `config.yml`, as follows:
 | 
						|
 | 
						|
```yaml
 | 
						|
processMonitors:
 | 
						|
  - file: uptimeApi
 | 
						|
    params:
 | 
						|
      useStatusCodes: true
 | 
						|
      host: null
 | 
						|
      port: 8011
 | 
						|
 | 
						|
  - file: uptimeHealthcheck
 | 
						|
    params:
 | 
						|
      url: url_to_poll
 | 
						|
      intervalSeconds: 300
 | 
						|
      method: get
 | 
						|
 | 
						|
  - file: sentryModule
 | 
						|
    params:
 | 
						|
      dsn: https://<key>@sentry.io/<project>
 | 
						|
```
 | 
						|
 | 
						|
 | 
						|
## uptimeApi
 | 
						|
 | 
						|
The uptimeApi module enables an API to retrieve the current status of BGPalerter.
 | 
						|
 | 
						|
By default the API is reachable at `http://localhost:8011/status` and provides a summary of the status of various components of BGPalerter. If any of the components is having a problem, the attribute `warning` is set to true.
 | 
						|
 | 
						|
The following is an example of the API output.
 | 
						|
 | 
						|
```
 | 
						|
{
 | 
						|
    "warning": false,
 | 
						|
    "connectors": [
 | 
						|
            {
 | 
						|
                "name": "ConnectorRIS",
 | 
						|
                "connected": true
 | 
						|
            }
 | 
						|
        ]
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
In `config.yml` the uptimeApi is declared as:
 | 
						|
 | 
						|
```yaml
 | 
						|
processMonitors:
 | 
						|
 | 
						|
  - file: uptimeApi
 | 
						|
    params:
 | 
						|
      useStatusCodes: true
 | 
						|
      host: null
 | 
						|
      port: 8011
 | 
						|
```
 | 
						|
 | 
						|
When the uptimeApi block is commented/deleted from the config file, no extra dependencies are loaded and no open port is required. 
 | 
						|
 | 
						|
The API, in addition to the JSON answer, can use HTTP status codes for an easier integration with Nagios and similar.
 | 
						|
 | 
						|
Parameters for this module are:
 | 
						|
 | 
						|
|Parameter| Description| 
 | 
						|
|---|---|
 | 
						|
|useStatusCodes| A boolean that if set to true enables HTTP status codes in the response. Nothing changes in the JSON output provided by the API. | 
 | 
						|
|host| The IP address on which the API will be reachable. If `null` or missing, the API will be reachable on all the addresses of the machine.| 
 | 
						|
|port| The port on which the API will be reachable. | 
 | 
						|
 | 
						|
 | 
						|
## uptimeHealthcheck
 | 
						|
 | 
						|
The uptimeHealthcheck module is a component that will start polling a provided URL at a regular interval.
 | 
						|
 | 
						|
This can be used to send a heartbeat signal to a monitoring system (e.g., https://healthchecks.io/).
 | 
						|
If there is any warning about any component activated in BGPalerter, the heartbeat will not be issued (independently from the fact that the process is still running).
 | 
						|
 | 
						|
 | 
						|
In `config.yml` the uptimeHealthcheck is declared as:
 | 
						|
 | 
						|
```yaml
 | 
						|
processMonitors:
 | 
						|
 | 
						|
  - file: uptimeHealthcheck
 | 
						|
    params:
 | 
						|
      url: url_to_poll
 | 
						|
      intervalSeconds: 300
 | 
						|
      method: get
 | 
						|
```
 | 
						|
 | 
						|
If the `method` parameter is set to `post`, the body of the request will contain a detailed status of BGPalerter.
 | 
						|
The status is reported in the same JSON format described for the uptimeApi module.
 | 
						|
 | 
						|
Parameters for this module are:
 | 
						|
 | 
						|
|Parameter| Description| 
 | 
						|
|---|---|
 | 
						|
|url| The URL to be polled periodically. | 
 | 
						|
|intervalSecond| The interval (in seconds) between HTTP requests. | 
 | 
						|
|method| The method used for the HTTP request. It can be `get` or `post`. | 
 | 
						|
 | 
						|
 | 
						|
## sentryModule
 | 
						|
 | 
						|
The sentryModule is a component that allows the monitoring of the BGPalerter process for runtime exceptions. 
 | 
						|
Useful especially for testing new experimental modules.
 | 
						|
 | 
						|
To enable this feature, create a new project on your Sentry server and grab the generated DSN.
 | 
						|
 | 
						|
In `config.yml` the sentryModule is declared as:
 | 
						|
 | 
						|
```yaml
 | 
						|
processMonitors:
 | 
						|
 | 
						|
  - file: sentryModule
 | 
						|
    params:
 | 
						|
      dsn: https://<key>@sentry.io/<project>
 | 
						|
```
 | 
						|
 | 
						|
Parameters for this module are:
 | 
						|
 | 
						|
|Parameter| Description| 
 | 
						|
|---|---|
 | 
						|
|dsn| The DSN where the logs will be sent. | 
 |