windows环境搭建ELK

目录

资源下载(8.9.1)

ES安装、注册、使用

Kibana安装、注册、使用

Logstash安装、注册、使用

Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)


资源下载(8.9.1)

        ES下载    Kibana下载    Logstash下载    FileBeat下载    NSSM下载(用来注册系统服务)

ES安装、注册、使用

跳转到bin目录,执行下面的代码将es注册为系统服务

elasticsearch-service.bat install

执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)

windows环境搭建ELK_第1张图片


服务启动成功后访问https://127.0.0.1:9200(注意协议是https,如果想要使用http协议,可以修改【config\elasticsearch.yml】,将xpack.security.http.ssl:enable设置为【false】然后重启

第一次访问需要用户名、密码,默认的用户名是【elastic】,可以通过下面的命令重置密码(切换到bin目录下执行)

elasticsearch-reset-password --username elastic -i

 

Kibana安装、注册、使用

kibana需要从elasticsearch中读取数据,所以在启动时需要连接elasticsearch,可以通过【kibana\config\kibana.yml】中的【elasticsearch.hosts】来指定elasticsearch地址(由于elasticsearch开启了身份验证,所以连接时需要提供用户名、密码或者token,上面提到过elasticsearch默认用户是elastic,但是elastic是超级管理员,不允许直接连接,所以这里可以新建一个用户供kibana使用或者使用token的方式),下面提供的是生成token的命令(切换到【elasticsearch\bin】下执行,namespace、service、token_name自行替换)

elasticsearch-service-tokens create / 

下载NSSM,然后将nssm.exe(结合操作系统位数选择相应的exe)复制到【kibana\bin】目录下,然后在bin目录下执行

nssm install kibana

 windows环境搭建ELK_第2张图片

执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)

 


服务启动成功后访问http://127.0.0.1:5601(用户名、密码与elasticsearch用户名、密码一致)

kibana.yml

# 中文显示
i18n.locale: "zh-CN"

Logstash安装、注册、使用

logstash主要用input、filter、output三个模块,其中input负责数据录入、output负责数据输出、filter负责数据处理

#log-example.conf

input {
  # 从filebeats读取数据
  # beats {
      # host => xxxx
      # port => 5044
      # ssl => false
  # }

  # 从指定位置的文件读取数据
  file {
    # 注意这里文件分隔符不能使用'\'
	path => ['D:/logs/project1/*.log', 'D:/logs/project2/*.log']
	start_position => 'beginning'
	type => 'logs'
    # 将多行日志转换为一条记录(比如异常栈)
	codec => multiline {
		charset => 'GB2312'
		pattern => '^\d{4}'
		negate => true
		what => 'previous'
	}
  }
}

filter {
	grok {
        # 解析输入记录转换为json格式并为每个字段命名
		match => {"message" => "%{TIMESTAMP_ISO8601:timestamp}    %{DATA:level}    %{DATA:thread}    %{DATA:class}    %{DATA:ip}    %{DATA:username}    %{GREEDYDATA:msg}"}
	}
	
	
	date {
		match => ['timestamp', 'yyyy-MM-dd HH:mm:ss.SSS']
		# 使用grok中解析出来的timestamp替换@timestamp
        target => '@timestamp'
        # 删除grok中解析出来的timestamp字段
		remove_field => ['timestamp']
	}
	
}

output {
  # 输出到ES
  elasticsearch {
    hosts => ["http://xxxx:9200"]
    index => "log-%{+YYYY.MM.dd}"
    user => "xxx"
    password => "xxx"
  }
  # debug模式下启用,可以将数据输出到控制台
  stdout {
	codec => json
  }
}

将nssm.exe(结合操作系统位数选择相应的exe)复制到【logstash\bin】目录下,然后在bin目录下执行(注意Arguments需要指定配置文件,比如上面给出来的log-example.conf)

nssm install logstash

 windows环境搭建ELK_第3张图片

 执行成功后,可以在系统服务中查看到相应的服务,直接【启动】服务即可(可以根据需要设置自启)


Filebeat安装、使用(如果只有一个数据流,则不需要使用filebeat,直接上logstash即可)

话不多说,直接提供一个filebeat.yml模板

# ============================== Filebeat inputs ===============================

filebeat.inputs:
- type: log

  # Unique ID among all inputs, an ID is required.
  id: log
  enabled: true
  tail_file: true
  encoding: GB2312
  # 将多行日志转换为一条记录(比如异常栈)
  multiline.pattern: '^\d{4}'
  multiline.negate: true
  multiline.match: after
  paths:
    - D:\logs\project1\*.log
    - D:\logs\project2\*.log

# ============================== Filebeat modules ==============================

filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml

  reload.enabled: false

# ================================== Outputs ===================================

# ------------------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  enabled: true
  hosts: ["xxxx:5044"]

# ================================= Processors =================================
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~
  - add_fields:
      target: '@metadata'
      fields:
        source: 'log'
  - drop_fields:
      fields: ['agent', 'ecs', 'host', 'mac', 'hostname', 'architecture', 'os', 'input', '@timestamp', 'log']

你可能感兴趣的:(运维,开发笔记,ELK)