Building a devopsfetch tool for Server Information Retrieval and Monitoring
Udoh Deborah
Posted on July 24, 2024
Overview
DevOpsFetch is a tool designed for DevOps professionals to collect and display system information. It retrieves data such as active ports, user logins, Nginx configurations, Docker images, and container statuses. Additionally, it includes a systemd service to continuously monitor and log these activities.
Features
- Ports: Display all active ports and services or provide detailed information about a specific port.
- Docker: List all Docker images and containers or provide detailed information about a specific container.
- Nginx: Display all Nginx domains and their ports or provide detailed configuration information for a specific domain.
- Users: List all users and their last login times or provide detailed information about a specific user.
- Time Range: Display activities within a specified time range.
Requirements
net-tools
docker.io
nginx
logrotate
Installation
Prerequisites
Ensure your system has the necessary dependencies installed. You can install them using the installation script provided.
Installation Steps
- Clone the repository:
git clone https://github.com/yourusername/devopsfetch.git
cd devopsfetch
- Run the installation script:
chmod +x setup_devopsfetch.sh
sudo ./setup_devopsfetch.sh
This script will:
- Install the required dependencies.
- Copy the main script to
/usr/local/bin
. - Set up and start the systemd service.
- Configure log rotation for the service.
Usage
Command-line Flags
-
-p, --port [port_number]
: Display active ports. If a port number is provided, detailed information about that port is shown. -
-d, --docker [container_name]
: Display Docker information. If a container name is provided, detailed information about that container is shown. -
-n, --nginx [domain]
: Display Nginx information. If a domain is provided, detailed configuration information for that domain is shown. -
-u, --users [username]
: Display user information. If a username is provided, detailed information about that user is shown. -
-t, --time [start] [end]
: Display activities within the specified time range. -
-h, --help
: Display help information.
Examples
Display all active ports
sudo devopsfetch -p
Display information for a specific port
sudo devopsfetch -p 80
List all Docker images and containers
sudo devopsfetch -d
Provide detailed information about a specific Docker container
sudo devopsfetch -d container_name
Display all Nginx domains and their ports
sudo devopsfetch -n
Provide detailed configuration information for a specific Nginx domain
sudo devopsfetch -n example.com
List all users and their last login times
sudo devopsfetch -u
Provide detailed information about a specific user
sudo devopsfetch -u username
Display activities within a specified time range
sudo devopsfetch -t "2024-07-01 00:00:00" "2024-07-01 23:59:59"
Logging
DevOpsFetch logs its activities to /var/log/devopsfetch.log
. Log rotation is configured to manage log files, rotating them daily and retaining logs for 7 days. To view the logs, you can use the following command:
sudo tail -f /var/log/devopsfetch.log
This document provides a comprehensive overview of the DevOpsFetch project, including its features, installation instructions, usage examples, logging mechanism, and contribution guidelines. Adjust the repository URL and any other specific details as necessary.
Posted on July 24, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024