blockmine 1.20.0 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/README.md +469 -0
- package/.claude/agents/auth-route-debugger.md +118 -0
- package/.claude/agents/auth-route-tester.md +93 -0
- package/.claude/agents/auto-error-resolver.md +97 -0
- package/.claude/agents/build-optimizer.md +236 -0
- package/.claude/agents/code-architecture-reviewer.md +83 -0
- package/.claude/agents/code-refactor-master.md +94 -0
- package/.claude/agents/cost-optimizer.md +134 -0
- package/.claude/agents/deployment-orchestrator.md +113 -0
- package/.claude/agents/documentation-architect.md +82 -0
- package/.claude/agents/frontend-error-fixer.md +77 -0
- package/.claude/agents/iac-code-generator.md +71 -0
- package/.claude/agents/incident-responder.md +346 -0
- package/.claude/agents/infrastructure-architect.md +31 -0
- package/.claude/agents/kubernetes-specialist.md +56 -0
- package/.claude/agents/migration-planner.md +181 -0
- package/.claude/agents/network-architect.md +196 -0
- package/.claude/agents/plan-reviewer.md +52 -0
- package/.claude/agents/refactor-planner.md +63 -0
- package/.claude/agents/security-scanner.md +102 -0
- package/.claude/agents/web-research-specialist.md +78 -0
- package/.claude/commands/cost-analysis.md +315 -0
- package/.claude/commands/dev-docs-update.md +55 -0
- package/.claude/commands/dev-docs.md +51 -0
- package/.claude/commands/incident-debug.md +247 -0
- package/.claude/commands/infra-plan.md +81 -0
- package/.claude/commands/migration-plan.md +478 -0
- package/.claude/commands/route-research-for-testing.md +37 -0
- package/.claude/commands/security-review.md +66 -0
- package/.claude/hooks/CONFIG.md +448 -0
- package/.claude/hooks/README.md +163 -0
- package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +226 -0
- package/.claude/hooks/WINDOWS_HOOKS_README.md +151 -0
- package/.claude/hooks/add-skill-activation-banners.ts +132 -0
- package/.claude/hooks/comprehensive-skill-test.ts +1315 -0
- package/.claude/hooks/error-handling-reminder.sh +12 -0
- package/.claude/hooks/error-handling-reminder.ts +222 -0
- package/.claude/hooks/k8s-manifest-validator.sh +56 -0
- package/.claude/hooks/package-lock.json +556 -0
- package/.claude/hooks/package.json +16 -0
- package/.claude/hooks/post-tool-use-tracker.ps1 +174 -0
- package/.claude/hooks/post-tool-use-tracker.sh +183 -0
- package/.claude/hooks/security-policy-check.sh +247 -0
- package/.claude/hooks/skill-activation-prompt.ps1 +10 -0
- package/.claude/hooks/skill-activation-prompt.sh +10 -0
- package/.claude/hooks/skill-activation-prompt.ts +141 -0
- package/.claude/hooks/stop-build-check-enhanced.sh +130 -0
- package/.claude/hooks/terraform-validator.sh +53 -0
- package/.claude/hooks/test-input.json +7 -0
- package/.claude/hooks/test-skill-activation.ts +427 -0
- package/.claude/hooks/trigger-build-resolver.sh +79 -0
- package/.claude/hooks/tsc-check.sh +173 -0
- package/.claude/hooks/tsconfig.json +19 -0
- package/.claude/settings.json +55 -0
- package/.claude/settings.local.json +28 -3
- package/.claude/skills/README.md +507 -0
- package/.claude/skills/api-engineering/SKILL.md +63 -0
- package/.claude/skills/api-engineering/resources/api-versioning.md +88 -0
- package/.claude/skills/api-engineering/resources/graphql-patterns.md +106 -0
- package/.claude/skills/api-engineering/resources/rate-limiting.md +118 -0
- package/.claude/skills/api-engineering/resources/rest-api-design.md +105 -0
- package/.claude/skills/backend-dev-guidelines/SKILL.md +306 -0
- package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +451 -0
- package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +307 -0
- package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +638 -0
- package/.claude/skills/backend-dev-guidelines/resources/configuration.md +275 -0
- package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +224 -0
- package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +213 -0
- package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +756 -0
- package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +336 -0
- package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +789 -0
- package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +235 -0
- package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +754 -0
- package/.claude/skills/budget-and-cost-management/SKILL.md +850 -0
- package/.claude/skills/build-engineering/SKILL.md +431 -0
- package/.claude/skills/build-engineering/resources/artifact-repositories.md +72 -0
- package/.claude/skills/build-engineering/resources/build-caching.md +96 -0
- package/.claude/skills/build-engineering/resources/build-pipelines.md +105 -0
- package/.claude/skills/build-engineering/resources/build-security.md +95 -0
- package/.claude/skills/build-engineering/resources/build-systems.md +389 -0
- package/.claude/skills/build-engineering/resources/compilation-optimization.md +201 -0
- package/.claude/skills/build-engineering/resources/dependency-management.md +73 -0
- package/.claude/skills/build-engineering/resources/monorepo-builds.md +110 -0
- package/.claude/skills/build-engineering/resources/performance-optimization.md +113 -0
- package/.claude/skills/build-engineering/resources/reproducible-builds.md +82 -0
- package/.claude/skills/cloud-engineering/SKILL.md +675 -0
- package/.claude/skills/cloud-engineering/resources/aws-patterns.md +742 -0
- package/.claude/skills/cloud-engineering/resources/azure-patterns.md +714 -0
- package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +987 -0
- package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +757 -0
- package/.claude/skills/cloud-engineering/resources/cloud-networking.md +1058 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +1530 -0
- package/.claude/skills/cloud-engineering/resources/cloud-security.md +990 -0
- package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +758 -0
- package/.claude/skills/cloud-engineering/resources/migration-strategies.md +820 -0
- package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +670 -0
- package/.claude/skills/cloud-engineering/resources/oci-patterns.md +1198 -0
- package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +795 -0
- package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +966 -0
- package/.claude/skills/cybersecurity/SKILL.md +409 -0
- package/.claude/skills/cybersecurity/resources/security-architecture.md +266 -0
- package/.claude/skills/database-engineering/SKILL.md +61 -0
- package/.claude/skills/database-engineering/resources/backup-and-recovery.md +72 -0
- package/.claude/skills/database-engineering/resources/database-replication.md +63 -0
- package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +70 -0
- package/.claude/skills/database-engineering/resources/query-optimization.md +68 -0
- package/.claude/skills/devsecops/SKILL.md +374 -0
- package/.claude/skills/devsecops/resources/ci-cd-security.md +204 -0
- package/.claude/skills/devsecops/resources/compliance-automation.md +530 -0
- package/.claude/skills/devsecops/resources/compliance-frameworks.md +2322 -0
- package/.claude/skills/devsecops/resources/container-security.md +915 -0
- package/.claude/skills/devsecops/resources/cspm-integration.md +1440 -0
- package/.claude/skills/devsecops/resources/policy-enforcement.md +619 -0
- package/.claude/skills/devsecops/resources/secrets-management.md +755 -0
- package/.claude/skills/devsecops/resources/security-monitoring.md +146 -0
- package/.claude/skills/devsecops/resources/security-scanning.md +887 -0
- package/.claude/skills/devsecops/resources/security-testing.md +203 -0
- package/.claude/skills/devsecops/resources/supply-chain-security.md +518 -0
- package/.claude/skills/devsecops/resources/vulnerability-management.md +481 -0
- package/.claude/skills/devsecops/resources/zero-trust-architecture.md +177 -0
- package/.claude/skills/documentation-as-code/SKILL.md +323 -0
- package/.claude/skills/documentation-as-code/resources/api-documentation.md +90 -0
- package/.claude/skills/documentation-as-code/resources/changelog-management.md +79 -0
- package/.claude/skills/documentation-as-code/resources/diagram-generation.md +44 -0
- package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +99 -0
- package/.claude/skills/documentation-as-code/resources/documentation-automation.md +68 -0
- package/.claude/skills/documentation-as-code/resources/documentation-sites.md +79 -0
- package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +162 -0
- package/.claude/skills/documentation-as-code/resources/openapi-specification.md +77 -0
- package/.claude/skills/documentation-as-code/resources/readme-engineering.md +60 -0
- package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +202 -0
- package/.claude/skills/engineering-management/SKILL.md +356 -0
- package/.claude/skills/engineering-management/resources/career-ladders.md +609 -0
- package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +555 -0
- package/.claude/skills/engineering-management/resources/one-on-one-guides.md +609 -0
- package/.claude/skills/engineering-management/resources/resource-planning.md +557 -0
- package/.claude/skills/engineering-management/resources/team-organization-patterns.md +491 -0
- package/.claude/skills/engineering-management/resources/technical-interviews.md +474 -0
- package/.claude/skills/engineering-operations-management/SKILL.md +817 -0
- package/.claude/skills/error-tracking/SKILL.md +379 -0
- package/.claude/skills/frontend-dev-guidelines/SKILL.md +403 -0
- package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +331 -0
- package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +872 -0
- package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +767 -0
- package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +502 -0
- package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +501 -0
- package/.claude/skills/frontend-dev-guidelines/resources/performance.md +406 -0
- package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +364 -0
- package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +428 -0
- package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +418 -0
- package/.claude/skills/general-it-engineering/SKILL.md +393 -0
- package/.claude/skills/general-it-engineering/resources/asset-management.md +712 -0
- package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +817 -0
- package/.claude/skills/general-it-engineering/resources/business-continuity.md +786 -0
- package/.claude/skills/general-it-engineering/resources/change-management.md +715 -0
- package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +729 -0
- package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +738 -0
- package/.claude/skills/general-it-engineering/resources/incident-service-management.md +834 -0
- package/.claude/skills/general-it-engineering/resources/it-governance.md +753 -0
- package/.claude/skills/general-it-engineering/resources/itil-framework.md +503 -0
- package/.claude/skills/general-it-engineering/resources/service-management.md +669 -0
- package/.claude/skills/infrastructure-architecture/SKILL.md +328 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +505 -0
- package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +528 -0
- package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +453 -0
- package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +773 -0
- package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +499 -0
- package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +501 -0
- package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +535 -0
- package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +512 -0
- package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +608 -0
- package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +562 -0
- package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +538 -0
- package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +489 -0
- package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +1000 -0
- package/.claude/skills/infrastructure-strategy/SKILL.md +924 -0
- package/.claude/skills/network-engineering/SKILL.md +385 -0
- package/.claude/skills/network-engineering/resources/dns-management.md +738 -0
- package/.claude/skills/network-engineering/resources/load-balancing.md +820 -0
- package/.claude/skills/network-engineering/resources/network-architecture.md +546 -0
- package/.claude/skills/network-engineering/resources/network-security.md +921 -0
- package/.claude/skills/network-engineering/resources/network-troubleshooting.md +749 -0
- package/.claude/skills/network-engineering/resources/routing-switching.md +373 -0
- package/.claude/skills/network-engineering/resources/sdn-networking.md +695 -0
- package/.claude/skills/network-engineering/resources/service-mesh-networking.md +777 -0
- package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +444 -0
- package/.claude/skills/network-engineering/resources/vpn-connectivity.md +672 -0
- package/.claude/skills/observability-engineering/SKILL.md +101 -0
- package/.claude/skills/observability-engineering/resources/apm-tools.md +97 -0
- package/.claude/skills/observability-engineering/resources/correlation-strategies.md +87 -0
- package/.claude/skills/observability-engineering/resources/distributed-tracing.md +98 -0
- package/.claude/skills/observability-engineering/resources/logs-aggregation.md +118 -0
- package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +141 -0
- package/.claude/skills/observability-engineering/resources/opentelemetry.md +110 -0
- package/.claude/skills/platform-engineering/SKILL.md +555 -0
- package/.claude/skills/platform-engineering/resources/architecture-overview.md +600 -0
- package/.claude/skills/platform-engineering/resources/container-orchestration.md +916 -0
- package/.claude/skills/platform-engineering/resources/cost-optimization.md +634 -0
- package/.claude/skills/platform-engineering/resources/developer-platforms.md +670 -0
- package/.claude/skills/platform-engineering/resources/gitops-automation.md +650 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +778 -0
- package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +708 -0
- package/.claude/skills/platform-engineering/resources/multi-tenancy.md +602 -0
- package/.claude/skills/platform-engineering/resources/platform-security.md +711 -0
- package/.claude/skills/platform-engineering/resources/resource-management.md +592 -0
- package/.claude/skills/platform-engineering/resources/service-mesh.md +628 -0
- package/.claude/skills/release-engineering/SKILL.md +393 -0
- package/.claude/skills/release-engineering/resources/artifact-management.md +108 -0
- package/.claude/skills/release-engineering/resources/build-optimization.md +84 -0
- package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +411 -0
- package/.claude/skills/release-engineering/resources/deployment-strategies.md +197 -0
- package/.claude/skills/release-engineering/resources/pipeline-security.md +62 -0
- package/.claude/skills/release-engineering/resources/progressive-delivery.md +83 -0
- package/.claude/skills/release-engineering/resources/release-automation.md +68 -0
- package/.claude/skills/release-engineering/resources/release-orchestration.md +77 -0
- package/.claude/skills/release-engineering/resources/rollback-strategies.md +66 -0
- package/.claude/skills/release-engineering/resources/versioning-strategies.md +59 -0
- package/.claude/skills/route-tester/SKILL.md +392 -0
- package/.claude/skills/skill-developer/ADVANCED.md +197 -0
- package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +306 -0
- package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +152 -0
- package/.claude/skills/skill-developer/SKILL.md +430 -0
- package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +315 -0
- package/.claude/skills/skill-developer/TRIGGER_TYPES.md +305 -0
- package/.claude/skills/skill-developer/TROUBLESHOOTING.md +514 -0
- package/.claude/skills/skill-rules.json +2940 -0
- package/.claude/skills/sre/SKILL.md +464 -0
- package/.claude/skills/sre/resources/alerting-best-practices.md +282 -0
- package/.claude/skills/sre/resources/capacity-planning.md +226 -0
- package/.claude/skills/sre/resources/chaos-engineering.md +193 -0
- package/.claude/skills/sre/resources/disaster-recovery.md +232 -0
- package/.claude/skills/sre/resources/incident-management.md +436 -0
- package/.claude/skills/sre/resources/observability-stack.md +240 -0
- package/.claude/skills/sre/resources/on-call-runbooks.md +167 -0
- package/.claude/skills/sre/resources/performance-optimization.md +108 -0
- package/.claude/skills/sre/resources/reliability-patterns.md +183 -0
- package/.claude/skills/sre/resources/slo-sli-sla.md +464 -0
- package/.claude/skills/sre/resources/toil-reduction.md +145 -0
- package/.claude/skills/systems-engineering/SKILL.md +648 -0
- package/.claude/skills/systems-engineering/resources/automation-patterns.md +771 -0
- package/.claude/skills/systems-engineering/resources/configuration-management.md +998 -0
- package/.claude/skills/systems-engineering/resources/linux-administration.md +672 -0
- package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +982 -0
- package/.claude/skills/systems-engineering/resources/performance-tuning.md +871 -0
- package/.claude/skills/systems-engineering/resources/powershell-scripting.md +482 -0
- package/.claude/skills/systems-engineering/resources/security-hardening.md +739 -0
- package/.claude/skills/systems-engineering/resources/shell-scripting.md +915 -0
- package/.claude/skills/systems-engineering/resources/storage-management.md +628 -0
- package/.claude/skills/systems-engineering/resources/system-monitoring.md +787 -0
- package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +753 -0
- package/.claude/skills/systems-engineering/resources/windows-administration.md +738 -0
- package/.claude/skills/technical-leadership/SKILL.md +728 -0
- package/CHANGELOG.md +90 -39
- package/README.md +94 -0
- package/backend/docs/SECRETS_DOCUMENTATION.md +327 -0
- package/backend/jest.config.js +59 -0
- package/backend/package-lock.json +6129 -0
- package/backend/package.json +16 -4
- package/backend/prisma/migrations/20251026104609_add_websocket_api/migration.sql +33 -0
- package/backend/prisma/schema.prisma +33 -0
- package/backend/src/__tests__/core/DependencyService.test.js +336 -0
- package/backend/src/__tests__/core/UserService.test.js +875 -0
- package/backend/src/__tests__/repositories/BaseRepository.test.js +146 -0
- package/backend/src/__tests__/repositories/BotRepository.test.js +118 -0
- package/backend/src/__tests__/repositories/CommandRepository.test.js +132 -0
- package/backend/src/__tests__/repositories/EventGraphRepository.test.js +93 -0
- package/backend/src/__tests__/repositories/GroupRepository.test.js +155 -0
- package/backend/src/__tests__/repositories/PermissionRepository.test.js +130 -0
- package/backend/src/__tests__/repositories/PluginRepository.test.js +107 -0
- package/backend/src/__tests__/repositories/ServerRepository.test.js +80 -0
- package/backend/src/__tests__/repositories/UserRepository.test.js +128 -0
- package/backend/src/__tests__/secretsFilter.test.js +425 -0
- package/backend/src/__tests__/services/BotLifecycleService.test.js +411 -0
- package/backend/src/__tests__/services/BotProcessManager.test.js +285 -0
- package/backend/src/__tests__/services/CacheManager.test.js +125 -0
- package/backend/src/__tests__/services/CommandExecutionService.test.js +460 -0
- package/backend/src/__tests__/services/ResourceMonitorService.test.js +207 -0
- package/backend/src/__tests__/services/TelemetryService.test.js +291 -0
- package/backend/src/__tests__/setup.js +25 -0
- package/backend/src/api/routes/apiKeys.js +181 -0
- package/backend/src/api/routes/bots.js +49 -7
- package/backend/src/api/routes/plugins.js +2 -1
- package/backend/src/api/routes/system.js +174 -0
- package/backend/src/container.js +82 -0
- package/backend/src/core/BotManager.js +142 -871
- package/backend/src/core/BotManager.old.js +1093 -0
- package/backend/src/core/BotProcess.js +1092 -850
- package/backend/src/core/BreakLoopSignal.js +8 -0
- package/backend/src/core/EventGraphManager.js +280 -193
- package/backend/src/core/GraphExecutionEngine.js +321 -928
- package/backend/src/core/MessageQueue.js +27 -6
- package/backend/src/core/NodeRegistry.js +37 -991
- package/backend/src/core/PluginManager.js +62 -12
- package/backend/src/core/PrismaService.js +32 -0
- package/backend/src/core/UserService.js +3 -3
- package/backend/src/core/__tests__/PrismaService.test.js +24 -0
- package/backend/src/core/commands/README.md +305 -0
- package/backend/src/core/commands/dev.js +13 -7
- package/backend/src/core/commands/ping.js +10 -4
- package/backend/src/core/commands/whois.js +63 -0
- package/backend/src/core/config/validation.js +27 -0
- package/backend/src/core/constants/graphTypes.js +21 -0
- package/backend/src/core/node-registries/actions.js +132 -0
- package/backend/src/core/node-registries/arrays.js +137 -0
- package/backend/src/core/node-registries/bot.js +23 -0
- package/backend/src/core/node-registries/data.js +290 -0
- package/backend/src/core/node-registries/debug.js +26 -0
- package/backend/src/core/node-registries/events.js +187 -0
- package/backend/src/core/node-registries/flow.js +139 -0
- package/backend/src/core/node-registries/logic.js +45 -0
- package/backend/src/core/node-registries/math.js +42 -0
- package/backend/src/core/node-registries/objects.js +98 -0
- package/backend/src/core/node-registries/strings.js +153 -0
- package/backend/src/core/node-registries/time.js +113 -0
- package/backend/src/core/node-registries/users.js +79 -0
- package/backend/src/core/nodes/actions/bot_look_at.js +36 -0
- package/backend/src/core/nodes/actions/bot_set_variable.js +32 -0
- package/backend/src/core/nodes/actions/http_request.js +98 -0
- package/backend/src/core/nodes/actions/send_log.js +28 -0
- package/backend/src/core/nodes/actions/send_message.js +32 -0
- package/backend/src/core/nodes/actions/send_websocket_response.js +33 -0
- package/backend/src/core/nodes/arrays/add_element.js +23 -0
- package/backend/src/core/nodes/arrays/contains.js +40 -0
- package/backend/src/core/nodes/arrays/find_index.js +23 -0
- package/backend/src/core/nodes/arrays/get_by_index.js +23 -0
- package/backend/src/core/nodes/arrays/get_next.js +35 -0
- package/backend/src/core/nodes/arrays/get_random_element.js +32 -0
- package/backend/src/core/nodes/arrays/remove_by_index.js +30 -0
- package/backend/src/core/nodes/bot/get_position.js +20 -0
- package/backend/src/core/nodes/data/array_literal.js +31 -0
- package/backend/src/core/nodes/data/boolean_literal.js +21 -0
- package/backend/src/core/nodes/data/cast.js +42 -0
- package/backend/src/core/nodes/data/datetime_literal.js +27 -0
- package/backend/src/core/nodes/data/entity_info.js +69 -0
- package/backend/src/core/nodes/data/get_argument.js +23 -0
- package/backend/src/core/nodes/data/get_bot_look.js +14 -0
- package/backend/src/core/nodes/data/get_entity_field.js +18 -0
- package/backend/src/core/nodes/data/get_nearby_entities.js +32 -0
- package/backend/src/core/nodes/data/get_nearby_players.js +64 -0
- package/backend/src/core/nodes/data/get_server_players.js +18 -0
- package/backend/src/core/nodes/data/get_user_field.js +40 -0
- package/backend/src/core/nodes/data/get_variable.js +23 -0
- package/backend/src/core/nodes/data/length.js +25 -0
- package/backend/src/core/nodes/data/make_object.js +31 -0
- package/backend/src/core/nodes/data/number_literal.js +21 -0
- package/backend/src/core/nodes/data/string_literal.js +34 -0
- package/backend/src/core/nodes/data/type_check.js +53 -0
- package/backend/src/core/nodes/debug/log.js +16 -0
- package/backend/src/core/nodes/flow/branch.js +15 -0
- package/backend/src/core/nodes/flow/break.js +14 -0
- package/backend/src/core/nodes/flow/delay.js +43 -0
- package/backend/src/core/nodes/flow/for_each.js +39 -0
- package/backend/src/core/nodes/flow/sequence.js +16 -0
- package/backend/src/core/nodes/flow/switch.js +47 -0
- package/backend/src/core/nodes/flow/while.js +64 -0
- package/backend/src/core/nodes/logic/__tests__/compare.test.js +83 -0
- package/backend/src/core/nodes/logic/compare.js +33 -0
- package/backend/src/core/nodes/logic/operation.js +35 -0
- package/backend/src/core/nodes/math/__tests__/operation.test.js +65 -0
- package/backend/src/core/nodes/math/operation.js +31 -0
- package/backend/src/core/nodes/math/random_number.js +43 -0
- package/backend/src/core/nodes/objects/create.js +40 -0
- package/backend/src/core/nodes/objects/delete.js +26 -0
- package/backend/src/core/nodes/objects/get.js +23 -0
- package/backend/src/core/nodes/objects/has_key.js +30 -0
- package/backend/src/core/nodes/objects/set.js +27 -0
- package/backend/src/core/nodes/strings/__tests__/concat.test.js +89 -0
- package/backend/src/core/nodes/strings/concat.js +27 -0
- package/backend/src/core/nodes/strings/contains.js +41 -0
- package/backend/src/core/nodes/strings/ends_with.js +43 -0
- package/backend/src/core/nodes/strings/equals.js +36 -0
- package/backend/src/core/nodes/strings/length.js +36 -0
- package/backend/src/core/nodes/strings/matches.js +39 -0
- package/backend/src/core/nodes/strings/split.js +37 -0
- package/backend/src/core/nodes/strings/starts_with.js +43 -0
- package/backend/src/core/nodes/time/__tests__/now.test.js +24 -0
- package/backend/src/core/nodes/time/add.js +33 -0
- package/backend/src/core/nodes/time/compare.js +35 -0
- package/backend/src/core/nodes/time/diff.js +29 -0
- package/backend/src/core/nodes/time/format.js +32 -0
- package/backend/src/core/nodes/time/now.js +18 -0
- package/backend/src/core/nodes/users/check_blacklist.js +37 -0
- package/backend/src/core/nodes/users/get_groups.js +36 -0
- package/backend/src/core/nodes/users/get_permissions.js +36 -0
- package/backend/src/core/nodes/users/set_blacklist.js +37 -0
- package/backend/src/core/services/BotLifecycleService.js +596 -0
- package/backend/src/core/services/BotProcessManager.js +163 -0
- package/backend/src/core/services/CacheManager.js +111 -0
- package/backend/src/core/services/CommandExecutionService.js +351 -0
- package/backend/src/core/services/ResourceMonitorService.js +90 -0
- package/backend/src/core/services/TelemetryService.js +124 -0
- package/backend/src/core/services/ValidationService.js +132 -0
- package/backend/src/core/services/__tests__/ValidationService.test.js +148 -0
- package/backend/src/core/services.js +20 -5
- package/backend/src/core/system/CommandContext.js +84 -0
- package/backend/src/core/system/Transport.js +78 -0
- package/backend/src/core/utils/__tests__/jsonParser.test.js +44 -0
- package/backend/src/core/utils/jsonParser.js +18 -0
- package/backend/src/core/utils/secretsFilter.js +262 -0
- package/backend/src/core/utils/variableParser.js +89 -0
- package/backend/src/core/validation/__tests__/nodeSchemas.test.js +175 -0
- package/backend/src/core/validation/nodeSchemas.js +112 -0
- package/backend/src/lib/prisma.js +2 -4
- package/backend/src/real-time/botApi/handlers/commandHandlers.js +28 -0
- package/backend/src/real-time/botApi/handlers/graphHandlers.js +99 -0
- package/backend/src/real-time/botApi/handlers/graphWebSocketHandlers.js +147 -0
- package/backend/src/real-time/botApi/handlers/index.js +43 -0
- package/backend/src/real-time/botApi/handlers/messageHandlers.js +66 -0
- package/backend/src/real-time/botApi/handlers/statusHandlers.js +17 -0
- package/backend/src/real-time/botApi/handlers/userHandlers.js +141 -0
- package/backend/src/real-time/botApi/index.js +40 -0
- package/backend/src/real-time/botApi/middleware.js +79 -0
- package/backend/src/real-time/botApi/utils.js +54 -0
- package/backend/src/real-time/socketHandler.js +6 -2
- package/backend/src/repositories/BaseRepository.js +43 -0
- package/backend/src/repositories/BotRepository.js +42 -0
- package/backend/src/repositories/CommandRepository.js +53 -0
- package/backend/src/repositories/EventGraphRepository.js +40 -0
- package/backend/src/repositories/GroupRepository.js +69 -0
- package/backend/src/repositories/PermissionRepository.js +48 -0
- package/backend/src/repositories/PluginRepository.js +42 -0
- package/backend/src/repositories/ServerRepository.js +27 -0
- package/backend/src/repositories/UserRepository.js +48 -0
- package/backend/src/server.js +3 -0
- package/backend/src/test-refactor.js +85 -0
- package/frontend/dist/assets/index-CfTo92bP.css +1 -0
- package/frontend/dist/assets/index-CiFD5X9Z.js +8344 -0
- package/frontend/dist/index.html +2 -2
- package/frontend/package.json +1 -5
- package/package.json +2 -1
- package/frontend/dist/assets/index-BFd7YoAj.css +0 -1
- package/frontend/dist/assets/index-CMMutadc.js +0 -8352
- package/nul +0 -0
|
@@ -0,0 +1,753 @@
|
|
|
1
|
+
# Troubleshooting Guide
|
|
2
|
+
|
|
3
|
+
Comprehensive troubleshooting methodology and diagnostic techniques for Linux systems covering systematic debugging, diagnostic tools, common issues, and resolution patterns.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Troubleshooting Methodology](#troubleshooting-methodology)
|
|
8
|
+
- [Diagnostic Tools](#diagnostic-tools)
|
|
9
|
+
- [CPU Issues](#cpu-issues)
|
|
10
|
+
- [Memory Problems](#memory-problems)
|
|
11
|
+
- [Disk and I/O Issues](#disk-and-io-issues)
|
|
12
|
+
- [Network Troubleshooting](#network-troubleshooting)
|
|
13
|
+
- [Process Debugging](#process-debugging)
|
|
14
|
+
- [Log Analysis](#log-analysis)
|
|
15
|
+
- [Common Issues](#common-issues)
|
|
16
|
+
|
|
17
|
+
## Troubleshooting Methodology
|
|
18
|
+
|
|
19
|
+
### Systematic Approach
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
1. Define the problem
|
|
23
|
+
- What is not working?
|
|
24
|
+
- When did it start?
|
|
25
|
+
- What changed recently?
|
|
26
|
+
|
|
27
|
+
2. Gather information
|
|
28
|
+
- System logs
|
|
29
|
+
- Performance metrics
|
|
30
|
+
- Error messages
|
|
31
|
+
- Configuration changes
|
|
32
|
+
|
|
33
|
+
3. Identify the scope
|
|
34
|
+
- Single system or multiple?
|
|
35
|
+
- Specific service or system-wide?
|
|
36
|
+
- Intermittent or persistent?
|
|
37
|
+
|
|
38
|
+
4. Form hypothesis
|
|
39
|
+
- Based on symptoms and data
|
|
40
|
+
- Most likely cause first
|
|
41
|
+
|
|
42
|
+
5. Test hypothesis
|
|
43
|
+
- Make one change at a time
|
|
44
|
+
- Document each test
|
|
45
|
+
- Revert if unsuccessful
|
|
46
|
+
|
|
47
|
+
6. Implement solution
|
|
48
|
+
- Apply fix permanently
|
|
49
|
+
- Document resolution
|
|
50
|
+
- Monitor after fix
|
|
51
|
+
|
|
52
|
+
7. Prevent recurrence
|
|
53
|
+
- Root cause analysis
|
|
54
|
+
- Implement monitoring
|
|
55
|
+
- Update runbooks
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### The 5 Whys
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Problem: Web server is down
|
|
62
|
+
|
|
63
|
+
Why? → Process crashed
|
|
64
|
+
Why? → Out of memory
|
|
65
|
+
Why? → Memory leak in application
|
|
66
|
+
Why? → Improper resource cleanup
|
|
67
|
+
Why? → Missing connection pool management
|
|
68
|
+
|
|
69
|
+
Root Cause: Application doesn't close database connections
|
|
70
|
+
Solution: Implement connection pooling and proper cleanup
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Diagnostic Tools
|
|
74
|
+
|
|
75
|
+
### Essential Toolkit
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# System information
|
|
79
|
+
uname -a # Kernel and system info
|
|
80
|
+
hostnamectl # System details
|
|
81
|
+
lsb_release -a # Distribution info
|
|
82
|
+
|
|
83
|
+
# Resource monitoring
|
|
84
|
+
top # Process monitor
|
|
85
|
+
htop # Better process monitor
|
|
86
|
+
vmstat 1 # Virtual memory statistics
|
|
87
|
+
iostat -x 1 # I/O statistics
|
|
88
|
+
mpstat 1 # CPU statistics
|
|
89
|
+
sar # System activity reporter
|
|
90
|
+
|
|
91
|
+
# Network
|
|
92
|
+
ss -tuln # Socket statistics
|
|
93
|
+
netstat -tuln # Network connections (legacy)
|
|
94
|
+
ip addr # IP addresses
|
|
95
|
+
ip route # Routing table
|
|
96
|
+
tcpdump # Packet capture
|
|
97
|
+
traceroute # Trace route to host
|
|
98
|
+
|
|
99
|
+
# Disk
|
|
100
|
+
df -h # Disk usage
|
|
101
|
+
du -sh /* # Directory sizes
|
|
102
|
+
lsblk # Block devices
|
|
103
|
+
fdisk -l # Partition tables
|
|
104
|
+
|
|
105
|
+
# Process
|
|
106
|
+
ps aux # Process list
|
|
107
|
+
pstree # Process tree
|
|
108
|
+
lsof # Open files
|
|
109
|
+
strace # Trace system calls
|
|
110
|
+
pmap # Process memory map
|
|
111
|
+
|
|
112
|
+
# Logs
|
|
113
|
+
journalctl # systemd logs
|
|
114
|
+
dmesg # Kernel messages
|
|
115
|
+
tail -f # Follow log files
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## CPU Issues
|
|
119
|
+
|
|
120
|
+
### High CPU Usage
|
|
121
|
+
|
|
122
|
+
**Diagnosis:**
|
|
123
|
+
```bash
|
|
124
|
+
# Identify high CPU processes
|
|
125
|
+
top -bn1 | head -20
|
|
126
|
+
ps aux --sort=-%cpu | head -10
|
|
127
|
+
|
|
128
|
+
# Per-core CPU usage
|
|
129
|
+
mpstat -P ALL 1 5
|
|
130
|
+
|
|
131
|
+
# CPU usage by user
|
|
132
|
+
ps -eo user,%cpu --sort=-%cpu | awk '{usage[$1]+=$2} END {for(u in usage) print u, usage[u]}'
|
|
133
|
+
|
|
134
|
+
# Check load average
|
|
135
|
+
uptime
|
|
136
|
+
cat /proc/loadavg
|
|
137
|
+
|
|
138
|
+
# Ideal load: Number of CPU cores
|
|
139
|
+
# High load: Investigate what's queued
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
**Investigation:**
|
|
143
|
+
```bash
|
|
144
|
+
# Trace high CPU process
|
|
145
|
+
sudo strace -p <PID> -c # Count syscalls
|
|
146
|
+
sudo strace -p <PID> -tt # Detailed trace with timestamps
|
|
147
|
+
|
|
148
|
+
# Check what files process is using
|
|
149
|
+
lsof -p <PID>
|
|
150
|
+
|
|
151
|
+
# Check process threads
|
|
152
|
+
ps -T -p <PID>
|
|
153
|
+
top -H -p <PID>
|
|
154
|
+
|
|
155
|
+
# Profile with perf
|
|
156
|
+
sudo perf top -p <PID>
|
|
157
|
+
sudo perf record -p <PID> -g -- sleep 30
|
|
158
|
+
sudo perf report
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Solutions:**
|
|
162
|
+
```bash
|
|
163
|
+
# Kill runaway process
|
|
164
|
+
kill <PID>
|
|
165
|
+
kill -9 <PID> # Force kill
|
|
166
|
+
|
|
167
|
+
# Reduce process priority
|
|
168
|
+
renice +10 <PID>
|
|
169
|
+
|
|
170
|
+
# Limit CPU usage with cgroups
|
|
171
|
+
cgcreate -g cpu:/limit
|
|
172
|
+
cgset -r cpu.cfs_quota_us=50000 limit # 50% CPU
|
|
173
|
+
cgexec -g cpu:limit command
|
|
174
|
+
|
|
175
|
+
# Or with systemd
|
|
176
|
+
systemctl set-property myapp.service CPUQuota=50%
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### CPU Wait (I/O Wait)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Check I/O wait
|
|
183
|
+
iostat -x 1 5
|
|
184
|
+
|
|
185
|
+
# If 'wa' (I/O wait) is high, check:
|
|
186
|
+
iotop -oPa # I/O by process
|
|
187
|
+
|
|
188
|
+
# Find processes doing I/O
|
|
189
|
+
pidstat -d 1
|
|
190
|
+
|
|
191
|
+
# Solution: See Disk I/O Issues below
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Memory Problems
|
|
195
|
+
|
|
196
|
+
### Out of Memory (OOM)
|
|
197
|
+
|
|
198
|
+
**Diagnosis:**
|
|
199
|
+
```bash
|
|
200
|
+
# Check memory usage
|
|
201
|
+
free -h
|
|
202
|
+
cat /proc/meminfo
|
|
203
|
+
|
|
204
|
+
# Check swap usage
|
|
205
|
+
swapon --show
|
|
206
|
+
vmstat 1 5
|
|
207
|
+
|
|
208
|
+
# Check OOM killer logs
|
|
209
|
+
dmesg | grep -i "out of memory"
|
|
210
|
+
journalctl -k | grep -i "oom"
|
|
211
|
+
|
|
212
|
+
# Find memory hogs
|
|
213
|
+
ps aux --sort=-%mem | head -10
|
|
214
|
+
|
|
215
|
+
# Per-process memory details
|
|
216
|
+
pmap -x <PID>
|
|
217
|
+
cat /proc/<PID>/status | grep -i mem
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Investigation:**
|
|
221
|
+
```bash
|
|
222
|
+
# Check for memory leaks
|
|
223
|
+
valgrind --leak-check=full ./program
|
|
224
|
+
|
|
225
|
+
# Monitor memory usage over time
|
|
226
|
+
watch -n 1 'free -h'
|
|
227
|
+
|
|
228
|
+
# Check memory usage by user
|
|
229
|
+
ps -eo user,%mem --sort=-%mem | awk '{usage[$1]+=$2} END {for(u in usage) print u, usage[u]}'
|
|
230
|
+
|
|
231
|
+
# Analyze memory allocation
|
|
232
|
+
cat /proc/<PID>/maps
|
|
233
|
+
cat /proc/<PID>/smaps
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
**Solutions:**
|
|
237
|
+
```bash
|
|
238
|
+
# Clear cache (safe)
|
|
239
|
+
sync; echo 3 > /proc/sys/vm/drop_caches
|
|
240
|
+
|
|
241
|
+
# Add more swap
|
|
242
|
+
sudo fallocate -l 4G /swapfile
|
|
243
|
+
sudo chmod 600 /swapfile
|
|
244
|
+
sudo mkswap /swapfile
|
|
245
|
+
sudo swapon /swapfile
|
|
246
|
+
|
|
247
|
+
# Limit process memory (systemd)
|
|
248
|
+
systemctl set-property myapp.service MemoryLimit=1G
|
|
249
|
+
|
|
250
|
+
# Adjust swappiness
|
|
251
|
+
sudo sysctl vm.swappiness=10
|
|
252
|
+
|
|
253
|
+
# Kill memory hog as last resort
|
|
254
|
+
kill <PID>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
### Memory Leaks
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Monitor process memory over time
|
|
261
|
+
while true; do
|
|
262
|
+
ps aux | grep <process> | grep -v grep
|
|
263
|
+
sleep 10
|
|
264
|
+
done
|
|
265
|
+
|
|
266
|
+
# Use valgrind for detailed analysis
|
|
267
|
+
valgrind --leak-check=full \
|
|
268
|
+
--show-leak-kinds=all \
|
|
269
|
+
--track-origins=yes \
|
|
270
|
+
--verbose \
|
|
271
|
+
--log-file=valgrind-out.txt \
|
|
272
|
+
./program
|
|
273
|
+
|
|
274
|
+
# Monitor with top
|
|
275
|
+
top -p <PID>
|
|
276
|
+
# Watch RES (resident memory) increase over time
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## Disk and I/O Issues
|
|
280
|
+
|
|
281
|
+
### Disk Full
|
|
282
|
+
|
|
283
|
+
**Diagnosis:**
|
|
284
|
+
```bash
|
|
285
|
+
# Check disk usage
|
|
286
|
+
df -h
|
|
287
|
+
|
|
288
|
+
# Find large directories
|
|
289
|
+
du -sh /* | sort -h
|
|
290
|
+
du -sh /var/* | sort -h
|
|
291
|
+
|
|
292
|
+
# Find large files
|
|
293
|
+
find / -type f -size +100M -exec ls -lh {} \;
|
|
294
|
+
find / -type f -size +1G 2>/dev/null
|
|
295
|
+
|
|
296
|
+
# Check inode usage
|
|
297
|
+
df -i
|
|
298
|
+
|
|
299
|
+
# Find directories with many files
|
|
300
|
+
find / -xdev -type d -exec sh -c 'echo "{} $(find "{}" -maxdepth 1 | wc -l)"' \; | sort -k2 -rn | head
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Solutions:**
|
|
304
|
+
```bash
|
|
305
|
+
# Clear log files
|
|
306
|
+
sudo truncate -s 0 /var/log/large.log
|
|
307
|
+
|
|
308
|
+
# Remove old log files
|
|
309
|
+
find /var/log -name "*.log" -mtime +30 -delete
|
|
310
|
+
|
|
311
|
+
# Clean package cache
|
|
312
|
+
sudo apt clean
|
|
313
|
+
sudo yum clean all
|
|
314
|
+
|
|
315
|
+
# Remove old kernels (Ubuntu/Debian)
|
|
316
|
+
sudo apt autoremove --purge
|
|
317
|
+
|
|
318
|
+
# Clear systemd journal
|
|
319
|
+
sudo journalctl --vacuum-time=7d
|
|
320
|
+
sudo journalctl --vacuum-size=500M
|
|
321
|
+
|
|
322
|
+
# Find and remove duplicate files
|
|
323
|
+
fdupes -r /path/to/directory
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### High I/O Wait
|
|
327
|
+
|
|
328
|
+
**Diagnosis:**
|
|
329
|
+
```bash
|
|
330
|
+
# Check I/O wait
|
|
331
|
+
iostat -x 1 5
|
|
332
|
+
# Look at %util and await columns
|
|
333
|
+
|
|
334
|
+
# Find I/O intensive processes
|
|
335
|
+
iotop -oPa
|
|
336
|
+
pidstat -d 1
|
|
337
|
+
|
|
338
|
+
# Check disk statistics
|
|
339
|
+
vmstat 1 5
|
|
340
|
+
# Look at bi (blocks in) and bo (blocks out)
|
|
341
|
+
|
|
342
|
+
# Identify slow disk
|
|
343
|
+
iostat -x 1 5
|
|
344
|
+
# High 'await' indicates slow disk
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
**Investigation:**
|
|
348
|
+
```bash
|
|
349
|
+
# Check for failing disk
|
|
350
|
+
sudo smartctl -a /dev/sda
|
|
351
|
+
dmesg | grep -i error
|
|
352
|
+
|
|
353
|
+
# Check disk errors
|
|
354
|
+
cat /sys/block/sda/device/ioerr_cnt
|
|
355
|
+
|
|
356
|
+
# Monitor disk performance
|
|
357
|
+
sudo iotop -oPa
|
|
358
|
+
sudo blktrace /dev/sda
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Solutions:**
|
|
362
|
+
```bash
|
|
363
|
+
# Optimize I/O scheduler
|
|
364
|
+
echo deadline > /sys/block/sda/queue/scheduler
|
|
365
|
+
|
|
366
|
+
# Increase readahead
|
|
367
|
+
sudo blockdev --setra 4096 /dev/sda
|
|
368
|
+
|
|
369
|
+
# Tune filesystem mount options
|
|
370
|
+
# Add to /etc/fstab: noatime,nodiratime
|
|
371
|
+
|
|
372
|
+
# Use faster disk (SSD instead of HDD)
|
|
373
|
+
# Implement RAID for performance
|
|
374
|
+
# Move to cloud storage
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
## Network Troubleshooting
|
|
378
|
+
|
|
379
|
+
### Cannot Connect to Server
|
|
380
|
+
|
|
381
|
+
**Diagnosis:**
|
|
382
|
+
```bash
|
|
383
|
+
# 1. Check if service is running
|
|
384
|
+
systemctl status nginx
|
|
385
|
+
ps aux | grep nginx
|
|
386
|
+
|
|
387
|
+
# 2. Check if port is listening
|
|
388
|
+
ss -tuln | grep :80
|
|
389
|
+
netstat -tuln | grep :80
|
|
390
|
+
|
|
391
|
+
# 3. Check firewall
|
|
392
|
+
sudo iptables -L -n
|
|
393
|
+
sudo ufw status
|
|
394
|
+
|
|
395
|
+
# 4. Test from local
|
|
396
|
+
curl http://localhost:80
|
|
397
|
+
telnet localhost 80
|
|
398
|
+
nc -zv localhost 80
|
|
399
|
+
|
|
400
|
+
# 5. Test from remote
|
|
401
|
+
ping server-ip
|
|
402
|
+
telnet server-ip 80
|
|
403
|
+
nc -zv server-ip 80
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
**Network Connectivity:**
|
|
407
|
+
```bash
|
|
408
|
+
# Ping test
|
|
409
|
+
ping -c 4 8.8.8.8 # Test internet
|
|
410
|
+
ping -c 4 gateway-ip # Test gateway
|
|
411
|
+
ping -c 4 server-ip # Test server
|
|
412
|
+
|
|
413
|
+
# DNS resolution
|
|
414
|
+
nslookup example.com
|
|
415
|
+
dig example.com
|
|
416
|
+
host example.com
|
|
417
|
+
|
|
418
|
+
# Traceroute
|
|
419
|
+
traceroute example.com
|
|
420
|
+
mtr example.com # Better traceroute
|
|
421
|
+
|
|
422
|
+
# Check routing
|
|
423
|
+
ip route show
|
|
424
|
+
route -n
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
**Port and Service:**
|
|
428
|
+
```bash
|
|
429
|
+
# Check if port is open locally
|
|
430
|
+
sudo ss -tuln | grep :80
|
|
431
|
+
|
|
432
|
+
# Check from remote
|
|
433
|
+
nmap -p 80 server-ip
|
|
434
|
+
telnet server-ip 80
|
|
435
|
+
nc -zv server-ip 80
|
|
436
|
+
|
|
437
|
+
# Check listening addresses
|
|
438
|
+
ss -tuln
|
|
439
|
+
# 0.0.0.0:80 = listening on all interfaces
|
|
440
|
+
# 127.0.0.1:80 = only localhost
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
### Network Performance Issues
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
# Test bandwidth
|
|
447
|
+
iperf3 -s # Server
|
|
448
|
+
iperf3 -c server-ip # Client
|
|
449
|
+
|
|
450
|
+
# Check network errors
|
|
451
|
+
ip -s link show eth0
|
|
452
|
+
netstat -i
|
|
453
|
+
|
|
454
|
+
# Monitor connections
|
|
455
|
+
ss -s
|
|
456
|
+
ss -tan
|
|
457
|
+
watch -n 1 'ss -tan | tail -n +2 | awk "{print \$1}" | sort | uniq -c'
|
|
458
|
+
|
|
459
|
+
# Check TCP settings
|
|
460
|
+
sysctl -a | grep tcp
|
|
461
|
+
|
|
462
|
+
# Packet capture
|
|
463
|
+
sudo tcpdump -i eth0 -n port 80
|
|
464
|
+
sudo tcpdump -i eth0 -w capture.pcap
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
## Process Debugging
|
|
468
|
+
|
|
469
|
+
### Process Won't Start
|
|
470
|
+
|
|
471
|
+
**Diagnosis:**
|
|
472
|
+
```bash
|
|
473
|
+
# Check service status
|
|
474
|
+
systemctl status myapp.service
|
|
475
|
+
|
|
476
|
+
# View detailed logs
|
|
477
|
+
journalctl -u myapp.service -n 50
|
|
478
|
+
journalctl -u myapp.service --since "10 minutes ago"
|
|
479
|
+
|
|
480
|
+
# Check service file
|
|
481
|
+
systemctl cat myapp.service
|
|
482
|
+
|
|
483
|
+
# Try manual start
|
|
484
|
+
/usr/bin/myapp --config /etc/myapp/config.yml
|
|
485
|
+
|
|
486
|
+
# Check dependencies
|
|
487
|
+
ldd /usr/bin/myapp
|
|
488
|
+
|
|
489
|
+
# Check permissions
|
|
490
|
+
ls -l /usr/bin/myapp
|
|
491
|
+
namei -l /usr/bin/myapp
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
**Common Causes:**
|
|
495
|
+
```bash
|
|
496
|
+
# 1. Configuration error
|
|
497
|
+
/usr/bin/myapp --test-config
|
|
498
|
+
|
|
499
|
+
# 2. Permission denied
|
|
500
|
+
sudo chmod +x /usr/bin/myapp
|
|
501
|
+
sudo chown myapp:myapp /var/log/myapp
|
|
502
|
+
|
|
503
|
+
# 3. Port already in use
|
|
504
|
+
ss -tuln | grep :8080
|
|
505
|
+
# Kill process using port or change port
|
|
506
|
+
|
|
507
|
+
# 4. Missing dependencies
|
|
508
|
+
ldd /usr/bin/myapp
|
|
509
|
+
# Install missing libraries
|
|
510
|
+
|
|
511
|
+
# 5. Resource limits
|
|
512
|
+
ulimit -a
|
|
513
|
+
# Increase limits if needed
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
### Process Hangs/Freezes
|
|
517
|
+
|
|
518
|
+
```bash
|
|
519
|
+
# Check process state
|
|
520
|
+
ps aux | grep myapp
|
|
521
|
+
# D = uninterruptible sleep (I/O)
|
|
522
|
+
# S = sleeping
|
|
523
|
+
# R = running
|
|
524
|
+
# Z = zombie
|
|
525
|
+
|
|
526
|
+
# Get stack trace
|
|
527
|
+
sudo gdb -p <PID>
|
|
528
|
+
(gdb) thread apply all bt
|
|
529
|
+
(gdb) quit
|
|
530
|
+
|
|
531
|
+
# Trace system calls
|
|
532
|
+
sudo strace -p <PID>
|
|
533
|
+
|
|
534
|
+
# Check what process is waiting on
|
|
535
|
+
cat /proc/<PID>/wchan
|
|
536
|
+
|
|
537
|
+
# Check open files
|
|
538
|
+
lsof -p <PID>
|
|
539
|
+
|
|
540
|
+
# Force core dump (for analysis)
|
|
541
|
+
sudo gcore <PID>
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
### Zombie Processes
|
|
545
|
+
|
|
546
|
+
```bash
|
|
547
|
+
# Find zombie processes
|
|
548
|
+
ps aux | grep defunct
|
|
549
|
+
ps -eo pid,stat,comm | grep Z
|
|
550
|
+
|
|
551
|
+
# Zombies can't be killed directly
|
|
552
|
+
# Must kill parent process
|
|
553
|
+
|
|
554
|
+
# Find parent
|
|
555
|
+
ps -o ppid= -p <zombie-pid>
|
|
556
|
+
|
|
557
|
+
# Kill parent
|
|
558
|
+
kill <parent-pid>
|
|
559
|
+
|
|
560
|
+
# If parent is init (PID 1), reboot is needed
|
|
561
|
+
```
|
|
562
|
+
|
|
563
|
+
## Log Analysis
|
|
564
|
+
|
|
565
|
+
### Finding Issues in Logs
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
# Recent errors
|
|
569
|
+
journalctl -p err --since today
|
|
570
|
+
grep -i error /var/log/syslog | tail -50
|
|
571
|
+
|
|
572
|
+
# Application errors
|
|
573
|
+
journalctl -u myapp.service | grep -i error
|
|
574
|
+
tail -f /var/log/myapp/error.log
|
|
575
|
+
|
|
576
|
+
# Count error types
|
|
577
|
+
grep ERROR /var/log/myapp/app.log | awk '{print $5}' | sort | uniq -c | sort -rn
|
|
578
|
+
|
|
579
|
+
# Find pattern in logs
|
|
580
|
+
grep -r "connection refused" /var/log/
|
|
581
|
+
|
|
582
|
+
# Time-based search
|
|
583
|
+
journalctl --since "2024-01-01 00:00:00" --until "2024-01-01 23:59:59"
|
|
584
|
+
|
|
585
|
+
# Multiple log files
|
|
586
|
+
tail -f /var/log/nginx/*.log
|
|
587
|
+
multitail /var/log/nginx/access.log /var/log/nginx/error.log
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
### Log Correlation
|
|
591
|
+
|
|
592
|
+
```bash
|
|
593
|
+
# Correlate logs by timestamp
|
|
594
|
+
# Script to merge logs by timestamp
|
|
595
|
+
#!/bin/bash
|
|
596
|
+
cat /var/log/app1.log /var/log/app2.log | sort -k1,2
|
|
597
|
+
|
|
598
|
+
# Track request across logs
|
|
599
|
+
request_id="abc123"
|
|
600
|
+
grep -r "$request_id" /var/log/
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
## Common Issues
|
|
604
|
+
|
|
605
|
+
### Issue: System Won't Boot
|
|
606
|
+
|
|
607
|
+
```bash
|
|
608
|
+
# Boot into rescue mode
|
|
609
|
+
# GRUB menu: Advanced options → Recovery mode
|
|
610
|
+
|
|
611
|
+
# Check boot logs
|
|
612
|
+
journalctl -b -1 # Previous boot
|
|
613
|
+
dmesg
|
|
614
|
+
|
|
615
|
+
# Check fstab
|
|
616
|
+
cat /etc/fstab
|
|
617
|
+
# Comment out problematic mounts
|
|
618
|
+
|
|
619
|
+
# Check disk errors
|
|
620
|
+
fsck /dev/sda1
|
|
621
|
+
|
|
622
|
+
# Reinstall GRUB
|
|
623
|
+
grub-install /dev/sda
|
|
624
|
+
update-grub
|
|
625
|
+
```
|
|
626
|
+
|
|
627
|
+
### Issue: SSH Connection Refused
|
|
628
|
+
|
|
629
|
+
```bash
|
|
630
|
+
# Check SSH service
|
|
631
|
+
systemctl status sshd
|
|
632
|
+
journalctl -u sshd
|
|
633
|
+
|
|
634
|
+
# Check port
|
|
635
|
+
ss -tuln | grep :22
|
|
636
|
+
|
|
637
|
+
# Check firewall
|
|
638
|
+
sudo ufw status
|
|
639
|
+
sudo iptables -L INPUT
|
|
640
|
+
|
|
641
|
+
# Test SSH
|
|
642
|
+
ssh -v user@server # Verbose
|
|
643
|
+
|
|
644
|
+
# Check SSH config
|
|
645
|
+
sudo sshd -t # Test config
|
|
646
|
+
cat /etc/ssh/sshd_config
|
|
647
|
+
|
|
648
|
+
# Common fixes:
|
|
649
|
+
sudo systemctl start sshd
|
|
650
|
+
sudo ufw allow 22
|
|
651
|
+
```
|
|
652
|
+
|
|
653
|
+
### Issue: High Load Average
|
|
654
|
+
|
|
655
|
+
```bash
|
|
656
|
+
# Check load
|
|
657
|
+
uptime
|
|
658
|
+
# Load should be ≈ number of CPU cores
|
|
659
|
+
|
|
660
|
+
# If high load:
|
|
661
|
+
# 1. Check CPU usage
|
|
662
|
+
top
|
|
663
|
+
|
|
664
|
+
# 2. Check I/O wait
|
|
665
|
+
iostat -x 1
|
|
666
|
+
|
|
667
|
+
# 3. Check memory
|
|
668
|
+
free -h
|
|
669
|
+
vmstat 1
|
|
670
|
+
|
|
671
|
+
# 4. Find cause
|
|
672
|
+
# High CPU → top, ps
|
|
673
|
+
# High I/O → iotop
|
|
674
|
+
# High memory → free, ps aux --sort=-%mem
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
### Issue: Permission Denied
|
|
678
|
+
|
|
679
|
+
```bash
|
|
680
|
+
# Check file permissions
|
|
681
|
+
ls -l /path/to/file
|
|
682
|
+
|
|
683
|
+
# Check ownership
|
|
684
|
+
ls -l /path/to/file
|
|
685
|
+
|
|
686
|
+
# Check full path
|
|
687
|
+
namei -l /path/to/file
|
|
688
|
+
|
|
689
|
+
# Check SELinux/AppArmor
|
|
690
|
+
getenforce
|
|
691
|
+
sudo setenforce 0 # Temporarily disable to test
|
|
692
|
+
|
|
693
|
+
# Fix permissions
|
|
694
|
+
sudo chmod 644 /path/to/file
|
|
695
|
+
sudo chown user:group /path/to/file
|
|
696
|
+
|
|
697
|
+
# For directories
|
|
698
|
+
sudo chmod -R 755 /path/to/dir
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
### Issue: Time Synchronization
|
|
702
|
+
|
|
703
|
+
```bash
|
|
704
|
+
# Check system time
|
|
705
|
+
date
|
|
706
|
+
timedatectl
|
|
707
|
+
|
|
708
|
+
# Check NTP status
|
|
709
|
+
systemctl status systemd-timesyncd
|
|
710
|
+
timedatectl show-timesync
|
|
711
|
+
|
|
712
|
+
# Sync time manually
|
|
713
|
+
sudo systemctl restart systemd-timesyncd
|
|
714
|
+
|
|
715
|
+
# Or use ntpdate
|
|
716
|
+
sudo ntpdate -u pool.ntp.org
|
|
717
|
+
|
|
718
|
+
# Set timezone
|
|
719
|
+
timedatectl set-timezone America/New_York
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
### Issue: DNS Resolution Failed
|
|
723
|
+
|
|
724
|
+
```bash
|
|
725
|
+
# Test DNS
|
|
726
|
+
nslookup example.com
|
|
727
|
+
dig example.com
|
|
728
|
+
|
|
729
|
+
# Check resolv.conf
|
|
730
|
+
cat /etc/resolv.conf
|
|
731
|
+
|
|
732
|
+
# Check systemd-resolved
|
|
733
|
+
resolvectl status
|
|
734
|
+
|
|
735
|
+
# Flush DNS cache
|
|
736
|
+
sudo systemd-resolve --flush-caches
|
|
737
|
+
# Or
|
|
738
|
+
sudo resolvectl flush-caches
|
|
739
|
+
|
|
740
|
+
# Test with specific DNS
|
|
741
|
+
dig @8.8.8.8 example.com
|
|
742
|
+
|
|
743
|
+
# Fix: Update DNS servers
|
|
744
|
+
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
---
|
|
748
|
+
|
|
749
|
+
**Related Topics:**
|
|
750
|
+
- See [performance-tuning.md](performance-tuning.md) for optimization
|
|
751
|
+
- See [system-monitoring.md](system-monitoring.md) for proactive monitoring
|
|
752
|
+
- See [networking-fundamentals.md](networking-fundamentals.md) for network issues
|
|
753
|
+
- See [linux-administration.md](linux-administration.md) for system management
|