使用graylog2收集dhcp日志

我们需要收集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日志服务配置文件中定义相应的属性会将日志存放到何处)

使用graylog2收集dhcp日志

 启动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 的详细信息

客户机每次获取地址后会产生如下信息:

使用graylog2收集dhcp日志

每当发生租约变化的时候,都会在文件结尾添加新的租约记录,也就是说这个文件是在不断变化的

保存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 

使用graylog2收集dhcp日志

配置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,官方说明如下
使用graylog2收集dhcp日志

首先我们要创建一个api token
使用graylog2收集dhcp日志

按照如下方式创建
使用graylog2收集dhcp日志

然后我们把生成的api token写入到sidecar.yml配置文件中,在第6行

完成配置文件修改后,安装sidecar作为服务器并启动

graylog-sidecar -service install
systemctl start graylog-sidecar
systemctl enable graylog-sidecar

确认服务运行

使用graylog2收集dhcp日志

一切正常的话,则可以看到配置的sidecar已经上线

使用graylog2收集dhcp日志

安装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地址
使用graylog2收集dhcp日志

完成后,启动服务

systemctl restart filebeat

配置graylog

在graylog中,点击configuration

使用graylog2收集dhcp日志

注意这几个位置的修改,要与服务器上的filebeat配置一致
使用graylog2收集dhcp日志

注意这几个位置的修改,然后创建
创建完毕后,需要关联
使用graylog2收集dhcp日志

此时sidecar可以收集到dhcp的日志

然后我们新建input进行日志分析

使用graylog2收集dhcp日志

然后按照如下配置
使用graylog2收集dhcp日志

然后我们就可以进行分析了
使用graylog2收集dhcp日志

上一篇:开源日志管理ELK和Graylog区别


下一篇:The kernel’s command-line parameters(2)