ELK分开部署

ELK部署

 

一 Elasticsearch部署

单点部署

目录

ELK部署

一 Elasticsearch部署

单点部署

集群部署

二 部署Kibana

部署

三 部署Filebeat

配置输出    /usr/local/filebeat/filebeat.yml

四 部署logstash


Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

1.下载压缩包

链接:https://pan.baidu.com/s/1SHBpnI3dmihYioWEW1zArg 
提取码:mbk3 
复制这段内容后打开百度网盘手机App,操作更方便哦

2.解压

tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/

3.目录介绍


 

4.运行

运行 Elasticsearch 要求使用非 root 用户,所以需要建立一个普通的用户来运行 Elasticsearch.

useradd ela

chown  -R  ela.ela  /usr/local/elasticsearch-7.10.0
cd /usr/local/elasticsearch-7.10.0

./bin/elasticsearch

以后台方式运行可以使用 -d 参数

5.查看状态

 

集群部署

Elasticsearch 集群是一个多节点组成的高可用可扩展的分布式系统

1.在每个节点创建用户ela

useradd ela

2.在每个节点上解压到指定目录

tar -xf elasticsearch-7.10.0-linux-x86_64.tar.gz -C /usr/local/

3.在每个节点修改主目录的属主和目录

 chown  -R ela.ela  /usr/local/elasticsearch-7.10.0

4.设置内核参数

sysctl -w vm.max_map_count=262144 > /etc/sysctl.conf
sysctl -p

/etc/security/limits.conf   添加

* soft nofile 65536

* hard nofile 131072

* soft nproc 2048

* hard nproc 4096

5.设置节点集群参数

cluster.name: elk
node.name: ela1
node.data: true
network.host: 0.0.0.0
http.port: 9200

discovery.seed_hosts:
   - ela1
   - 192.168.122.106:9300
   - 192.168.122.218
cluster.initial_master_nodes: ["ela1", "ela2", "ela3"]
​​​​

参数说明

cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
network.host 绑定节点IP。
http.port 监听端口。
path.data 数据存储目录。
path.logs 日志存储目录。
discovery.seed_hosts 指定集群成员,用于主动发现他们,所有成员都要写进来,包括自己,每个节点中应该写一样的信息。
cluster.initial_master_nodes 指定有资格成为 master 的节点
http.cors.enabled 用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。

6.启动集群

切换用户 

su - ela

cd /usr/local/elasticsearch-7.10.0

./bin/elasticsearch -d -p /tmp/elasticsearch.pid

-d 后台运行
-p 指定一个文件,用于存放进程的 pid

7.日志

ls logs/elk.log

8.查看集群健康状态

curl -X GET "localhost:9200/_cat/health?v"

  • 黄色 如果您仅运行单个Elasticsearch实例,则集群状态将保持黄色。单
    节点群集具有完整的功能,但是无法将数据复制到另一个节点以提供弹性。
  • 绿色 副本分片必须可用,群集状态为绿色。
  • 红色 如果群集状态为红色,则某些数据不可用。

9.查看集群节点信息

curl -X GET "localhost:9200/_cat/nodes?v"

排错

# 找到进程
[ela@ela1 elasticsearch-7.10.0]$ jdk/bin/jps
8244 Jps
7526 Elasticsearch

# 杀死进程
[ela@ela1 elasticsearch-7.10.0]$ kill -9 7526

