Sobes.tech
Middle+

How would you act if you were handed over server management from another employee, and you needed to describe it in Confluence, but you have no idea what this server is, only access keys?

sobes.tech AI

Answer from AI

Starting with gathering basic information:

  1. Access acquisition: Using provided keys for SSH access to the server.

  2. Determining OS and version:

    // Check distribution and version
    cat /etc/os-release
    // Check kernel version
    uname -a
    
  3. Determining hardware configuration (CPU, RAM, Disk):

    // Processor information
    lscpu
    // RAM information
    free -h
    // Disk devices and partitions information
    lsblk
    df -h
    
  4. Checking running services and processes:

    // Running services
    systemctl list-units --type=service --state=running
    // Running processes
    pstree -p
    
  5. Identifying installed software:

    // For Debian/Ubuntu
    dpkg -l
    // For Red Hat/CentOS
    rpm -qa
    

    Special attention is given to web servers (Apache, Nginx), databases (MySQL, PostgreSQL), message brokers (Kafka, RabbitMQ), container technologies (Docker, Kubernetes), and other specific software.

  6. Analyzing network configuration:

    // IP addresses and network interfaces
    ip a
    // Routing table
    ip r
    // Open ports (locally)
    ss -tulnp
    
  7. Studying log files: Reviewing system logs (/var/log/syslog, /var/log/messages) and application logs to identify potential issues and activities.

  8. Searching for configuration files: Looking for standard locations of configuration files for identified software (e.g., /etc/apache2/, /etc/nginx/, /etc/mysql/).

  9. Determining users and their rights:

    // List of users
    cat /etc/passwd
    // Group membership
    cat /etc/group
    // Sudo rights
    sudo -l
    
  10. Searching for signs of automation/deployment: Looking for scripts in /opt, /usr/local/bin, .bashrc, Cron files (crontab -l, /etc/cron.*). Checking for deployment agents or configuration management systems.

  11. Gathering information about scheduled tasks:

    // Current user tasks
    crontab -l
    // System tasks
    cat /etc/crontab
    

After collecting the information, I structure it in Confluence, describing:

  • Server purpose (assumed based on running software)
  • Operating system and version
  • Hardware resources
  • Key running services and their versions
  • Network configuration (IP addresses, open ports)
  • Installed software (main components)
  • Paths to configuration and log files
  • User data and their rights (without sensitive information)
  • Automation/scripts
  • Scheduled tasks

During documentation, I note any anomalies or ambiguities that require further investigation or consultation (if possible). As my understanding of the server's functionality deepens, the documentation in Confluence will be supplemented and clarified.