使用ELK收集网络设备日志的案例

2023-11-04

简介

随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事。

系统管理员遇到的常见问题如下:

1、日常维护过程中不可能登录到每一台服务器和设备上去查看日志;
2、网络设备上的存储空间有限,不可能存储日期太长的日志,而系统出现问题又有可能是很久以前发生的某些操作造成的;
3、在某些非法侵入的情况下,侵入者一般都会清除本地日志,清除侵入痕迹;
4、zabbix等监控系统无法代替日志管理,无法监控如系统登录、计划任务执行等项目。
基于上述原因,在当前的网络环境中搭建一台用于日志集中管理的Rsyslog日志服务器就显得十分有必要了。

Rsyslog服务的优点如下:

Rsyslog服务器可以大多数的网络设备支持,在网络设备的系统设备选项中大多都有远程日志服务的配置选项。只需要填写上IP地址和端口(大多数设备已经默认是514了),然后确定就可以了;
Linux服务器只需要在本地的Rsyslog服务配置中加入简单的一行就可以将日志发送到日志服务器,布署和配置起来十分简单;

部署架构

在这里插入图片描述

Rsyslog配置

系统环境及软件版本:CentOS Linux release 7.5.1804 (Core)
Elasticserch-6.8.4
Kibana-6.8.4
Logstash-6.8.4
Filebeat-6.8.4
Rsyslog-8.24.0

将SELINUX设置为disabled

# setenforce 0
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

防火墙配置

firewall-cmd  --add-service=syslog --permanent
firewall-cmd  --reload

检查是否安装了rsyslog软件

CentOS7默认会安装rsyslog

[root@ZABBIX-Server ~]# rpm -qa |grep rsyslog
rsyslog-8.24.0-16.el7.x86_64

编辑rsyslog配置文件

vim /etc/rsyslog.conf #按如下进行更改

[root@ZABBIX-Server mnt]# egrep -v "*#|^$" /etc/rsyslog.conf
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging on
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none;local6.none;local5.none;local4.none                /var/log/messages
$template h3c,"/mnt/h3c/%FROMHOST-IP%.log"
local6.* ?h3c
$template huawei,"/mnt/huawei/%FROMHOST-IP%.log"
local5.* ?huawei
$template cisco,"/mnt/cisco/%FROMHOST-IP%.log"
local4.* ?cisco

在这里插入图片描述

$ModLoad imudp            # immark是模块名,支持tcp协议  
$ModLoad imudp             # imupd是模块名,支持udp协议    
$InputTCPServerRun 514
$UDPServerRun 514          #允许514端口接收使用UDP和TCP协议转发过来的日志

注意:

*.info;mail.none;authpriv.none;cron.none;local6.none;local5.none;local4.none         /var/log/messages
默认没有添加local6.none;local5.none;local4.none 命令,网络日志在写入对应的文件的同时会写入/var/log/messages 中

检查rsyslog服务

在这里插入图片描述
重启rsyslog服务

systemctl restart rsyslog.service

日志存放目录
在这里插入图片描述
网络设备将日志指向syslog服务器,注意不同厂商的设备对应的local不同,对应关系如下:

/mnt/huawei   --- local6
/mnt/h3c      --- local5
/mnt/cisco     --- local4

网络设备配置

Huawei:info-center loghost source Vlanif99
info-center loghost 192.168.99.50 facility local5

H3C:
info-center loghost source Vlan-interface99
info-center loghost 192.168.99.50 facility local6

CISCO:
(config)#logging on
(config)#logging 192.168.99.50 
(config)#logging facility local4
(config)#logging source-interface e0

Ruijie:logging buffered warnings
logging source interface VLAN 99
logging facility local6
logging server 192.168.99.50

注意:192.168.99.50为rsyslog服务器的IP

编辑filebeat配置文件

收集rsyslog下的日志文件到logstash

[root@ZABBIX-Server mnt]# egrep -v "^#|^$" /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /mnt/huawei/*
  tags: ["huawei"]
  include_lines: ['Failed','failed','error','ERROR','\bDOWN\b','\bdown\b','\bUP\b','\bup\b']
  drop_fields:
    fields: ["beat","input_type","source","offset","prospector"]
