系统及部署环境
获取操作系统命令
- uname -sr
- cat /etc/redhat-release
设置机器信息及主备关系
主机 | 主备 | 操作系统 | bind版本 |
---|---|---|---|
fnc05 10.154.5.163 | 主机master | CentOS Linux release 7.9.2009 (Core) / Linux 3.10.0-1160.11.1.el7.x86_64 | BIND 9.16.17 (Stable Release) |
fnc04 10.154.5.162 | 从机slave | CentOS Linux release 7.8.2003 (Core) / Linux 3.10.0-1127.18.2.el7.x86_64 | BIND 9.16.16 (Stable Release) |
fnc03 10.154.5.214 | 从机slave | BigCloud Enterprise Linux For LDK release 7.6.1906 (Core) / Linux 4.19.25-200.1.el7.bclinux.x86_64 | BIND 9.16.17 (Stable Release) |
上述主备机仍需注意如下配置:
- 确保防火墙的规则不会拦截Bind的监听端口,默认为53
- 确保主从服务器的时钟一致
- 确保named用户拥有操作相关目录的权限(默认安装后就有了)
bind9.16安装配置
9.16安装
1 | cd /etc/yum.repos.d/ |
安装过程可能确实某些安装包,可以自行安装:
1 | wget http://mirror.centos.org/centos/7/os/x86_64/Packages/scl-utils-20130529-19.el7.x86_64.rpm |
安装包下载网站
Iso-codes Download (APK, DEB, EOPKG, RPM, TGZ, TXZ, XZ, ZST) (pkgs.org)
scl-utils-20130529-19.el7.x86_64.rpm CentOS 7 Download (pkgs.org)
9.16配置
1 | 在物理机/etc/profile.d/⽬录下创建isc-bind-named.sh⽂件。并输⼊以下内容,保存。 |
配置rndc-confgen
主从都可照着此步骤配置(但从机可以不用配置,因为从机仅同步查询数据,不做维护)
1 | rndc-confgen -r /dev/urandom > /etc/opt/isc/isc-bind/rndc.conf |
配置transfer-key
主机生成密钥
1 | 生成一个主机名称为dnssec-transfer的128位HMAC-MD5算法的密钥文件(公钥+私钥) |
将私钥key放到一个新的文件中,并将这个文件引入到named.conf中
1 | cd /etc/opt/isc/isc-bind/ 或 cd /etc/ #密钥验证文件在/etc目录(与named.conf同一个目录下) |
1 | systemctl restart named |
从机引用密钥
1 | scp /etc/transfer.key root@从机ip地址:/etc/opt/isc/isc-bind/transfer.key |
named.conf文件:
1 | include "/etc/opt/isc/isc-bind/transfer.key"; |
重启从服务器的Bind服务
1 | systemctl restart isc-bind-named |
发现已经同步过来了。
配置catalog
主机
- 打开目录
/var/opt/isc/isc-bind/named/data
,新建catalog目录文件(后缀名可以为.db或者.zone)
1 | cd /var/opt/isc/isc-bind/named/data |
1 | 修改权限 |
- 将catalog目录文件引入到named.conf中
1 | options { |
1 | named-checkzone catalog.default catalog.default.zone |
从机
named.conf配置catalog目录,与主机建立关联。
1 | options { |
验证
至此完成catalog目录的配置。
1 | 主机、从机都重启 |
配置日志
生成日志存储文件
cd /var/opt/isc/isc-bind/log/
1 | vim namelist.txt |
1 | !/bin/bash |
1 | bash createlog.sh |
1 | 发送到从机 |
named.conf配置
1 | ```shell |
主从机都配置!
最终主机配置
1 | key rndc-key { |
1 | named-checkconf 验证配置 |
最终从机配置
从机配置同步数据所在目录slaves
1 | cd /var/opt/isc/isc-bind/named/data |
named
1 | key "rndc-key" { |
1 | systemctl restart isc-bind-named |
性能监控
Bind基本配置
用于获取监控数据
vim /etc/opt/isc/isc-bind/named.conf
1 | statistics-channels { |
打开浏览器访问10.154.5.162:8889
注意端口号8889
bind_exporter
用于图形化展现。
bind_exporter基于statistics-channels记录的统计数据,并对数据统计分析并输出到Prometheus
下载
查看linux版本
1 | # cat /proc/version |
根据版本下载
https://github.com/prometheus-community/bind_exporter/releases
如上图,linux是86_64,则下载版本
bind_exporter-0.4.0.linux-amd64.tar.gz
配置
解压到/usr/local/bin/
1 |
|
创建⼀个systemd配置⽂件以运⾏bind_exporter
- –web.listen-address为对外暴露的metric地址和端⼝,Prometheus从此处抓取bind_exporter的metrics;即对外提供数据的端口。
- – bind.stats-url为本地bind服务绑定的地址和IP。即获取bind数据的地址。
注意此处的⽤⼾和组可以使⽤与named程序相同的⽤⼾和组“named”,也可 以使⽤root。
1 | vim /etc/systemd/system/bind_exporter.service |
注意端口号9154
加载并启动bind_export
1 | systemctl daemon-reload |
Prometheus Server
Prometheus基于Go编写,编译后的软件包,不依赖于任何的第三⽅依赖。只需要下载对应平台的⼆进制包,解压并且添加基本 的配置即可正常启Prometheus Server。
Prometheus Server负责定时在目标上抓取Metrics数据,每个抓取目标都需要暴露一个HTTP服务接口用于Prometheus定时抓取。
这种调用被监控对象获取监控数据的方式被称为Pull。Pull方式体现了Prometheus独特的设计哲学与大多数采用了Push方式的监控系统不同。
但某些现有系统是通过push方式实现的,为了接入这个系统,Prometheus提供对PushGateway的支持,这些系统主动推送metrics到PushGateway,而Prometheus只是定时去Gateway上抓取数据。
AlertManager是独立于Prometheus的一个组件,在触发了预先设置在Prometheus中的高级规则后,Prometheus便会推送告警信息到AlertManager。
根据版本下载:
1 | tar -xf prometheus-2.27.1.linux-amd64.tar.gz |
创建Prometheus的⽤⼾(此处用户prometheus)及数据存储⽬录(/data/prometheus)
1 | useradd -s /sbin/nologin -M prometheus |
配置/usr/local/prometheus/promethes.yml
1 | cp prometheus.yml prometheus.yml-default #备份一下默认配置 |
1 | my global config |
默认启动后的端口为9090。
启动方式1
1 | cd /usr/local/prometheus |
启动方式2
1 | vim /etc/systemd/system/prometheus.service |
如此可以用命令启动服务
1 | systemctl daemon-reload |
浏览器访问http://10.154.5.162:9090/targets
Grafana
一个数据分析统计可视化报表,⽤来展⽰ prometheus收集到的数据
Grafana+Prometheus的详解以及使用 - 知乎 (zhihu.com)
下载
1 | wget https://dl.grafana.com/oss/release/grafana-7.5.7.linux-amd64.tar.gz |
1 | tar -xzvf grafana-7.5.7.linux-amd64.tar.gz |
创建grafana⽤⼾及数据存放⽬录
1 | useradd -s /sbin/nologin -M grafana |
修改目录
1 | cd /usr/local/grafana/conf/ |
新增 grafana-server.service ⽂件,使⽤systemd来管理grafana服务
1 | vim /etc/systemd/system/grafana-server.service |
1 | systemctl start grafana-server |
打开浏览器访问
http://10.154.5.162:3000/login
默认的账号密码 admin/admin
把grafana和prometheus关联起来,也就是在 grafana中添加添加数据源——
在配置⻚⾯点击添加数据源,然后选择prometheus,输⼊prometheus服务的参数即可。
Grafana三种方式导入Dashboard
参考:
Node Exporter
https://prometheus.io/download/
采集主机的运⾏指标如CPU,内存,磁盘等信息。可以使⽤Node Exporter
1 | wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz |
1 | ln -s node_exporter-1.1.2.linux-amd64/ node_exporter |
开机启动
1 | nohup /usr/local/prometheus_exporter/node_exporter/node_exporter >/dev/null 2>&1 & |
加入prometheus
编辑prometheus.yml⽂件,增加后⾯4⾏.
1 | scrape_configs: |
重启
1 | systemctl restart prometheus.service |