以前生产环境设备较少,是经过维护master(192.168.1.1)设备的hosts文件实现的。每次新增设备后,须要在master的hosts文件中新增ip和主机名,再将master的hosts文件批量拷贝到生产全部已部署设备和新增设备。设备少时维护比较简单,随时设备愈来愈多,维护起来变得很繁琐,批量拷贝也很是消耗精力。html
为了减轻维护成本,和提升维护效率,在生产环境搭建一台dns服务器很是有必要。vim
进过筛选,dnsmasq这个轻量级的dns服务器,具备开源,搭建简单,维护成本低的优势,符合生产环境需求。缓存
官方文档tomcat
http://www.thekelleys.org.uk/dnsmasq/doc.html服务器
下载地址异步
http://www.thekelleys.org.uk/dnsmasq/async
服务器最好专门作dns服务。不要和其余业务设备共用,避免重启设备。oop
#dnsmasq须要gcc支持 rpm –qa|grep gcc tar zxvf dnsmasq-2.70.tar.gz cd dnsmasq-2.70 make && make install
3.2配置性能
vim /etc/dnsmasq.conf no-hosts #不加载本地的/etc/hosts文件 local-ttl=3600 #本地缓存时间,一般不要求缓存本地,这样更改hosts文件后即便生效 cache-size=1000000 #最大缓存条数 dns-forward-max=1000000 listen-address=127.0.0.1,192.168.1.1 #若是想要这台服务器作解析,就要填上本身的地址,而且填上127.0.0.1的地址 resolv-file=/etc/resolv.dnsmasq.conf #这个文件是能够自定义的,我就跟随大流,直接复制了一份resolv.conf改了名称就用了 all-servers #这条语句的意思就是若是本地没查询到,则想咱们的resolv.dnsmasq.conf文件中全部的DNS查询,谁查到的快就用谁的 log-queries #开启日志选项 log-facility=/var/log/dnsmasq/dnsmasq.log log-async=100 #异步log,缓解阻塞,提升性能。默认为5,最大为100 conf-dir=/etc/dnsmasq.d #这条应该是最后一句,它的做用其实就是说明该目录下的全部.conf文件都是要作解析的
#配置上级dns地址,用户访问外网使用,生产环境不能访问外网,该步骤能够不作 cp /etc/resolv.conf /etc/resolv.dnsmasq.conf vim /etc/resolv.dnsmasq.conf nameserver 114.114.114.114 #建立域名解析记录。格式为address=/主机名称/ip地址 vim /etc/dnsmasq.d/hosts.conf address=/host-a/192.168.1.1 address=/host-b/192.168.1.2 address=/host-c/192.168.1.3 address=/host-d/192.168.1.4
mkdir /var/log/dnsmasq/ service dnsmasq start
chkconfig –level 23456 dnsmasq on
vim /etc/resolv.conf namesever 192.168.1.1 ping host-c #经过ping能够看到host-c的ip地址
三.维护测试
在/etc/dnsmasq.d/目录按设备类别新建conf文件,便于维护。
kafka.conf 存放kafka相关设备
vim /etc/dnsmasq.d/kafka.conf address=/kafka-a/192.168.1.5 address=/kafka-b/192.168.1.6 address=/kafka-c/192.168.1.7 address=/kafka-d/192.168.1.8
elastic.conf 存放elastic相关设备
……和kafka配置相似
hadoop.conf 存放hadoop相关设备
……和kafka配置相似
tomcat.conf 存放tomcat相关设备
……和kafka配置相似