Skip to main content

dnsdist 控制台的 Python 客户端

项目描述

dnsdist 控制台的 Python 客户端

从 Python 与 dnsdist 控制台交互的工具。

powerdns dnsdist 1.6.x powerdns dnsdist 1.7.x 蟒蛇3.8.x 蟒蛇3.9.x 蟒蛇 3.10.x

目录

安装

该模块可以从pypi网站安装

pip install dnsdist_console

生成控制台密钥

您必须将 dnsdist 负载均衡器配置为接受与控制台的远程连接。该模块可用于生成密钥,如下所示。

一行命令

python3 -c "from dnsdist_console import Key;print(Key().generate())"
OTgmgAR6zbrfrYlKgsAAJn+by4faMqI1bVCvzacXMW0=

/etc/dnsdist/dnsdist.conf使用setKey指令将其保存在您的中。

controlSocket('0.0.0.0:5199')
setKey("GQpEpQoIuzA6kzgwDokX9JcXPXFvO1Emg1wAXToJ0ag=")

生成哈希密码

您可以使用此模块为您的 dnsdist 的网络服务器生成哈希。从 1.7.0 开始,密码应该被散列和加盐。

一行命令

python3 -c "from dnsdist_console import HashPassword as H;print(H().generate(\"bonjour\"))"
$scrypt$ln=10,p=1,r=8$SZmi+pjuZ4u7L4jhXIkLww==$VRW7BuYUjSVjkjDIK6J1VB/RWx2s4gbz+YXgflWspf8=

运行命令

使用 dnsdist 的 IP 地址和 TCP 端口以及关联的密钥配置客户端。如果提供的密钥不正确,则会引发异常。

from dnsdist_console import Console

console_ip = "127.0.0.1"
console_port = 5199
console_key = "GQpEpQoIuzA6kzgwDokX9JcXPXFvO1Emg1wAXToJ0ag="

console = Console(host=console_ip,
                  port=console_port, 
                  key=console_key)

有关所有可用命令,请参阅dnsdist 文档

o = console.send_command(cmd="showVersion()")
print(o)
dnsdist 1.4.0

获取统计信息

使用此模块提取有关 dnsdist 负载平衡器的一些统计信息。统计信息存储在 python 字典中。

from dnsdist_console import Statistics

s = Statistics(console=console)
print(s["global"]["queries"])
3993

# get top queries
print(s["top-queries"])
[
    {'entry': 'www.apple.com.', 'hits': '9'},
    {'entry': 'www.facebook.com.', 'hits': '3'},
    {'entry': 'www.microsoft.com.', 'hits': '3'}
]


# get top nx domain
print(s["top-nxdomain"])
[
    {'entry': 'www.nxdomain.com.', 'hits': '1'}
    
]

# get top clients
print(s["top-clients"])
[
    {'entry': '127.0.0.1', 'hits': '21'}
]

显示基本仪表板

您可以使用此客户端从命令行显示 dnsdist 的仪表板。仪表板每秒更新一次。

from dnsdist_console import Dashboard

Dashboard(console=console)

运行您的脚本,您将看到如下所示的内容。

Dashboard for dnsdist

Global:
        Uptime (seconds): 47735
        Number of queries: 0
        Query per second: 0
        ACL drops: 0
        Dynamic drops: 0
        Rule drops: 0
        CPU Usage (%s): 2.8
        Cache hitrate: 0
Backends:
        #0 / 10.0.0.140:53 / -- / dns_others
                Number of queries: 0
                Query per second: 0.0
                Number of drops: 0
        #1 / 10.0.0.55:53 / -- / dns_internal
                Number of queries: 0
                Query per second: 0.0
                Number of drops: 0
        #2 / 8.8.8.8:53 / -- / dns_internet
                Number of queries: 0
                Query per second: 0.0
                Number of drops: 0
        #3 / 1.1.1.1:53 / dns_1 / --
                Number of queries: 0
                Query per second: 0.0
                Number of drops: 0

Ctrl+C to exit

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

dnsdist_console-1.4.1.tar.gz (7.6 kB 查看哈希

已上传 source

内置分布

dnsdist_console-1.4.1-py3-none-any.whl (9.9 kB 查看哈希

已上传 py3