# 删除数据目录中的所有文件
[ela@ela1 elasticsearch-7.10.0]$ rm -rf data/*

# 删除 keystore 文件
[ela@ela1 elasticsearch-7.10.0]$ rm -rf config/elasticsearch.keystore

# 重新启动进程
[ela@ela1 elasticsearch-7.10.0]$ bin/elasticsearch -d -p /tmp/elk.pid
 

二 部署Kibana

 搜索,观察和保护。 从发现文档到分析日志再到发现安全漏洞,Kibana是您访问这些功能及其他功能的门户。

2 可视化和分析您的数据。 搜索隐藏的见解,可视化您在图表,仪表,地图等中找到的内容,并将其组合在仪表板中。

3 管理,监视和保护弹性堆栈。 管理索引和提取管道,监视Elastic Stack集群的运行状况,并控制哪些用户可以访问哪些功能。
 

部署

1.下载解压

链接:https://pan.baidu.com/s/14VNbDpsTkXjqwGSuNn9KKg 
提取码:ir95 
复制这段内容后打开百度网盘手机App,操作更方便哦

tar xzvf kibana-7.10.1-linux-x86_64.tar.gz -C /usr/local/

2.创建软连接

ln -s  /usr/local/kibana-7.10.0-linux-x86_64  /usr/local/kibana

1.配置主配置文件

/usr/local/kibana/config/kibana.yml

# 监听端口,默认端口是 5601
server.port: 5601

# 自己的监听地址
server.host: "0.0.0.0"

# 用于连接到 ES 集群的地址和端口
elasticsearch.hosts: ["http://es01:9200"]

# pid 文件路径(可选的配置)
pid.file: /var/run/kibana/kibana.pid

# 日志文件路径(可选的配置),默认是输出到标准输出(也就是终端屏幕)
# logging.dest: stdout 
logging.dest: /var/log/kibana/kibana.log

# 设置页面的字体为中文
i18n.locale: "zh-CN"

2.创建普通用户 受权

useradd ela

mkdir /var/run/kibana  /var/log/kibana/
chown ela.ela /var/run/kibana /var/log/kibana/

chown ela.ela kibana/ -R   安装目录授权

3.切换普通用户登录

/usr/local/kibana/bin/kibana

nohup /usr/local/kibana/bin/kibana &  后台运行

 /usr/local/kibana/bin/kibana  --allow-root   使用root登录
4.访问

http://ip:5601 登录

三 部署Filebeat

可以使用 Filebeat 收集各种日志,之后发送到指定的目标系统上,但是同一时间只能配置一个输出目标

Filebeat使用模块来收集和解析日志数据。

1.安装

链接:https://pan.baidu.com/s/1b6IuKRG7mEeNce0tFfJtYw 
提取码:wpya 
复制这段内容后打开百度网盘手机App,操作更方便哦

tar xzvf filebeat-7.10.1-linux-x86_64.tar.gz -C /usr/local/

2.查看可以启动模块

tar xzvf filebeat-7.10.1-linux-x86_64.tar.gz -C /usr/local/

模块存放位置 /usr/local/filebeat/modules.d/

3.禁用模块使用

/usr/local/filebeat/filebeat modules disable 模块名

4.启用模块使用如下命令:

/usr/local/filebeat/filebeat modules enable  模块名

配置输出    /usr/local/filebeat/filebeat.yml

这些 output可以是:

  • console 终端屏幕
  • elasticsearch 存放日志,并提供查询
  • logstash 进一步对日志数据进行处理
  • kafka 消息队列

5.启动

./filebeat   前台启动

./filebeat -c /usr/local/filebeat/filebeat.yml   -c 自定4配置文件路径

nohup  ./filebeat &    后台启动

systemd 启动

/usr/lib/systemd/system/filebeat.service

[Unit]
Description=Filebeat sends log files to Logstash or directly to Elasticsearch.
Wants=network-online.target
After=network-online.target

[Service]

ExecStart=/usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
Restart=always

[Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl start filebeat

6.使用processors处理过滤和增添数据
 配置文件 filebeat.yml

删除所有以 DBG: 开头的行

processors:
  - drop_event:
      when:
        regexp:
          message: "^DBG:"

 向输出的数据中添加某些自定义字段

processors:
  - add_fields:
      target: project
      fields:
        name: myproject
        id: '574734885120952459'

condition 是一个条件,当条件满足时,才会删除定义的字段。这个是可选的,不设置条件,则会都删除。

以上配置,将删除字段: field1 和 field2

ignore_missing 的值为 false 表示,字段名不存在则会返回错误。为 true 不会返回错误。

四 部署logstash

Logstash管道具有两个必需元素input和output,以及一个可选元素filter。输入插件使用来自源的数据,过滤器插件根据您的指定修改数据,输出插件将数据写入目标

1.安装

链接:https://pan.baidu.com/s/1waatYJKfImQfshPjhYIPeA 
提取码:p1yv 
复制这段内容后打开百度网盘手机App,操作更方便哦

2.启动

bin/logstash -e " "

-e '' 这里使用了空字符串等同于使用 -e input { stdin { type => stdin } } output { stdout { codec => rubydebug } }

input { stdin { type => stdin } } 表示 Logstash 需要处理的数据来源来自于标准输入设备(键盘)

output { stdout { codec => rubydebug } } 表示 Logstash 把处理好的数据输出到标准输出设备(屏幕,也就是终端


message 字段对应的值是 Logstash 接收到的一行完整的数据
@version 是版本信息,可以用于建立索引使用(后面会讲)
@timestamp 处理此数据的时间戳,可以用于建立索引和搜索
type 就是之前 input 中设置的值,这个值可以任意修改,但是,type 是内置的变量,不能修改,用于建立索引和条件判断等
hosts 表示从那个主机过来的数据

3.配置输入和输出

first-pipeline.conf

input { 
    stdin { } 

output { 
    stdout {} 
}

bin/logstash -f first-pipeline.conf --config.test_and_exit
-f 用于指定管道配置文件。

4.使用Grok过滤器插件解析Web日志

使用grok过滤器插件,您可以将非结构化日志数据解析为结构化和可查询的内容。

grok 过滤插件,会根据你感兴趣的内容分配字段名称,并把这些内容和对应的字段名称进行绑定。

grok 如何知道哪些内容是你感兴趣的呢?它是通过自己预定义的模式来识别感兴趣的字段的

input {
  file {
    path => "/usr/local/logstash/access_log"
    start_position => "beginning"
  }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
}

output {
  stdout {
     codec => rubydebug
  }
}
 

match => { "message" => "%{COMBINEDAPACHELOG}"} 的意思是:
当匹配到 “message” 字段时,用户模式 “COMBINEDAPACHELOG}” 进行字段映射

remove_filed 来移除这个字段。
事实上 remove_field 可以移除任意的字段,它可以接收的值是一个数组。

input {
  file {
    path => "/usr/local/logstash/access_log"
    start_position => "beginning"
  }
}

filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
        remove_field => [ "message" ]
    }
}

output {
  stdout { codec => rubydebug }
}
 

5.使用Geoip过滤器插件增强数据编辑

该geoip插件配置要求您指定包含IP地址来查找源字段的名称


input {
  file {
    path => "/usr/local/logstash/access_log"
    start_position => "beginning"
  }
}
 filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
    geoip {
        source => "clientip"
    }
}
output {
    stdout { codec => rubydebug }
}

 

 

 

 

 

 




 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值