Lecture 6
Lecture 6
Software Administration
Lecture notes
ASTU, 2024 1
Adama, Ethiopia
CHAPTER OUTLINES
2
SYSTEM LOGS, UPDATES, PATCHES, AND CONFIGURATION CHANGES, BACKUPS.
System logs, updates, patches, and configuration changes, and backups, are crucial
components of software administration during maintenance and evolution.
System logs: record important events, activities, and errors that occur within a software
system.
They serve as a valuable source of information for troubleshooting issues, identifying
errors, and monitoring system behavior.
Software administrators should regularly review and analyze system logs to gain insights
into the system's performance, diagnose problems, and take appropriate actions to
address them.
3
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Updates and patches: Updates and patches are essential for maintaining the
security, stability, and functionality of a software system.
Updates often include bug fixes, performance improvements, and new features.
Patches specifically focus on addressing security vulnerabilities.
Software administrators should stay updated with the latest updates and
patches provided by software vendors or open-source communities and ensure
they are promptly applied to the system to mitigate potential risks and keep the
software up-to-date.
4
SYSTEM LOGS, UPDATES, PATCHES, AND CONFIGURATION CHANGES, BACKUPS..
Configuration changes: involve modifying the settings and parameters of a software
system to adapt it to evolving requirements or optimize its performance.
Software administrators should carefully manage configuration changes, documenting them
appropriately and maintaining a version history.
It is important to ensure that changes are tested thoroughly, and their impact on the system is
assessed before deploying them to production environments.
Backups: are essential for data protection and disaster recovery.
It involve creating copies of critical system data and storing them securely in separate
locations.
Regular backups enable software administrators to restore the system to a previous state in
case of data loss, system failures, or security breaches.
It is important to establish backup schedules, automate the backup process where possible,
and periodically validate the integrity and recoverability of the backup data. 5
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Automating the process of system backups can help ensure that they are performed regularly
and reliably.
• Here are some steps you can take to automate the backup process:
Define backup requirements: Start by determining what data and system components need
to be backed up.
• Identify critical files, databases, configurations, and any other important assets that should
be part of the backup process.
6
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Choose a backup solution: Select a backup solution that meets your requirements.
• There are various options available, including cloud-based backup services, backup
software, or built-in backup utilities provided by the operating system or database
management system.
• Consider factors such as scalability, compatibility, ease of use, and security when choosing a
solution.
Establish a backup schedule: Define a backup schedule that suits your needs.
• Determine the frequency of backups based on the rate of data changes, importance of the
data, and available resources.
• Common backup schedules include daily, weekly, or monthly backups.
• Ensure that the schedule allows sufficient time for backup completion.
7
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Automate backup execution: Set up automation scripts or tools to initiate and manage the
backup process.
• Depending on the chosen backup solution, there may be built-in automation features or APIs
available for integration.
• Use these capabilities to schedule and trigger backups automatically at the defined intervals.
Include error handling and notifications: Implement error handling mechanisms and
notifications to ensure the reliability of the backup process.
• Configure the backup automation script to identify and handle any errors or failures that may
occur during the backup process.
• Set up notifications to alert you of any backup failures or issues, enabling you to take
immediate action. 8
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Monitor backup status: Regularly monitor the status of backup operations to ensure they
are running as expected.
• Keep track of successful backups, failed backups, and any warnings or errors.
• This monitoring can be done manually or by leveraging monitoring tools or dashboards
provided by the backup solution.
Test backup recovery: Periodically test the backup recovery process to verify the integrity
and reliability of the backup data.
• Perform test restores to ensure that backups can be successfully restored and that the data is
accessible and usable.
• Regular testing helps identify any potential issues or gaps in the backup process.
9
SYSTEM LOGS, UPDATES, PATCHES, AND
CONFIGURATION CHANGES, BACKUPS..
Secure backup storage: Ensure that the backup data is securely stored in a separate
location from the production system.
• Consider encrypting the backup data to protect it from unauthorized access.
• If using cloud-based backup services, review their security measures and ensure they align
with your requirements.
Document the backup process: Maintain clear documentation of the backup process,
including the automation scripts, schedules, and any configurations or customizations.
• This documentation serves as a reference for future administrators and helps ensure
consistency in the backup process.
10
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
The process of installing and configuring hardware and software involves setting up and
managing the necessary components to support the software system.
Here's an overview of how this process typically unfolds in software administration:
Hardware installation: Software administrators may be responsible for installing hardware
components that are essential for the software system to operate effectively.
• This can include servers, network devices, storage systems, and other infrastructure
elements.
• The installation process involves physically setting up the hardware, connecting cables and
peripherals, and ensuring proper power supply and cooling.
11
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
Operating system installation: Software administrators are often involved in installing and
configuring the operating system (OS) that will serve as the foundation for running the
software system.
They typically follow the OS vendor's installation instructions, which may involve booting
from installation media, partitioning disks, selecting installation options, and providing
necessary settings such as time zones, network configurations, and administrative accounts.
Dependency installation: Software systems often have dependencies on additional software
components, libraries, or frameworks.
• This may involve installing database management systems, web servers, application servers,
programming language runtimes, or other required software components.
12
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
13
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
14
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
Integration with other systems: it involve setting up communication protocols, establishing
data exchange formats, configuring APIs or web services, or implementing authentication and
authorization mechanisms.
Testing and validation: Once the hardware and software components are installed and
configured, software administrators perform testing and validation to ensure that the system
functions as intended.
• It includes conducting functional tests, performance tests, security assessments, and verifying
system behavior against defined requirements.
Ongoing maintenance and updates: Software administrators are responsible for managing
ongoing maintenance tasks, such as applying software updates, security patches, and bug
fixes.
• They also monitor system performance, troubleshoot issues, and ensure system availability
and reliability over time. 15
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
17
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
18
INSTALLING AND CONFIGURING HARDWARE AND SOFTWARE
21
SYSTEM PERFORMANCE TUNING
• Optimize disk I/O performance by using techniques such as RAID configurations, disk
partitioning, optimizing file system parameters, and utilizing solid-state drives (SSDs) or
disk caching mechanisms.
• Use tools like iotop to monitor disk I/O activity and identify any processes causing excessive
disk I/O.
4. Memory Management:
• Monitor CPU utilization and identify processes consuming high CPU resources.
• Use tools like top or htop to identify CPU-intensive processes.
• Consider optimizing CPU-bound processes by parallelizing computations, optimizing
algorithms, or distributing workloads across multiple CPUs or cores.
6. Network Optimization:
• Optimize network performance by tuning network settings, adjusting buffer sizes, and
optimizing network protocols.
• Identify and resolve network bottlenecks, such as congested network interfaces or
misconfigured network devices.
24
SYSTEM PERFORMANCE TUNING…
7. Application-Level Optimization:
• Keep the system up to date with the latest software updates, security patches, and bug
fixes.
• Regularly clean up unnecessary files, logs, and temporary data to free up disk space and
improve overall system performance.
25
SYSTEM PERFORMANCE TUNING…
Tools and utilities available for monitoring system resources in various operating systems.
1. top/htop: top and htop are command-line utilities available in many Unix-based systems.
• provide real-time monitoring of system resource usage, including CPU, memory, and
process information.
• allow sorting processes based on different criteria such as CPU usage or memory usage.
2. vmstat: vmstat is a command-line utility that provides detailed information about system
virtual memory, CPU usage, disk I/O, and other system statistics.
• It can be used to monitor overall system performance and identify bottlenecks.
3. iostat: iostat is a command-line utility that provides disk I/O statistics, including disk
utilization, throughput, and average response time.
26
SYSTEM PERFORMANCE TUNING…
4. sar: sar (System Activity Reporter) is a command-line utility that collects and reports system
activity and resource usage over time.
• It provides a wealth of information, including CPU utilization, memory usage, disk I/O, and
network activity.
• It can generate reports and help analyze system performance trends.
5. nmon: nmon is a command-line monitoring tool available for various Unix-based systems.
It provides a comprehensive view of system resources, including CPU, memory, disk I/O, network,
and more.
• It displays real-time data in a user-friendly format and can generate reports for further analysis.
6. Windows Task Manager: Task Manager is a built-in utility in Windows operating systems.
• It provides real-time monitoring of CPU, memory, disk usage, and network activity.
27
SYSTEM PERFORMANCE TUNING…
28
PERFORMING ROUTINE AUDITS OF SYSTEMS AND SOFTWARE.
Performing routine audits of systems and software is an important practice to ensure the
security, stability, and compliance of your IT infrastructure.
• Steps you can follow to conduct routine audits:
• Define Audit Objectives: Determine the goals and scope of the audit. Identify the
systems, software, and areas of focus that need to be audited.
• Common areas include security controls, access management, configuration settings,
software versions, and compliance requirements.
Establish Audit Criteria: Define the criteria against which you will evaluate the systems
and software.
• This includes industry best practices, security standards (e.g., ISO 27001), regulatory
requirements (e.g., General data protection regulation (GDPR), Health Insurance
Portability and Accountability Act (HIPAA)), and internal policies and procedures.
29
PERFORMING ROUTINE AUDITS OF SYSTEMS AND SOFTWARE.
Perform Security Assessments: Conduct vulnerability assessments and penetration testing
to identify security weaknesses in systems and software.
• Use automated tools and manual techniques to assess vulnerabilities, misconfigurations, and
potential entry points for unauthorized access.
Review Access Controls: Evaluate user access controls and permissions for systems and
software.
• Ensure that access rights are granted based on the principle of least privilege, and regularly
review and remove unnecessary or outdated user accounts.
Check Configuration Settings: Review system and software configuration settings to
ensure they align with security best practices and compliance requirements.
• Check for default or weak configurations, unauthorized changes, and potential
vulnerabilities. 30
PERFORMING ROUTINE AUDITS OF SYSTEMS AND SOFTWARE.
Assess Patch Management: Evaluate the patch management process for systems and
software.
• Verify that critical security patches and updates are being applied in a timely manner to
mitigate known vulnerabilities.
Review Logs and Monitoring: Analyze system logs, event logs, and security monitoring
data to identify any suspicious activities or security incidents.
• Ensure that appropriate logging and monitoring mechanisms are in place and are
functioning effectively.
Evaluate Backup and Disaster Recovery: Assess backup procedures and disaster recovery
plans for systems and software.
• Verify that regular backups are performed, test the restoration process, and ensure the
backups are securely stored.
31
PERFORMING ROUTINE AUDITS OF SYSTEMS AND SOFTWARE.
Check Compliance Requirements: Review systems and software against applicable
compliance requirements such as GDPR, HIPAA, PCI DSS, or industry-specific regulations.
• Ensure that data handling, privacy, and security practices are in line with the required
standards.
Document Findings and Remediate: Document the audit findings, including identified
vulnerabilities, issues, and areas for improvement.
• Develop a remediation plan to address the identified issues and implement necessary
changes or fixes.
Follow-Up and Periodic Audits: Monitor the progress of remediation efforts and perform
periodic audits to ensure that the identified issues are resolved and that systems and software
remain secure and compliant over time.
32
HOW OFTEN SHOULD ORGANIZATIONS CONDUCT ROUTINE AUDITS?
The frequency of routine audits for systems and software can vary depending on factors such as
the size and complexity of the organization, industry regulations, and the level of risk associated
with the systems.
General guidelines for conducting routine audits:
Regular Intervals: Conducting audits at regular intervals helps ensure ongoing monitoring and
security of systems and software.
• Quarterly or bi-annual audits are common frequencies for many organizations.
• This allows for timely identification of vulnerabilities and compliance gaps.
Significant Changes: Perform audits when significant changes occur in the IT infrastructure.
34
HOW OFTEN SHOULD ORGANIZATIONS CONDUCT ROUTINE AUDITS?
35
Discussion..
36