跨region的智能DNS解决方案(三)-监控

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 项目背景:考虑到高可靠等诸多问题,在公有云或私有云上可能有两地三中心等多种架构模式。需求在不同地区的实例节点如何通过相同域名解析到本地的A记录或者云产品的CNAME,并实现高可靠。本文通过named服务实现上述功能。

部署

本文继续介绍named的监控部署工作,部署named所需的监控exporter需要一些前置条件:

/opt/soft/named/sbin/named -V|grep libxml2
built by make with '--prefix=/opt/soft/named' '--sbindir=/opt/soft/named/sbin/' '--bindir=/opt/soft/named/bin/' 'CFLAGS=-g -fPIC' '--enable-threads' '--with-openssl=yes' '--with-libjson=no' '--with-libxml2=yes'
compiled with libxml2 version: 2.9.1
linked to libxml2 version: 20901
  • 安装go语言
yum install golang -y
  • 安装bind_exporter
go get github.com/digitalocean/bind_exporter
cd $GOPATH/src/github.com/digitalocean/bind_exporter
# 如果go get 不成功,建议通过git clone把源码down到本地,然后通过go build 直接编译。
  • 安装Prometheus Server grafana dashborad

简易安装 本文通过docker-compose 直接安装promethues以及grafana
git地址:https://github.com/vegasbrianc/prometheus
下文所需编辑的promethues.yaml所在路径为项目当前目录下
/root/prometheus/prometheus/prometheus.yml

设置 BIND DNS server

echo >> /etc/named/named.conf << EOF
statistics-channels {
  inet 127.0.0.1 port 8053 allow { 127.0.0.1; };
};
EOF

创建Bind Exported systemd 服务

sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

echo >> /etc/systemd/system/bind_exporter.service << EOF
[Unit]
Description=Prometheus
Documentation=https://github.com/digitalocean/bind_exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/bind_exporter \
  --bind.pid-file=/var/run/named/named.pid \
  --bind.timeout=20s \
  --web.listen-address=0.0.0.0:9153 \
  --web.telemetry-path=/metrics \
  --bind.stats-url=http://localhost:8053/ \
  --bind.stats-groups=server,view,tasks

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
EOF

启动服务

sudo systemctl daemon-reload
sudo systemctl restart bind_exporter.service

调试启动

./bind_exporter
INFO[0000] Starting bind_exporter (version=, branch=, revision=)  source="bind_exporter.go:477"
INFO[0000] Build context (go=go1.13, user=, date=)       source="bind_exporter.go:478"
INFO[0000] Configured to collect statistics "server,view"  source="bind_exporter.go:479"
INFO[0000] Starting Server: :9119                        source="bind_exporter.go:501"

开机自启动

sudo systemctl enable bind_exporter.service
Created symlink from /etc/systemd/system/multi-user.target.wants/bind_exporter.service to /etc/systemd/system/bind_exporter.service.
Confirm that the service is listening on port 9153 as configured

配置Prometheus服务

添加一个job 请注意promethues是严格缩进的 端口是9119 很多文章实践给的是其他端口如9153

- job_name: dns-master
    static_configs:
      - targets: ['10.1.0.100:9119']
        labels:
          alias: dns-master

重启promethues服务

添加grafana dashboard

dashboard 由Cristian Calin提供
ID为1666可以直接下载并添加数据源即可使用。

最终图表展示

上面可以看到所有view(区域的)各个操作行为,执行时间等,非常详细。
至此,通过named服务完成了跨region同一域名解析到不同ip地址包括增删改查、监控在内的全套流程。QQ20191012-181731.png

相关文章
|
7天前
|
机器学习/深度学习 安全 大数据
揭秘!企业级大模型如何安全高效私有化部署?全面解析最佳实践,助你打造智能业务新引擎!
【10月更文挑战第24天】本文详细探讨了企业级大模型私有化部署的最佳实践,涵盖数据隐私与安全、定制化配置、部署流程、性能优化及安全措施。通过私有化部署,企业能够完全控制数据,确保敏感信息的安全,同时根据自身需求进行优化,提升计算性能和处理效率。示例代码展示了如何利用Python和TensorFlow进行文本分类任务的模型训练。
32 6
|
11天前
|
人工智能
歌词结构的巧妙安排:写歌词的方法与技巧解析,妙笔生词AI智能写歌词软件
歌词创作是一门艺术,关键在于巧妙的结构安排。开头需迅速吸引听众,主体部分要坚实且富有逻辑,结尾则应留下深刻印象。《妙笔生词智能写歌词软件》提供多种 AI 功能,帮助创作者找到灵感,优化歌词结构,写出打动人心的作品。
|
22天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
82 3
|
12天前
|
人工智能
写歌词的技巧和方法全解析:开启你的音乐创作之旅,妙笔生词智能写歌词软件
怀揣音乐梦想,渴望用歌词抒发情感?掌握关键技巧,你也能踏上创作之旅。灵感来自生活点滴,主题明确,语言简洁,韵律和谐。借助“妙笔生词智能写歌词软件”,AI辅助创作,轻松写出动人歌词,实现音乐梦想。
|
4天前
|
消息中间件 缓存 安全
Future与FutureTask源码解析,接口阻塞问题及解决方案
【11月更文挑战第5天】在Java开发中,多线程编程是提高系统并发性能和资源利用率的重要手段。然而,多线程编程也带来了诸如线程安全、死锁、接口阻塞等一系列复杂问题。本文将深度剖析多线程优化技巧、Future与FutureTask的源码、接口阻塞问题及解决方案,并通过具体业务场景和Java代码示例进行实战演示。
21 3
|
20天前
|
机器学习/深度学习 算法 Python
深度解析机器学习中过拟合与欠拟合现象:理解模型偏差背后的原因及其解决方案,附带Python示例代码助你轻松掌握平衡技巧
【10月更文挑战第10天】机器学习模型旨在从数据中学习规律并预测新数据。训练过程中常遇过拟合和欠拟合问题。过拟合指模型在训练集上表现优异但泛化能力差,欠拟合则指模型未能充分学习数据规律,两者均影响模型效果。解决方法包括正则化、增加训练数据和特征选择等。示例代码展示了如何使用Python和Scikit-learn进行线性回归建模,并观察不同情况下的表现。
182 3
|
28天前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。
|
28天前
|
SQL 安全 Windows
SQL安装程序规则错误解析与解决方案
在安装SQL Server时,用户可能会遇到安装程序规则错误的问题,这些错误通常与系统配置、权限设置、依赖项缺失或版本不兼容等因素有关
|
18天前
|
JavaScript 前端开发 索引
Vue3 + Vite项目实战:常见问题与解决方案全解析
Vue3 + Vite项目实战:常见问题与解决方案全解析
39 0
|
28天前
|
SQL 安全 关系型数据库
SQL错误代码1303解析与解决方案:深入理解并应对权限问题
在数据库管理和开发过程中,遇到错误代码是常见的事情,每个错误代码都代表着一种特定的问题

相关产品

  • 云解析DNS
  • 推荐镜像

    更多