Troubleshooting Guide
Troubleshooting Watchdog
This section provides some troubleshooting tips related to Watchdog.
Initial Checks
-
Check Port Status If you are experiencing issues with the Watchdog server, the first step is to check the status of the port Watchdog is listening on. Follow these steps to troubleshoot:
- Use netstat to Check Port Status
- Check if Watchdog is listening on the port
and bind to 0.0.0.0
-
Logs
- Set the
logleveltoDEBUGinwatchdog.conf(see Certificate Management for where edits to release-tree config files take effect). - Watchdog runtime logs are written to
/opt/watchdog/watchdog_data/logs/watchdog.logregardless ofloglevel.
- Set the
-
Container Status
- List running containers:
- Tail recent output from the Watchdog container:
- Live resource usage:
Docker Troubleshooting
1. Checking Logs
View logs for a specific container:
Examples: -docker logs kafka-connect
- docker logs es
2. Verifying Kafka Connect
Inside the Kafka Connect container:
Then check connector status: A valid Mongo Sink Connector shows:{
"name": "mongo-sink-connector",
"connector": {
"state": "RUNNING",
"worker_id": "connect-worker-1"
},
"tasks": [
{
"id": 0,
"state": "RUNNING",
"worker_id": "connect-worker-1"
}
],
"type": "sink"
}
3. Checking Elasticsearch
If Elasticsearch is running with HTTPS and basic auth:
--k ignores self-signed certificate errors.
- Adjust the user/password as you configured them during installation prompts.
4. Internet Access
Important For the functioning of the Elasticsearch-based URL classification, the following domains must be accessible from the network where your watchdog is deployed.
For ETI:
- ETI API:
eti.eunomatix.com
For UCS (if ucs_updates=true in watchdog.conf):
- UCS API :
ucs.eunomatix.com
Common Issues and Solutions
Server Not Starting
- Review your Watchdog Config. Ensure that you are using compatible version of Watchdog.
- Things that can go wrong in the config file.
MODE:Set the mode to either 'local' or 'cloud' based on your deployment.BMKEY:Provide the Base64-encoded license key.AUTHCODE:Add the Base64-encoded authorization code.BLACKLIST:Mode forwatchdog-blacklist.conf. Must beguidorip. An invalid value will fail Watchdog startup.LOGDIR: Path to your log directory.LOGLEVEL: Set the desired loglevel. Set it toDEBUGif the program doesn't work the intended way.LIMIT: Enable the rate limiting.RATE: Give the rate on which API is accessible.-
ALLOWEDHOSTS: Lists of the Hosts that can access Watchdog. -
WATCHDOG_PORT: Port on which watchdog will be run. CERTFILE: Path to the TLS server certificate (default./cert/server.crt).KEYFILE: Path to the TLS private key (default./cert/server.key).SSLCONFIG: Path tossl-config.iniused byinit-pki.shto generate the shared PKI.
Server Not Behaving As Expected
- Review your SSL certificate is valid and not expired. Check expiry with
sudo openssl x509 -in /opt/watchdog/pki/server.crt -noout -enddate. See Certificate Management to rotate it. - Ensure you are not exceeding the max controllers limit.
Controllers Receiving 403 Unexpectedly
- Check whether the controller's GUID or source IP is listed in
/opt/watchdog/watchdog/watchdog-blacklist.conf. - Confirm the
blacklist=value inwatchdog.confmatches the kind of entries in the blacklist file (guidvsip). Entries that don't parse for the configured mode (e.g. UUIDs whenblacklist=ip) are logged at ERROR level at startup and dropped — grepwatchdog.logforInvalid <mode> entry in blacklist.
Watchdog Won't Start After Upgrade
- If you upgraded from 4.0.x and kept your old
watchdog.conf, the SSL paths will be wrong. Updatecertfile=to./cert/server.crtandkeyfile=to./cert/server.key, or move your existing certs to those names. - The
blacklist=field is now strict: values other thanguidoripcause startup to fail. If you previously hadblacklist=Noneor a CSV file path, change it toguidorip. - See Certificate Management for the new shared PKI layout.
Watchdog Logging
Watchdog and its supporting services generate several log files. Reviewing these logs can help in identifying the issue.
Log File Locations
-
Watchdog Logs
Path:/opt/watchdog/watchdog_data/logs/watchdog.log
Contains all Watchdog runtime messages, including server startup, requests, errors, and configuration-related issues.
Use this log as your primary reference when troubleshooting Watchdog behavior. -
Threat Collector Logs
Path:/opt/watchdog/elasticsearch_data/logs/threat_collector.log
Contains logs generated by the Threat Collector service, which downloads and ingests threat intelligence data into Elasticsearch. -
UCS Client Logs
Path:/opt/watchdog/elasticsearch_data/logs/ucs_client.log
Contains logs for the UCS Client, which handles periodic sync with the UCS API and updates the local Elasticsearch index.
Contacting Support
A small troubleshooter script ships with the release at /opt/watchdog-release/troubleshooting/watchdog_ts.py. It bundles logs, container output, certificate info, and system details into a single zip you can attach to a support ticket.
Run it from anywhere on the VM:
The script uses the Python 3 standard library only — there is nothing to pip install. It produces watchdog_archive.zip in the current working directory. Send this file to support@eunomatix.com along with a description of the issue and the time it occurred.
For non-default paths (e.g., custom log location), see --help for override flags such as --logs-dir, --pki-dir, and --api-url.
What the Archive Contains
The troubleshooter collects operational diagnostics needed to debug the issue:
- Watchdog runtime logs (
/opt/watchdog/watchdog_data/logs/) - Threat collector and UCS client logs if those services are enabled
- Output of
docker ps -a, plusdocker logs --tail 500anddocker inspectfor each Watchdog container that exists - Public TLS certificate details from
/opt/watchdog/pki/server.crt(subject, issuer, validity, full SAN list, public key) - System information (kernel, distribution, glibc version, hostname, IP)
- Listening sockets (
ss -tulpn) - API probe results from
https://localhost:8900(acheck-licenseand aget-licensesrequest)
What is not collected: private keys, the contents of watchdog.conf (and therefore your license key, auth code, or Elasticsearch passwords), and any end-user browser activity payloads.
Note on customer-replaced certificates. If you replaced the bundled certificate with one issued by your own CA (see Certificate Management), the archive will include the public details of that certificate — your CA's distinguished name, the certificate's subject and SAN list (which may include internal hostnames or IP ranges), and the validity dates. The private key is never collected. Review the contents of cert_info.txt inside the archive before sending if your organization treats this metadata as sensitive.