ELK参数解析,部署

2022-05-20 14:19:23 浏览数 (1)

一.ELK概述

ELK,是由elasticsearch,logstash,kibanna,对日志进行收集,集中处理,并提供可视化web界面的联合搜索,实时分析的解决方案

  1. es(elasticsearch),是由java开发,支持分布式检索和数据分析
  2. logstash,依赖jre运行,数据收集,支持系统,web服务,以及各app产生的log日志,对不同日志类型进行采集,并通过管道pipeline的方式,进行解析,转化成不同格式输出给es
  3. kibana,基于Web界面操作可以快速创建动态仪表板,实时监控Elasticsearch的数据状态与更新

二.ELK软件栈分析

对需要进行数据采集的服务器部署logstash,将采集所需日志转化成event,通过配置文件对event进行筛选过滤,最终以管道格式化输出给es并生成索引,并由kibana提供可视化的Web搜索与分析界面

三.安装部署

环境准备:

192.168.112.68 es

192.168.112.81 logstash

192.168.112.82 kibanna

  • es

系统配置

systemctl stop firewalld

sed -i 's/SELINUX=enforcing/SELINUX=disableb' /etc/selinux/config

cat > /etc/security/limits.conf <<EOF #设置文件最大打开数

* soft nofile 65535

* hard nofile 65535

car > /etc/sysctl.conf << EOF #设置进程映射的VMA(虚拟内存区域)数量

vm.max_map_count=655360

JDK安装

tar xf openjdk-11 28_linux-x64_bin.tar -C /usr/local

mv jdk-11.0.10 jdk11

vim /etc/profile #设置JAVA环境变量

JAVA_HOME=/usr/local/jdk11

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib

export JAVA_HOME PATH CLASSPATH

source /etc/profile

验证:java --version,which java

es部署

将es7.1解压并mv为es

es不能由root用户启动,需要新生成其他用户,并指定授权

groupadd es

useradd es -g es

chown -R es:es /usr/local/es

修改config的elasticsearch.yml 配置文件

cluster.name: zzc #设置集群name

node.name: node-1 #设置节点name

network.host: 0.0.0.0#支持其他主机访问

http.port: 9200 #es默认9200端口

cluster.initial_master_nodes: "node-1" #主节点

切换es

在bin目录下 ./elasticsearch -d 以后台服务运行

如何检测是否运行成功?

启动不报错

lsof -i:9200 #检查端口

web验证

  • logstash

logstash运行也需要java环境,配置同es

对logstash7.11.2解压后mv logstash-7.11.2

有两个配置文件,配置即代码,编排了管道流水线处理流程,logstash,yml、pipelines.yml

yaml格式的文件,描述了任务编排的全流程

管道流水线,input→queue→filter→output

数据采集后以event形式进行批处理,等待队列,过滤筛选,输出到指定端

logstash.yml

node.name: NODE1 #节点描述名称

path.data: /usr/local/logstash-7.11.2/data #logstash及其插件的数据目录

pipeline.id: zzc1 #管道ID名

pipeline.workers: 2 #设置管道过滤以及输出的线程数,cpu可用性好,建议设置成cpu核数,增大并发,可拓展

pipeline.batch.size: 125 #管道批处理event大小,越大传输效率越好,占用内存开销

pipeline.batch.delay: 50 #管道前后处理等待时长

path.config: /usr/local/logstash-7.11.2/conf.d/*.conf #logstash配置文件路径

#http.host: :#监控地址,设置成主机,可以默认不设置

#http.port: #指定#REST端点的端口,可以默认不设置

pipelines.yml 使用多pipe,不同管道最好只执行一个流程,互不影响

  • pipeline.id: zzc #管道id

pipeline.workers: 1 #设置管道过滤以及输出的线程数

pipeline.batch.size: 125 #管道批处理event大小,越大传输效率越好,占用内存开销

queue.type: persisted # 持久化存储,将管道各个stage缓存到磁盘上,防止因宕机,服务掉线等情况,数据丢失

path.config: "/usr/local/logstash-7.11.2/conf.d/zzc1.conf" #指定自定义的conf路径

mkdir conf.d

vim zzc.conf

切换到bin目录下

有两种模式,-f 指定配置文件;直接启动--默认加载pipelines.yml配置

  • kibana

开源免费,能够为es以及logstash提供更直观的可视化Web界面,生成仪表板,进行查询,分析

将kibana-7.11解压后修改配置文件kibana.yml

server.port: 5601 #kibana端口5601

server.host: "0.0.0.0" # 监听本机所有的IP地址

elasticsearch.hosts: "http://192.168.112.68:9200" #修改es地址

i18n.locale: "zh-CN"#转化成中文

启动kibanna:./kibana --allow-root

或者以后台方式启动nohup sh kibanna --allow-root &

检测kibana状态检测kibana状态

四.测试

浏览器输入kibana主机地址:5601

如图

常规报错总结:

1.es进程被锁

lsof -i:9200 查询pid kill 掉再重启服务

2.设置文件最大打开数以及进程映射的虚拟内存区域数

cat > /etc/security/limits.conf <<EOF #设置文件最大打开数

* soft nofile 65535

* hard nofile 65535

car > /etc/sysctl.conf << EOF #设置进程映射的VMA(虚拟内存区域)数量

vm.max_map_count=655360

3.管道配置文件格式或者,语法错误 --

运行logstash服务前,可以 logstash -t 进行配置文件检测

0 人点赞