将 python 创建的 Json 文件发送到 Splunk 进行可视化

问题描述 投票:0回答:0

您好,我正在尝试在 Splunk 中可视化对 GitHub 存储库的依赖关系。我创建了一个脚本,用于从 github 收集给定用户名的依赖项,但是我总是无法将该 json 文件或数据推送到 splunk。在这方面我需要帮助。下面是我的代码和错误

enter image description here enter image description here

我尝试按照教程设置 HEC,但它仍然不起作用。enter image description here enter image description here

import requests

# Splunk configuration (replace with your own values)
SPLUNK_URL = "https://LOKESHAGNIHOTRI:8088/services/collector/event"
SPLUNK_TOKEN = "82af2f39-06c4-468f-825c-32f67e499d49"

# GitHub API endpoints
REPO_API_ENDPOINT = "https://api.github.com/users/{user}/repos"
DEPENDENCIES_API_ENDPOINT = "https://api.github.com/repos/{owner}/{repo}/dependency_graph"

# GitHub authentication credentials (replace with your own values)
auth = ("LokeshAgnihotri", "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")

# GitHub user information
user = "LokeshAgnihotri"

def get_dependencies(owner, repo):
    """
    Recursively retrieves the full dependency tree for a given repository.
    """
    # Make API request to get list of dependencies for the repository
    dependencies_api_url = DEPENDENCIES_API_ENDPOINT.format(owner=owner, repo=repo)
    response = requests.get(dependencies_api_url, auth=auth, verify=True)

    if response.status_code == 200:
        # Extract dependencies from API response
        dependencies = []
        for package in response.json()["dependencies"]:
            dependencies.append({
                "name": package["package"]["name"],
                "version": package["package"]["version"],
                "type": package["package"]["type"],
                "url": package["package"]["repository"]["url"],
                "dependencies": get_dependencies(package["package"]["repository"]["owner"]["login"], package["package"]["repository"]["name"])
            })

        return dependencies
    else:
        print("Error getting repository dependencies: ", response.status_code)
        return []

# Make API request to get list of repositories for the user
repo_api_url = REPO_API_ENDPOINT.format(user=user)
response = requests.get(repo_api_url, auth=auth, verify=False)

if response.status_code == 200:
    # Create empty list to store all dependencies
    all_dependencies = []

    # Iterate through each repository
    for repo in response.json():
        print("Processing repository: ", repo["name"])

        # Get full dependency tree for the repository
        dependencies = get_dependencies(repo["owner"]["login"], repo["name"])

        # Add dependencies to the list
        if dependencies:
            all_dependencies.extend(dependencies)

    # Convert list of dependencies to JSON
    dependencies_json = json.dumps(all_dependencies)

    # Send JSON to Splunk
    headers = {"Authorization": f"Splunk {SPLUNK_TOKEN}"}
    data = {"event": dependencies_json}
    response = requests.post(SPLUNK_URL, headers=headers, json=data, verify=False)

    if response.status_code == 200:
        print("JSON sent to Splunk successfully!")
    else:
        print("Error sending JSON to Splunk: ", response.status_code)

else:
    print("Error getting repositories for user: ", response.status_code)
python splunk splunk-query splunk-dashboard
© www.soinside.com 2019 - 2024. All rights reserved.