Update README.md
This commit is contained in:
114
README.md
114
README.md
@@ -1,2 +1,114 @@
|
||||
# zabbix-tools
|
||||
# Zabbix Automation Scripts
|
||||
|
||||
## Project Overview
|
||||
|
||||
This repository contains a small collection of Python scripts that automate common Zabbix monitoring tasks. Each script performs a single, well‑defined operation:
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `auto-close.py` | Automatically close tickets that meet a specified condition (e.g., resolved, stale). |
|
||||
| `auto-acknowledge.py` | Automatically acknowledge tickets to indicate they are being handled. |
|
||||
| `get_host.py` | Retrieve host information from Zabbix for reporting or further automation. |
|
||||
| `disable_host_by_trigger.py` | Disable a host when a particular trigger fires, helping to isolate problems.
|
||||
|
||||
The scripts are intentionally lightweight and can be run from the command line or scheduled via cron/Task Scheduler.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
* Python 3.9+ (tested on 3.10 and 3.11)
|
||||
* Zabbix API access (URL, user, and password or API token)
|
||||
* The following Python packages:
|
||||
* `requests`
|
||||
* `zabbix-api`
|
||||
|
||||
You can install the dependencies with:
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
If `requirements.txt` is empty, add the packages manually:
|
||||
|
||||
```bash
|
||||
pip install requests zabbix-api
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
All scripts read configuration from environment variables. Create a `.env` file in the repository root or export the variables directly.
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `ZABBIX_URL` | Full URL to the Zabbix API endpoint (e.g., `https://zabbix.example.com/api_jsonrpc.php`). |
|
||||
| `ZABBIX_USER` | Username for Zabbix API authentication. |
|
||||
| `ZABBIX_PASSWORD` | Password for Zabbix API authentication. |
|
||||
| `ZABBIX_TOKEN` | Optional API token; if provided, it overrides user/password. |
|
||||
| `LOG_LEVEL` | Logging level (`DEBUG`, `INFO`, `WARNING`, `ERROR`). Default is `INFO`. |
|
||||
|
||||
Example `.env`:
|
||||
|
||||
```dotenv
|
||||
ZABBIX_URL=https://zabbix.example.com/api_jsonrpc.php
|
||||
ZABBIX_USER=admin
|
||||
ZABBIX_PASSWORD=secret
|
||||
LOG_LEVEL=INFO
|
||||
```
|
||||
|
||||
The scripts use the `python-dotenv` package to load these variables automatically.
|
||||
|
||||
## Usage
|
||||
|
||||
Each script accepts command‑line arguments. Run `python <script> --help` for details.
|
||||
|
||||
### `auto-close.py`
|
||||
|
||||
```bash
|
||||
python auto-close.py --days 7
|
||||
```
|
||||
|
||||
Closes tickets that have been resolved for more than 7 days.
|
||||
|
||||
### `auto-acknowledge.py`
|
||||
|
||||
```bash
|
||||
python auto-acknowledge.py --status new
|
||||
```
|
||||
|
||||
Acknowledges all tickets with status `new`.
|
||||
|
||||
### `get_host.py`
|
||||
|
||||
```bash
|
||||
python get_host.py --host "web-server-01"
|
||||
```
|
||||
|
||||
Prints JSON containing host details.
|
||||
|
||||
### `disable_host_by_trigger.py`
|
||||
|
||||
```bash
|
||||
python disable_host_by_trigger.py --trigger "CPU overload"
|
||||
```
|
||||
|
||||
Disables the host that triggered the specified event.
|
||||
|
||||
## Testing
|
||||
|
||||
The repository currently does not include automated tests. If you add tests, place them in a `tests/` directory and run them with `pytest`.
|
||||
|
||||
## Contributing
|
||||
|
||||
1. Fork the repository.
|
||||
2. Create a feature branch: `git checkout -b feature/your-feature`.
|
||||
3. Commit your changes with a clear message.
|
||||
4. Push the branch and open a pull request.
|
||||
|
||||
Please follow the existing code style and add tests for new functionality.
|
||||
|
||||
## License
|
||||
|
||||
MIT License – see the `LICENSE` file.
|
||||
|
||||
---
|
||||
|
||||
*This README was generated automatically by Claude Code.*
|
||||
|
||||
Reference in New Issue
Block a user