当前位置 : 主页 > 操作系统 > centos >

ELK监控IIS-Web日志+Grafana展示

来源:互联网 收集:自由互联 发布时间:2022-06-20
ELK监控IIS-Web日志+Grafana展示 ​ 这里介绍使用Filebeat+Logstash+Grafana展示IIS-Web日志,由于数据量不大,没有采用Redis缓存,数据由Featbeat直接传输到Logstash进行数据过滤,再发送到Elasticsear

ELK监控IIS-Web日志+Grafana展示

image.png

image20210709092514730.png

​ 这里介绍使用Filebeat+Logstash+Grafana展示IIS-Web日志,由于数据量不大,没有采用Redis缓存,数据由Featbeat直接传输到Logstash进行数据过滤,再发送到Elasticsearch存储,使用Grafana数据展示

组件如下:

  • Filebeat内的轻量化采集组件,可以方便采集各种日志,可参考Featbeat官方文档
  • Logstash:数据过滤组件,里面有丰富的插件,主要包括三个模块:Input(数据输入),Filter(数据过滤),Output(数据输出),可参考Logstash官方文档
  • Elasticserch:全文索引搜索+存储引擎,java写的,暂未详细了解,可参考Elasticsearch官方文档
  • Kibana:可视化平台,可展示、检索、管理Elasticsearch中的数据。参考Kibana官方文档
  • Grafana:可视化平台,能接入不同的数据源,进行数据图表展示,由于比较熟悉grafana,这里采用grafana进行展示。参考Grafana官方文档

Grafana效果展示

image20210709092720753.png

一、安装ELK

参考 Elasticsearch+Logstash+Kibana+Head安装

二、安装Filebeat

下载Filebeat

Filebeat官网下载

image20210709092913655.png

修改filebeat.yml
# ============================== Filebeat inputs =============================== filebeat.inputs: # Each - is an input. Most options can be set at the input level, so # you can use different inputs for various configurations. # Below are the input specific configurations. #-------------------- input 输入1 --------------------------- - type: log # 开启输入 enabled: true # 日志路径 paths: - C:\inetpub\logs\LogFiles\W3SVC1\u_ex* #出去#开头行 exclude_lines: ['^#'] #type区分不同web网站日志 fields: type: 'filebeat-iis-25' fields_under_root: true ### 如果日志是多行的,如java日志,需要开启以下3行 #multiline.pattern: ^\[ #multiline.negate: false #multiline.match: after #-------------------- input 输入2 --------------------------- - type: log enabled: true paths: - C:\inetpub\logs\LogFiles\W3SVC2\u_ex* exclude_lines: ['^#'] fields: type: 'filebeat-iis-27' fields_under_root: true # ============================== Filebeat modules ============================== filebeat.config.modules: # Glob pattern for configuration loading path: ${path.config}/modules.d/*.yml # Set to true to enable config reloading reload.enabled: false # ======================= Elasticsearch template setting ======================= setup.template.settings: index.number_of_shards: 1 # ================================== General =================================== #fields: # env: staging # =================================== Kibana =================================== setup.kibana: #host: "192.168.0.170:5601" #username: "elastic" #password: "123456" # ================================== Outputs =================================== # ---------------------------- Elasticsearch Output ---------------------------- #output.elasticsearch: # hosts: ["192.168.0.170:9200"] # username: "elastic" # password: "123456" # ------------------------------ Logstash Output ------------------------------- output.logstash: hosts: ["192.168.0.170:5044"] # ================================= Processors ================================= processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~
文件夹移动至C:\Program Files,并重命名为Filebeat

image20210709094054849.png

管理员打开powershell
PS C:\Windows\system32> cd 'C:\Program Files\Filebeat' PS C:\Program Files\Winlogbeat> .\install-service-filebeat.ps1

安装完成后提示

image20210709094227134.png


​ 如果弹出无法安装提示

image20210709094303707.png

​ 需要运行以下命令安装

​ PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-filebeat.ps1


测试配置文件

.\filebeat.exe setup -e

开启服务

Start-Service filebeat

image20210709094451895.png

三、配置Logstash

vim /opt/logstash/config/iis_log.conf

#-------------------输入------------------------ input{ beats { host => "0.0.0.0" port => 5044 } } #-------------------过滤----------------------- filter { if [type] =~ "filebeat-iis-.*" { #删除以#开头的注释日志 if [message] =~ "^#" { drop {} } grok { #grok内的match,匹配字端信息,内置了很多正则表达式,可直接使用 match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} (%{IPORHOST:s-ip}|-) (%{WORD:cs-method}|-) %{NOTSPACE:cs-uri-stem} %{NOTSPACE:cs-uri-query} (%{NUMBER:s-port}|-) (%{NOTSPACE:c-username}|-) (%{IPORHOST:c-ip}|-) %{NOTSPACE:cs-useragent} %{NOTSPACE:cs-referer} (%{NUMBER:sc-status}|-) (%{NUMBER:sc-substatus}|-) (%{NUMBER:sc-win32-status}|-) (%{NUMBER:time-taken}|-)"] } #grok内的date,修正时间 date { match => ["log_timestamp","yyyy-MM-dd HH:mm:ss"] # 由于IIS日志默认采用的是格林尼治时区,故时区要选择"Etc/UTC" timezone => "Etc/UTC" target => "@timestamp" } #grok内的mutate,删除字段 mutate { remove_field => ["@version","message","host","agent","ecs","cs-uri-query"] #remove_field => ["log_timestamp"] } #grok内的useragent插件,解析客户端信息 useragent { source=> "cs-useragent" prefix => "user_agent." remove_field => "cs-useragent" } #grok内的geoip,解析IP地址位置 geoip { source => "c-ip" } } } #------------------- 输出 ----------------------- output { #不同的iis服务器日志放到不同的索引中 if [type] == "filebeat-iis-25" { elasticsearch { hosts => ["192.168.0.170:9200"] user => "elastic" password => "123456" index => "filebeat-iis-25-%{+YYYYMMdd}" } } if [type] == "filebeat-iis-27" { elasticsearch { hosts => ["192.168.0.170:9200"] user => "elastic" password => "123456" index => "filebeat-iis-27-%{+YYYYMMdd}" } } }

四、配置kibana

登录kibana

http://192.168.0.170:5601/

创建索引模式

image20210708162810158.png

image20210708162852171.png

image20210708162930324.png

image20210709100006081.png

image20210709100030496.png

创建完成后,在Discover就可以看得刚创建的索引

image20210708163450220.png

image20210709100228668.png

五、Grafana展示

参考 Grafana安装

添加数据源

image20210708164910450.png

image20210709100325305.png

绘制图表-地图显示

image20210709100438268.png

绘制图标-访问top10

image20210709101647585.png

绘制图标-日志详情

image20210709101404984.png

image20210709101520684.png

其他图表类似,最后展示如下

image20210709092720753.png

网友评论