website-monitor is a toolset containing of a front and back application interfering by Apache Kafka allowing to monitor websites content availability storing monitoring data in PostgreSQL backend database.
check_every_seconds_default: 1
log_level: INFO
kafka_connect:
uri: ''
topic: 'website-monitor'
cafile: config/ca.pem
certfile: config/service.cert
keyfile: config/service.key
websites:
- url: https://www.website.com
check_every_seconds: 5
patterns:
- '.*text.*'
target:
postgres_uri: ''
parameter | details |
---|---|
check_every_seconds_default | default polling interval applied for all websites |
log_level | log level, INFO/DEBUG |
kafka_connect | Apache Kafka connection parameters |
kafka_connect.uri | Apache Kafka endpoint URI |
kafka_connect.topic | Apache Kafka topic, will be created automatically if absent |
kafka_connect.{cafile/ certfile/ keyfile} | Apache Kafka credential files location |
websites | list of monitored websites |
websites.url | URL of a website |
websites.check_every_seconds | optional polling interval |
websites.patterns | optional list of regexp patterns to verify website contents |
target | backend PostgreSQL database connection |
target.postgres_uri | PostgreSQL database URI |
python run_monitoring.py --config=config/config.yml
python run_writer.py --config=config/config.yml
Monitoring data is written to PostgreSQL database containing of two tables automatically created in public schema
column | details |
---|---|
id | internal website id, primary key |
url | website url |
column | details |
---|---|
request_time | probe time |
website_id | website id, foreign key to website table |
elapsed | time taken for get request |
http_status_code | http get status code, 999 if request fails |
pattern_match | result of pattern match, null if no pattern defined for a website |