我们需要收集linux上的dhcp日志,来查看哪些地址被分配出去,以及在dhcp故障的时候能够作为判断依据。
centos7上dhcp服务器配置
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种有效的IP 地址分配手段,已经广泛地应用于各种局域网管理。它能动态地向网络中每台计算机分配*的IP 地址,并提供安全、可靠、简单和统一的TCP/IP 网络配置,确保不发生IP 地址冲突。当在服务器上启用DHCP 后,我们希望了解服务的运行情况,希望看到详细日志。可以通过下面的命令了解到DHCP 服务的日志文件在什么地方。
以centos7为例,命令如下:
yum install dhcp
dhcp 的配置文件如下/etc/dhcp/dhcpd.conf
常用配置文件参数说明
subnet [网络号] netmask [子网掩码] {...}
作用:定义作用域,指定子网掩码
range [起始IP地址] [结束IP地址]
作用:指定动态获取IP地址范围,可以声明多个range但范围不能重合。
option routers [IP地址]
作用:为客户端指定默认网关,可以全局可以局部
option domain-name [域名]
作用:为客户端指定默认的域,可以全局可以局部
option domain-name-servers [IP地址]
作用:为客户端指定默认DNS服务器地址,可以全局可以局部
default-lease-time [数字]
作用:默认最小租约期限(单位秒),可以全局可以局部
max-lease-time [数字]
作用:最长租约期限(单位秒),可以全局可以局部
host [主机注释名]{
hardware [硬件类型] [硬件地址]
fixed-address [IP地址]
}
作用:用于绑定IP地址,一般硬件类型是以太网(ethernet),硬件地址是MAC地址
log-facility [日志属性]
作用:定义自身的日志属性(在/etc/rsyslog.conf日志服务配置文件中定义相应的属性会将日志存放到何处)
启动dhcpd,并开机自启
systemctl start dhcpd<br/>systemctl enable dhcpd<br/>systemclt status dhcpd<br/>
DHCP 服务器日志
DHCP 服务的默认日志不会输出到指定文件,而是和NFS 服务一样,输出到/var/log/messages 文件中,成了日志的大杂烩,不便于分辨,更不便于查找故障,一旦messages 文件遭到破坏,DHCP 日志也跟着受影响。
/var/lib/dhcpd/dhcpd.leases文件,它记录了客户机分配IP 的详细信息
客户机每次获取地址后会产生如下信息:
每当发生租约变化的时候,都会在文件结尾添加新的租约记录,也就是说这个文件是在不断变化的
保存DHCP日志
假设需要将日志记录在/var/log/目录下,则可以先用touch 命令创建一个dhcp.log 文件。
1)创建dhcp.log 文件
#touch /var/log/dhcp.log
#chmod 640 /var/log/dhcp.log
2)修改/etc/dhcpd.conf 配置文件,添加“log-facility”参数并赋值为local4,内容如下:log-facility local4;
3)在/etc/rsyslog.conf 文件中添加local4.* /var/log/dhcp.log
将下面这条*.info;mail.none;authpriv.none;cron.none /var/log/mesages
改为:*.info;mail.none;authpriv.none;cron.none;local4.none /var/log/messages
目的是把消息传送到/var/log/messages 文件,而不再向local4 传送。
注意要把下面这行语句注销:
$ActionFileDefaultTemplate,RSYSLOG_TraditionalFileForma
4)重启Rsyslog 和DHCP 服务
#service rsyslog restart
#service dhcpd restart
重启DHCP 服务即可生效,这时的日志文件就是DHCP 服务器出现故障后排除错误的一个重要基础数据。所以需要定期对这个日志文件作好备份工作。否则,当这个日志意外丢失后,就很难查清DHCP 服务器的故障。
每当DHCP服务器分配地址的时候,都会有以下日志输出
tail /var/log/dhcp.log
配置graylog收集dhcp日志
关于graylog收集linux主机日志,见我之前的博客
https://blog.51cto.com/11555417/2410076
安装sidecar
dhcp服务器上直接安装
rpm -ivh https://github.com/Graylog2/collector-sidecar/releases/download/1.0.1/graylog-sidecar-1.0.1-1.x86_64.rpm
然后编辑配置文件/etc/graylog/sidecar/sidecar.yml
vim /etc/graylog/sidecar/sidecar.yml
这里首先说明,需要修改的配置文件,只需要修改server_url和server_api_token,官方说明如下
首先我们要创建一个api token
按照如下方式创建
然后我们把生成的api token写入到sidecar.yml配置文件中,在第6行
完成配置文件修改后,安装sidecar作为服务器并启动
graylog-sidecar -service install
systemctl start graylog-sidecar
systemctl enable graylog-sidecar
确认服务运行
一切正常的话,则可以看到配置的sidecar已经上线
安装filebeat
在linux上,graylog-sidcar需要第三方程序作为收集器,有filebeat和nxlog,我们使用filebeat
地址为https://www.elastic.co/cn/downloads/beats
rpm -ivh https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.1.1-x86_64.rpm
安装完毕后,修改配置文件
vim /etc/filebeat/filebeat.yml
24行 修改为true
28行,修改为open***的日志路径
150行,修改为graylog地址
完成后,启动服务
systemctl restart filebeat
配置graylog
在graylog中,点击configuration
注意这几个位置的修改,要与服务器上的filebeat配置一致
注意这几个位置的修改,然后创建
创建完毕后,需要关联
此时sidecar可以收集到dhcp的日志
然后我们新建input进行日志分析
然后按照如下配置
然后我们就可以进行分析了