文章目录

  • 1.概述
  • 2.日志源配置
    • 1.防火墙开启日志
    • 2.交换机开启日志
  • 3.日志主机配置
    • 1.rsyslog配置
    • 2.docker及filebeat配置
  • 4.elk配置
  • 5.日志清理
    • 1.rsyslog清理
    • 2.ES生命周期管理

1.概述

本文描述将网络日志(会话日志,操作日志等)以syslog方式保存到elk日志服务器集群中及日志展示的实现。

2.日志源配置

首先对日志源即网络设备进行配置,以下列举华为防火墙及交换设备

1.防火墙开启日志

防火墙日志配置(另在策略中也要开启日志记录功能,图略)

2.交换机开启日志

info-center source default channel 4 log level error
info-center loghost 192.168.171.7 channel 4 local-time
info-center trapbuffer channel 4

3.日志主机配置

该主机上主要安装了rsyslog,docker及filebeat(docker版本)组件

1.rsyslog配置

  1. 安装请用yum
  2. 配置rsyslog模板
    由于生产中需要收集不同网络设备的日志,因此这里用不通网络设备的ip建立目录及各自的日志

$template diff_ip,“/var/log/network-log/%fromhost-ip%/messages-%$now%.log”
if $fromhost-ip != ‘127.0.0.1’ then ?diff_ip
#local7.* /var/log/boot.log
local7.* ?diff_ip

当配置完上面的模板,rsyslog收到日志源的数据后,会产生如下临时日志,结构如模板设置一样

  1. 启动服务
systemctl start rsyslog

2.docker及filebeat配置

  1. yum安装docker
  2. 拉取filebeat镜像

###拉取filebeat镜像文件
docker pull docker.elastic.co/beats/filebeat:7.10.0
###将提前准备好filebeat.yml文件放置在/etc/zabbix/docker_vol/下
###按照以下命令及参数,运行filebeat,注意这里需要将宿主机系统的部分文件挂载到filebeat容器中,由于filebeat读取的是宿主机上rsyslog的日志文件,因此还需要将filebeat.yml中的日志来源目录也挂载到容器的目录中,这都在下面的命令中体现
docker run -d --name=network-sys --user=root --volume=“/etc/zabbix/docker_vol/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro” --volume=“/var/lib/docker/containers:/var/lib/docker/containers:ro” --volume=“/var/run/docker.sock:/var/run/docker.sock:ro” --volume=“/var/log/network-log:/var/log/network-log:ro” docker.elastic.co/beats/filebeat:7.8.1 filebeat -e -strict.perms=false

  1. filebeat.yml如下,这里往es导入日志后是按天生成es的index
filebeat.inputs:
#- type: syslog
- type: log
#  protocol.udp:
#    host: "192.168.171.7:5140"encoding: gbkpaths: '/var/log/network-log/*/*.log'
#output.console:
#  string:
processors:- add_tags:when:regexp:log.file.path: "10.222.222.[2,3]{1,1}"tags: ["FT2Q-FW"]- add_tags:when:regexp:log.file.path: "10.100.1.[2,3]{1,1}/"tags: ["FT1Q-FW"]- add_tags:when:regexp:log.file.path: "10.100.1.[1][9]|10.100.[2][0]"tags: ["FT3Q-FW"]- add_tags:when:regexp:log.file.path: "10.100.1.[1][0]|10.100.1,[1][1]"tags: ["SJHL-FW"]- add_tags:when:regexp:log.file.path: "192.168.171.1"tags: ["FT1Q-core"]
output.elasticsearch:hosts: ["192.168.170.108:9201", "192.168.170.109:9201", "192.168.170.112:9201"]username: "elastic"password: "elastic_PASS"index: "network-%{[agent.version]}-%{+yyyy.MM.dd}"
#  indices:
#    - index: "network-ft1q-%{[agent.version]}-%{+yyyy.MM.dd}"
#      when:
#        or:
#        - contains:
#          source: 10.222.222.2
#        - contains:
#          source: 10.100.1.3
#    - index: "network-ft3q-%{[agent.version]}-%{+yyyy.MM.dd}"
#      when.contains:
#    - index: "network-sjhl-${[agent.version]}-%{+yyyy.MM.dd}"
setup.template.name: "network-log"
setup.template.pattern: "network-*"
setup.template.enabled: true
setup.ilm.enabled: false
  1. docker方式启动filebeat
docker run -d --name=network-sys --user=root --volume="/etc/zabbix/docker_vol/filebeat.yml:/usr/share/filebeat/filebeat.yml:ro" --volume="/var/lib/docker/containers:/var/lib/docker/containers:ro" --volume="/var/run/docker.sock:/var/run/docker.sock:ro" --volume="/var/log/network-log:/var/log/network-log:ro" docker.elastic.co/beats/filebeat:7.8.1 filebeat -e -strict.perms=false

4.elk配置

日志是通过日志服务器,转发到es集群上面的,但是我这里主要是在kibana上进行配置。

  1. 创建索引(index)模板
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020111511173570.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lxOTAxMjU=,size_16,color_FFFFFF,t_70#pic_center
  2. 在discover中可通过索引模式(就是上面的索引模板)的选择看到收集到的日志

5.日志清理

这里的日志清理分为两步,一步是清理rsyslog中的日志,还有一步是对es集群主机中的index做生命周期的设置

1.rsyslog清理

  1. 在rsyslog服务器(=filebeat也在这上面=)先定制删除日志的脚本auto_remove_log.py,放置的目录如下
    /etc/zabbix/zabbix_script/auto_remove_log.py