- type: log
  paths:
    - /mnt/h3c/*
  tags: ["h3c"]
  include_lines: ['Failed','failed','error','ERROR','\bDOWN\b','\bdown\b','\bUP\b','\bup\b']
  drop_fields:
    fields: ["beat","input_type","source","offset","prospector"]
setup.template.settings:
  index.number_of_shards: 3
output.logstash:
  hosts: ["192.168.99.185:5044"]
processors:
  - add_host_metadata: ~
  - add_cloud_metadata: ~

编辑logstash配置文件

对filebeat传来的日志根据标签不同分别进行处理,将处理完成的日志数据传到es上存储,并在kibana上做进一步的可视化展示

[root@elk-node1 ~]# egrep -v "^#|^$" /etc/logstash/conf.d/networklog.conf
input {
  beats {
    port => 5044
  }

}
filter {
  if "huawei" in [tags] {
    grok{
      match => {"message" => "%{SYSLOGTIMESTAMP:time} %{DATA:hostname} %{GREEDYDATA:info}"}
        }
  }
   else if "h3c" in [tags] {
    grok{
      match => {"message" => "%{SYSLOGTIMESTAMP:time} %{YEAR:year} %{DATA:hostname} %{GREEDYDATA:info}"}
        }
  }
mutate {
      remove_field => ["message","time","year","offset","tags","path","host","@version","[log]","[prospector]","[beat]","[input][type]","[source]"]
    }
}
output{
stdout {codec => rubydebug}
elasticsearch {
    index => "networklogs-%{+YYYY.MM.dd}"
    hosts => ["192.168.99.185:9200"]
    sniffing => false
    }
}

在kibana上做可视化配置

创建一个索引模式匹配存储的网络设备日志索引
在这里插入图片描述

创建一个数据表

在这里插入图片描述
kibana的数据表可以导出为CSV文件
在这里插入图片描述

创建一个饼状图

在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用ELK收集网络设备日志的案例 的相关文章

  • App测试经典面试题及参考答案

    正己守道 厚德载物 App测试面试题及参考答案 最近整理了一些关于App测试的面试题 本参照答案是本人在工作实践中总结 仅代表个人观点 如有错误 请谅解 1 问 说一些你在测试过程中常用到的adb命名 答 回答本问题时 首先不要想到哪个命名

随机推荐

  • Python中的继承

    Python中的继承 文章目录 Python中的继承 继承的概念 一 继承的语法 单继承 多继承 二 子类与父类 1 子类重写父类方法 2 子类调用父类的同名方法和属性 super 调用父类方法 小汇总 结语 继承的概念 面向对象编程 OO
  • NSX-T 架构(3)

    传输节点 Edge 在第一篇我们提到了Edge Edge节点 VMware NSX Edge节点是专用于运行无法分发到管理程序的网络服务的服务设备 它们被分组在一个或多个集群中 代表一个能力池 Edge不是一个干活的实例 它是个池 里面专门
  • 龙书笔记(5)

    今天说下颜色和光照 一 颜色 1 颜色表示 RGB数据可用2种不同的结构表示 1 D3DCOLOR eg D3DCOLOR brightRed D3DCOLOR ARGB 255 255 0 0 四个参数的顺序是 Alpha r g b 2
  • 用户界面的需求分析与设计原则

    一 引言 用户界面是人与计算机之间的媒介 用户通过用户界面来与计算机进行信息交换 因此 用户界面的质量 直接关系到应用系统的性能能否充分发挥 能否使用户准确 高效 轻松 愉快地工作 所以软件的友好性 易用性对于软件系统至关重要 目前国内软件
  • python课程设计——单项选择标准化考试

    功能要求 本系统采用序列或字典保存单个试题 每个数据应当包括 题干 选项 答案等信息 本系统功能 1 试题录入 可以随时添加试题 2 试题抽取 每次从试题库中可以随机抽出N道题 N由键盘输入 3 答题 用户可实现输入自己的答案 4 自动判卷
  • MySQL基础语句

    文章目录 前言 帮助信息 注释 数据库操作类语句 连接数据库 查看数据库列表 展示所有数据库 查询当前数据库叫啥 创建数据库 删除数据库 修改数据库编码格式 使用某个数据库 查看当前数据库下所有数据表 表操作 表的约束 查询表结构 查询某个
  • 看懂低压降稳压器(LDO)一篇就够了

    电源管理是电子系统中的的一个基本模块 智能手机 电脑和我们所熟知的绝大多数电子产品都需要这个模块去实现本身的功能 随着人们对电子产品便携性的追求 计算能力的增长 以及传感器的多样化 电源管理设计有了更高的要求 为了满足新的电源设计上的更高的
  • ctfshow php特性

    web89 要求使用get方式传递数据 intval函数如果数组里有值 就输出1 构造payload num 0 web90 这里使用了 intval num 0 函数调用 其中第二个参数为 0 表示使用合适的进制进行转换 intval 函
  • 巴比特

    摘要 元宇宙变得越来越重要 因为它为企业提供了一种与来自世界各地的用户进行交流和协作的新途径 从小企业到大公司 每个品牌都可以踏入虚拟世界 并从中获益 那么一般的企业如何将业务转移到元宇宙呢 这7个步骤了解一下 热点资讯 Meta 宣布大幅
  • 偏微分方程(Partial Differential Equation II)

    数学物理方法 正交曲面坐标系下的分离变量 球函数 勒让德方程的解 勒让德函数 连带勒让德函数 球谐函数 柱函数 贝塞尔方程的解 贝塞尔函数 球贝塞尔方程 偏微分方程 Partial Differential Equation I 偏微分方程
  • php网页如何适应手机端,PC网页的移动端适配兼容性应该如何实现自动适配

    概念 移动时代的今天 现如今随着智能手机的不断发展 移动端搜索的比例也在不断增加 而传统的PC站点在手机端的用户体验度很差 这容易导致大量用户的流失 所以做一个对应的手机站是非常有必要的前端代码的编写永远逃不过 兼容 二词 从前PC时代 因
  • 第四届“泰迪杯”数据分析技能赛通知

    各有关单位 为推广我国高校数据分析实践教学 培养学生数据分析的应用和创新能力 增加校企交流合作和信息共享 提升我国高校的教学质量和企业的竞争能力 由泰迪杯数据分析技能赛组织委员会主办 广东泰迪智能科技股份有限公司承办 广东省工业与应用数学学
  • cgminer 2.2.4 参数详解!

    日期 2012 02 13 分类 Cgminer 版权声明 转载时请以超链接形式标明文章原始出处和作者信息及本声明 http bitcoin blogbus com logs 192244223 html cgminer2 2 4已经发布
  • 用Cookie添加登录界面的记住密码功能

    在网上看到很多关于cookie记录登录密码的功能 但是大部分都是jsp界面 最近刚好有个项目用到了cookie功能 所以编写了这个介绍 补全一下 1 第一步 首先需要在登录界面中写一个form表单 这个不用多说
  • kubernetes理论概念详情(K8S)

    1 优势 2 四组基本概念 3 核心组件 4 其他概念 5 基本命令
  • frp安全内网穿透,安全远程windows,暴露服务

    目录 概述 公网服务器端 内网Windows客户端 外网Windows客户端 附加 暴露多台内网Windows客户端 附加 暴露服务 总结 概述 frp 是一个专注于内网穿透的高性能的反向代理应用 支持 TCP UDP HTTP HTTPS
  • pip在线安装selenium

    最近发布了selenium3 0 但是会有很多莫名其妙的报错 原来可执行的代码也报错了 所以要重新安装回2 0 一 2 7 10之后的python安装包自带了Pip和setuptools 如果你没有安装可以去官网单独下载然后安装 a 下载地
  • js取值方式

    1 根据class id 取 input 标签的value 值 jQuery className val idName val javaScript document getElementById idName value 2 根据clas
  • GPRS本质论

    GPRS DTU最基本的用法是 在DTU中放入一张开通GPRS功能的SIM卡 DTU上电后先注册到GPRS网络 然后通过GPRS网络和数据处理中心建立连接 这条连接涉及了无线网络运营商 因特网宽 带供应商 用户公司的网络情况 以及用户的电脑
  • 使用ELK收集网络设备日志的案例

    简介 随着机房内的服务器和网络设备增加 日志管理和查询就成了让系统管理员头疼的事 系统管理员遇到的常见问题如下 1 日常维护过程中不可能登录到每一台服务器和设备上去查看日志 2 网络设备上的存储空间有限 不可能存储日期太长的日志 而系统出现