Skip to main content
Glama

Agents Library MCP Server

monitor_logs.sh3.24 kB
#!/usr/bin/env bash ################################################################################ # # Script Name: monitor_logs.sh # ---------------- # Fetches and filters logs from various cloud logging services. # # @author Nicholas Wilde, 0xb299a622 # @date 03 Sep 2025 # @version 0.1.0 # ################################################################################ set -o errexit set -o nounset set -o pipefail # --- Global Variables --- CLOUD_PROVIDER="" APP_NAME="" LOG_GROUP="" START_TIME="" END_TIME="" FILTER_PATTERN="" # --- Functions --- # Function to display script usage usage() { echo "Usage: $0 --cloud-provider <provider> --app-name <name> [--log-group <group>] [--start-time <time>] [--end-time <time>] [--filter <pattern>]" echo " --cloud-provider Cloud provider (e.g., aws, azure, gcp)." echo " --app-name Name of the application or service to monitor logs for." echo " --log-group (Optional) Specific log group or stream to query." echo " --start-time (Optional) Start time for log retrieval (e.g., '2025-09-01T00:00:00Z')." echo " --end-time (Optional) End time for log retrieval." echo " --filter (Optional) Filter pattern for log messages." exit 1 } # Function to parse command-line arguments parse_args() { while [[ "$#" -gt 0 ]]; do case "$1" in --cloud-provider) CLOUD_PROVIDER="$2"; shift ;; --app-name) APP_NAME="$2"; shift ;; --log-group) LOG_GROUP="$2"; shift ;; --start-time) START_TIME="$2"; shift ;; --end-time) END_TIME="$2"; shift ;; --filter) FILTER_PATTERN="$2"; shift ;; -h|--help) usage ;; *) echo "Unknown parameter passed: $1"; usage ;; esac shift done # Validate required arguments if [[ -z "$CLOUD_PROVIDER" || -z "$APP_NAME" ]]; then echo "Error: Missing required arguments." usage fi } # Function to monitor AWS logs monitor_aws_logs() { echo "Monitoring AWS logs for application: $APP_NAME (Log Group: ${LOG_GROUP:-default})..." # Example: aws logs filter-log-events --log-group-name "$LOG_GROUP" --start-time "$START_TIME" --end-time "$END_TIME" --filter-pattern "$FILTER_PATTERN" echo "AWS log monitoring complete." } # Function to monitor Azure logs monitor_azure_logs() { echo "Monitoring Azure logs for application: $APP_NAME (Log Group: ${LOG_GROUP:-default})..." # Example: az monitor log-analytics query --workspace <workspace-id> --analytics-query "..." echo "Azure log monitoring complete." } # Function to monitor GCP logs monitor_gcp_logs() { echo "Monitoring GCP logs for application: $APP_NAME (Log Group: ${LOG_GROUP:-default})..." # Example: gcloud logging read "resource.type=k8s_container AND resource.labels.container_name=$APP_NAME" --format=json echo "GCP log monitoring complete." } # --- Main Logic --- main() { parse_args "$@" echo "Starting log monitoring for $APP_NAME on $CLOUD_PROVIDER." case "$CLOUD_PROVIDER" in aws) monitor_aws_logs ;; azure) monitor_azure_logs ;; gcp) monitor_gcp_logs ;; *) echo "Error: Unsupported cloud provider: $CLOUD_PROVIDER" usage ;; esac echo "Log monitoring script finished." } main "$@"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nicholaswilde/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server