#! /usr/bin/python
import os,re,time
file_dir = '/var/log/network-log'
list_dir = os.listdir(file_dir)
list_dir_sub_layer=[]
for dir_name in list_dir:list_dir_sub_layer.append(file_dir+'/'+dir_name)
list_dir_file = []
for dir_name in list_dir_sub_layer:list_dir = os.listdir(dir_name)for k in list_dir:list_dir_file.append(dir_name+'/'+k)
len_list = len(list_dir_file)
begin_time = time.strftime("%Y-%m-%d",time.localtime(time.time()-86400))
cu_time = time.strftime("%Y-%m-%d",time.localtime())
for i in range(0,len_list):if re.search(begin_time,list_dir_file[i]) or re.search(cu_time,list_dir_file[i]):passelse:os.remove(list_dir_file[i])
  1. 部署了上面的脚本后,还需要用crontab定时执行,这里计划为每天早8点执行一次脚本
0 8 * * * /usr/bin/python /etc/zabbix/zabbix_script/auto_remove_log.py

2.ES生命周期管理

日志不仅要在rsyslog日志服务器上进行定期清理,在es集群中也要进行生命周期的设置

  1. 生命周期策略创建
    2. 挂接到index

【elk】网络设备syslog日志收集相关推荐

  1. VCenter配置ESXI主机syslog日志收集

    VCenter配置ESXI主机syslog日志收集 https://blog.51cto.com/zhsoft/1896310 1进入VCenter虚拟机控制台,查看syslog服务是否启动: 2如V ...

  2. 转: 基于elk 实现nginx日志收集与数据分析

    原文链接:https://www.cnblogs.com/wenchengxiaopenyou/p/9034213.html 一.背景 前端web服务器为nginx,采用filebeat + logs ...

  3. ELK+Kafka 企业日志收集平台(二)这是原版

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

  4. ELK+Kafka 企业日志收集平台(二)

    上篇博文主要总结了一下elk.基于kafka的zookeeper集群搭建,以及系统日志通过zookeeper集群达到我们集群的整个过程.下面我们接着下面这个未完成的几个主题 4.Kibana部署; 5 ...

  5. ELK+Kafka 企业日志收集平台(一)

    背景: 最近线上上了ELK,但是只用了一台Redis在中间作为消息队列,以减轻前端es集群的压力,Redis的集群解决方案暂时没有接触过,并且Redis作为消息队列并不是它的强项:所以最近将Redis ...

  6. Logback+ELK+SpringBoot搭建日志收集服务器

    前言 本文重点介绍Logback和ELK和SpringBoot是怎么整合收集日志的 关于ELK的说明和安装可以点击查看ELK(Elasticsearch.Logstash.Kibana)安装, htt ...

  7. 从0开始CentOS7上安装ELK,实现日志收集

    从0开始CentOS7上安装ELK实现日志收集 1. ELK Stack 简介 2. 组件下载 2.1 安装环境及版本 2.2 下载安装包 3.安装 3.1 ElasticSearch安装 3.1.1 ...

  8. SpringBoot+Kafka+ELK 完成海量日志收集(超详细)

    点击关注公众号,实用技术文章及时了解 来源:jiandansuifeng.blog.csdn.net/ article/details/107361190 整体流程大概如下: 服务器准备 在这先列出各 ...

  9. 部署ELK+Kafka+Filebeat日志收集分析系统

    ELK+Kafka+Filebeat日志系统 文章目录 ELK+Kafka+Filebeat日志系统 1.环境规划 2.部署elasticsearch集群 2.1.配置es-1节点 2.2.配置es- ...

最新文章

  1. python 0o10_Python 从业十年的程序员,写的万字经验分享
  2. sigmoid function vs softmax function
  3. 电子元器件首饰!送给你喜欢的女孩!
  4. python 分类 投票_LightGBM——提升机器算法(图解+理论+安装方法+python代码)
  5. 动态游标(例如表名作为参数)以及动态SQL分析
  6. java sbyte_Java Byte parseByte()方法
  7. 毫秒级从百亿大表任意维度筛选数据,是怎么做到的…
  8. matlab编写文件格式,MATLAB程序设计教程(4)——MATLAB文件操作
  9. 让“云”无处不在-Citrix Xenserver之七 转换:XenConver和p2v-legacy
  10. Python入门--函数的返回值
  11. 洛谷 P2486 [SDOI2011]染色 树链剖分
  12. 【渝粤题库】广东开放大学 管理会计 形成性考核
  13. 【图像去噪】基于matlab GUI中值+均值+维纳+小波滤波图像去噪【含Matlab源码 753期】
  14. Postman安装与入门简单教程
  15. ps的基本操作和知识
  16. 蓝光三维扫描仪用于无人机结构外壳虚拟装配
  17. GUI GUIDER 应用笔记
  18. 台式电脑开机显示蓝屏 检查计算机上的病毒,电脑出现蓝屏问题的诊断以及处理的方法...
  19. Oliver的救援--SSL 2278
  20. cesium 指南针、比例尺

热门文章

  1. ENVI无缝镶嵌工具Seamless Mosaic实现栅格遥感影像镶嵌拼接的方法
  2. 网站使用https不安全证书,Safari浏览器第一次发起请求异常,需要刷新才可以正常发送
  3. 夏普S2 android one,【夏普S2评测】系统:流畅和隽雅是Smile UX的最大特点_夏普 S2_手机评测-中关村在线...
  4. C#使用SqlConnection的事务SqlTransaction
  5. 【15分】F. 电视机与遥控器(友元类)
  6. chrome顶部变黑_win10系统chrome内核浏览器地址栏变黑的解决方法
  7. 16位AD,基准电压用3V,4V,5V的区别
  8. Vue 2 | Part 5 列表渲染和事件监听
  9. r96950hs和r76850hs哪个好
  10. linux服务器time wait,Linux服务器TIME_WAIT进程的解决与原因