change: added legacy scripts for working with 5.0 and lower
This commit is contained in:
72
config-mover/get_host_ids_legacy.py
Normal file
72
config-mover/get_host_ids_legacy.py
Normal file
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Legacy ID Retriever
|
||||
===============================
|
||||
Uses username/password authentication instead of tokens.
|
||||
Note: This script is designed for Zabbix 5.0 and older versions!
|
||||
Please do not use with Zabbix 6.0 and newer! Use token-based get_host_ids.py instead.
|
||||
"""
|
||||
|
||||
import os
|
||||
from datetime import datetime
|
||||
from zabbix_utils import ZabbixAPI
|
||||
|
||||
# Configuration from environment variables
|
||||
ZABBIX_URL = os.environ.get("ZABBIX_URL", "http://localhost/api_jsonrpc.php")
|
||||
ZABBIX_USER = os.environ.get("ZABBIX_USER")
|
||||
ZABBIX_PASSWORD = os.environ.get("ZABBIX_PASSWORD")
|
||||
|
||||
|
||||
def main():
|
||||
# Check required environment variables
|
||||
if not ZABBIX_USER or not ZABBIX_PASSWORD:
|
||||
print("Error: ZABBIX_USER and ZABBIX_PASSWORD environment variables must be set")
|
||||
return
|
||||
|
||||
# Connect to Zabbix using username/password
|
||||
try:
|
||||
zapi = ZabbixAPI(url=ZABBIX_URL)
|
||||
zapi.login(user=ZABBIX_USER, password=ZABBIX_PASSWORD)
|
||||
print(f"Connected to Zabbix at {ZABBIX_URL}")
|
||||
print(f"Authenticated as user: {ZABBIX_USER}")
|
||||
except Exception as e:
|
||||
print(f"Failed to connect to Zabbix: {e}")
|
||||
return
|
||||
|
||||
# Get all host IDs
|
||||
try:
|
||||
hosts = zapi.host.get(output=['hostid', 'host'])
|
||||
|
||||
if not hosts:
|
||||
print("No hosts found")
|
||||
return
|
||||
|
||||
# Extract host IDs
|
||||
host_ids = [host['hostid'] for host in hosts]
|
||||
host_ids.sort(key=int) # Sort numerically
|
||||
|
||||
print(f"Found {len(host_ids)} hosts")
|
||||
|
||||
# Generate filename with current date
|
||||
current_date = datetime.now().strftime("%Y%m%d")
|
||||
filename = f"{current_date}_host_ids_legacy.txt"
|
||||
|
||||
# Write host IDs to file (comma-separated on single line)
|
||||
with open(filename, 'w') as f:
|
||||
f.write(','.join(host_ids))
|
||||
|
||||
print(f"Host IDs saved to: {filename}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error retrieving host IDs: {e}")
|
||||
|
||||
finally:
|
||||
# Logout from Zabbix
|
||||
try:
|
||||
zapi.logout()
|
||||
print("Logged out from Zabbix")
|
||||
except:
|
||||
pass # Ignore logout errors
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user