ELK监控深信服防火墙syslog日志+Grafana展示
[TOC]
由于深信服防火墙各分支机构都有一台,每次巡检都需要登录不同系统的web界面巡检日志信息,深信服也有自己的外部服务器,但是毕竟是收费的产品,这里将不同防火墙的日志都发送到logstash中统一处理展示。
这里介绍使用Syslog+Logstash+Grafana展示深信服防火墙日志,由于数据量不大,没有采用Redis缓存,数据由Syslog直接传输到Logstash进行数据过滤,再发送到Elasticsearch存储,使用Grafana数据展示
组件如下:
- Syslog:记录设备的系统日志,在网络设备与linux服务器中常用
- Logstash:数据过滤组件,里面有丰富的插件,主要包括三个模块:Input(数据输入),Filter(数据过滤),Output(数据输出),可参考Logstash官方文档
- Elasticserch:全文索引搜索+存储引擎,java写的,暂未详细了解,可参考Elasticsearch官方文档
- Kibana:可视化平台,可展示、检索、管理Elasticsearch中的数据。参考Kibana官方文档
- Grafana:可视化平台,能接入不同的数据源,进行数据图表展示,由于比较熟悉grafana,这里采用grafana进行展示。参考Grafana官方文档
Grafana效果展示
一、安装ELK
参考 Elasticsearch+Logstash+Kibana+Head安装
二、配置Syslog
登录深信服防火墙,开启Syslog选项-勾选安全日志-配置IP端口
三、配置Logstash
Syslog日志如下
2021-06-21T09:17:18+08:00 localhost fwlog: 日志类型:IPS防护日志, 策略名称:业务, 漏洞ID:11070339, 漏洞名称:D-Link IP Cameras信息泄露漏洞, 源IP:143.198.173.174, >源端口:48058, 目的IP:192.168.0.28, 目的端口:80, 协议:tcp, **类型:network_device漏洞, 严重等级:高, 动作:拒绝**
过滤规则需要使用kv模块将message,以逗号进行才分,以冒号进行key,value区分
修改logstash配置文件
vim /opt/logstash/config/syslog-security.conf
# ---------------input 输入模块----------------------- input{ syslog{ type => "syslog-security" #给输入源打上标签 host => "0.0.0.0" port => 514 #端口号与防护墙保持一致 } } # ---------------filter 过滤模块----------------------- filter{ if [type] == "syslog-security" { kv { source => "message" field_split => ", " #以逗号+空格拆分 value_split => ":" #以冒号进行key,value区分 } mutate { remove_field => ["message"] #删除原字段 } geoip { source => "源IP" #将源ip进行经纬度分析 } } } # ---------------output 输出模块----------------------- output { if [type] == "syslog-security" { elasticsearch { hosts => ["192.168.0.170:9200"] user => "elastic" password => "123456" index => "syslog-security-%{+YYYYMMdd}" } } # stdout { } }残留问题:kv拆分后的字段,在es中并不能建立索引,待大神解答
四、配置kibana
登录kibana
http://192.168.0.170:5601/
创建索引模式
创建完成后,在Discover就可以看得刚创建的索引
求大神解答这些字段如何加入索引
五、Grafana展示
参考 Grafana安装
添加数据源
绘制图表-日志趋势
绘制图标-最新日志
其他图表类似,最后展示如下
【文章原创作者:高防cdn http://www.juniucdn.com欢迎留下您的宝贵建议】