精华内容
下载资源
问答
  • elk安装
    千次阅读
    2021-12-05 18:37:45

    安装

    参考 Elasticsearch使用 - 简书

    注意事项  elastic 和 kibana的版本尽可能一致,否则会出现问题

    另外,现运行ES。  上面链接的kibana的安装中ES的ip要改成自己的ip

    ES默认端口号:9200  多个es实例时,端口会依次递增9201,9202...

    kibana默认端口号:5601

    kibana在docker中配置文件的位置:

    ES一般要装head插件         ES在docker的默认安装路径仍然是/usr/share/elasticsearch

    docker run -p 9100:9100 mobz/elasticsearch-head:5

    docker容器下载成功并启动以后,运行浏览器打开http://localhost:9100/

    ES的python调用:python-elasticsearch

    python-elasticsearch基本用法 - 做个笔记 - 博客园

    ELasticSearch(五)ES集群原理与搭建 - 杜大帅-Rebirth - 博客园

    更多相关内容
  • CentOS 8 安装ELK 7.x 本次示例使用的是阿里云的机器,系统CentOS8 常见的问题的原因以及处理
  • ELK安装

    千次阅读 2021-11-10 23:00:04
    一、elasticsearch 安装 1.创建普通用户 useradd elk 2.将elasticsearch 解压到/usr./local tar -xvf elasticsearch-5.3.0.tar.gz -C /usr/local/ 3.更改 /usr/local/elasticsearch-5.3.0 文件夹拥有者 chown -R ...

    一、ElaSticsearch 安装

    JDK环境安装参考此文章 https://blog.csdn.net/weixin_47004065/article/details/121110196?spm=1001.2014.3001.5501
    1.创建普通用户

    useradd elk
    

    2.将elasticsearch 解压到/usr./local

    tar -xvf elasticsearch-5.3.0.tar.gz   -C /usr/local/
    

    3.更改 elasticsearch-5.3.0 文件夹拥有者

    chown -R elk.elk /usr/local/elasticsearch-5.3.0 
    

    4.切换到普通用户elk

    su elk
    

    5.修改配置文件elasticsearch.yml 设置监听地址为0.0.0.0

    /usr/local/elasticsearch/config/elasticsearch.yml
    

    在这里插入图片描述

    6.启动 elasticsearch

     /usr/local/elasticsearch-5.3.0/bin/elasticsearch -d
    

    7.查看是否启动成功

    ps -ef|java 
    

    在这里插入图片描述

    8.查看日志文件,发现服务自动停止了

    tail -fn 30 /usr/local/elasticsearch-5.3.0/logs/elasticsearch.log
    

    在这里插入图片描述

    9.ElaSticsearch配置故障演练

    9.1报错1:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
    解决方法:切换到root管理员身份 添加以下2行到limits.conf末行

    vim /etc/security/limits.conf
    
    * soft nofile 65536
    * hard nofile 65536
    

    在这里插入图片描述

    9.2报错2:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
    解决方法:切换到root管理员身份, 添加以下1行到sysctl.conf末行

    vim /etc/sysctl.conf
    
    vm.max_map_count=655360
    

    在这里插入图片描述
    立即生效

    sysctl -p
    

    退出终端重新登录,切换到elk用户启动 elasticsearcheb服务

    /usr/local/elasticsearch/bin/elasticsearch -d
    
    tail -fn 30 /usr/local/elasticsearch-5.3.0/logs/elasticsearch.log
    

    在这里插入图片描述

    二、Kibana WEB安装配置

    1. 将 kibana-5.3.0-linux-x86_64.tar.gz解压到/usr./local
    tar -xvf kibana-5.3.0-linux-x86_64.tar.gz  -C /usr/local/
    
    

    2.修改kibana配置文件信息,设置ES地址:

    vim /usr/local/kibana-5.3.0-linux-x86_64/config/kibana.yml
    

    在这里插入图片描述

    在这里插入图片描述

    3.启动Kibana WEB服务

    nohup  sh /usr/local/kibana-5.3.0-linux-x86_64/bin/kibana &
    

    4.浏览器访问

    http://192.168.2.103:5601/
    

    在这里插入图片描述
    三、Logstash客户端配置
    JDK环境安装参考此文章 https://blog.csdn.net/weixin_47004065/article/details/121110196?spm=1001.2014.3001.5501

    1. 将 logstash-5.3.0.tar.gz解压到/usr./local
    tar -xvf logstash-5.3.0.tar.gz  -C /usr/local/
    
    

    2.ELK收集系统标准日志
    创建收集日志配置目录;

    mkdir  -p  /usr/local/logstash/config/etc/
    
    
    cd /usr/local/logstash/config/etc/
    

    创建ELK整合配置文件:vim jfedu.conf,内容如下:

    input {
     stdin { }
    }
    output {
     stdout {
     codec => rubydebug {}
    }
     elasticsearch {
     hosts => "192.168.2.102:9200" }
    }
    

    启动logstash服务

    nohup /usr/local/logstash-5.3.0/bin/logstash  -f  /usr/local/logstash-5.3.0/config/etc
    /jfedu.conf &
    

    在这里插入图片描述
    3.ELK-WEB日志数据图表
    Logstash启动窗口中输入任意信息后回车,会自动输出相应格式日志信息:
    在这里插入图片描述
    浏览器输入:http://192.168.2.103:5601/

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 按照文档,只需要修改IP地址即可安装部署elk日志系统。
  • ELK安装步骤_Linux

    2019-03-11 15:48:20
    一、 安装 jdk8 tar –zxvf jdk-8u151-linux-x64.tar.gz 创建运行ELK的用户 [root@localhost local]# groupadd elk [root@localhost local]# useradd -g elk elk chown -R elk:elk /elk vi /etc/profile export ES_...
  • ELK安装部署

    2016-05-05 14:27:34
    ELK日志分析和监控的安装和部署
  • elk安装环境搭建(集群)
  • ELK安装文档1

    2022-08-08 20:54:01
    ELK安装文档软件环境:Centos 7.XEKL 6.3.2JDK 1.8.0_181软件下载地址:https://www.elastic.co/downlo
  • elk安装脚本

    2019-02-14 10:13:52
    elk工具自自动化部署安装脚本 一件执行安装非常方便
  • windows环境下,安装配置elk环境,无赘述,直接图文几步操作即可,包含java(springboot-elk继承demo项目源码)。windows环境下,安装配置elk环境,无赘述,直接图文几步操作即可。
  • ELK安装手册

    2018-11-12 17:59:27
    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana。
  • ELK 安装部署(入门必备)

    千次阅读 2020-10-29 20:27:08
    ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。 Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可...

    一、简介

    ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

    Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

    Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

    Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

    官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
    安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/7.x/rpm.html

    二、环境准备

    jdk1.8.0_201(自行百度安装)
    链接: https://pan.baidu.com/s/1XFAeaQp2WTCAYcfJznSKCw 提取码: n8gq

    elasticsearch-7.9.3
    kibana-7.9.3
    logstash-7.9.3
    链接: https://pan.baidu.com/s/1i54lIGVyNSFAj6XIclFraw 提取码: k4sk

    主机三台

    	10.0.128.207
    	10.0.128.208
    	10.0.128.210(主)
    

    每台主机创建目录elk

    	mkdir /opt/elk
    	mkdir /var/log/elk/es7
    	mkdir /data/es7
    

    创建elk用户

    	useradd elk
    

    解压相关文件

    	#三个节点都需要
    	tar -zxf elasticsearch-7.9.3-linux-x86_64.tar.gz  -C /opt/elk/
    	#主节点
    	tar -zxf kibana-7.9.3-linux-x86_64.tar.gz -C /opt/elk/
    	tar -zxf logstash-7.9.3.tar.gz -C /opt/elk/
    	tar -zxf elasticsearch-head-master.tar.gz -C /opt/elk/
    

    修改目录权限

    	chown -R elk:elk /opt/elk
    	chown -R elk:elk /var/log/elk
    	chown -R elk:elk /data/es7
    

    三、开始安装配置

    3.1 安装elasticsearch

    
    #1、修改elasticsearch.yml配置文件
    	vim /opt/elk/elasticsearch-7.9.3/config/elasticsearch.yml
    	# ---------------------------------- Cluster -----------------------------------
    	cluster.name: bigdata-elk
    	# ------------------------------------ Node ------------------------------------
    	node.name: bigdata210
    	# ----------------------------------- Paths ------------------------------------
    	path.data: /data/es7
    	path.logs: /var/log/elk/es7
    	# ---------------------------------- Network -----------------------------------
    	network.host: 0.0.0.0
    	transport.host: 0.0.0.0
    	network.publish_host: 10.0.128.210
    	http.port: 9200
    	# --------------------------------- Discovery ----------------------------------
    	discovery.seed_hosts: ["10.0.128.210", "10.0.128.208","10.0.128.207"]
    	cluster.initial_master_nodes: ["bigdata210", "bigdata208", "bigdata207"]
    	# ---------------------------------- Various -----------------------------------
    	http.cors.enabled: true          
    	http.cors.allow-origin: "*"        
    	bootstrap.memory_lock: false
    	bootstrap.system_call_filter: false
    #2、修改系统参数,不修改可能达到系统瓶颈,导致软件崩溃
    	echo "vm.max_map_count=655360" >> /etc/sysctl.conf
    	sysctl -p
    		报错:sysctl: cannot stat /proc/sys/–p: No such file or directory
    		执行以下命令:
    		1、  modprobe br_netfilter
    	 	2ls /proc/sys/net/bridge
    		3、  sysctl -p
    		
    	vim /etc/security/limits.conf
    	* soft nofile 65536
    	* hard nofile 65536
    	* soft nproc  65536
    	* hard nproc  65536
    	
    	echo "elk     soft    nproc       65536" >> /etc/security/limits.d/20-nproc.conf
    #3、切换用户elk来运行elasticsearch
    	su elk
    	/opt/elk/elasticsearch-7.9.3/bin/elasticsearch -d
    #4、检查elasticsearch状态,如下则表示正常运行
    	[elk@bigdata210 config]$ curl http://10.0.128.210:9200
    	{
    	  "name" : "bigdata210",
    	  "cluster_name" : "bigdata-elk",
    	  "cluster_uuid" : "_na_",
    	  "version" : {
    	    "number" : "7.9.3",
    	    "build_flavor" : "default",
    	    "build_type" : "tar",
    	    "build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868",
    	    "build_date" : "2020-10-16T10:36:16.141335Z",
    	    "build_snapshot" : false,
    	    "lucene_version" : "8.6.2",
    	    "minimum_wire_compatibility_version" : "6.8.0",
    	    "minimum_index_compatibility_version" : "6.0.0-beta1"
    	  },
    	  "tagline" : "You Know, for Search"
    	}
    #5、告警:Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone.
    #在文件elasticsearch.yml中加入下面的配置
    xpack.security.enabled: false
    

    3.2 安装 Logstash

    logstash pipeline 包含两个必须的元素:input和output,和一个可选元素:filter。
    从input读取事件源,(经过filter解析和处理之后),从output输出到目标存储库(elasticsearch或其他)。

    官网:https://www.elastic.co/guide/en/logstash/7.9/index.html
    在这里插入图片描述
    运行一个最基本的logstash测试一下

    	bin/logstash -e 'input {stdin {}} output {stdout {}}'
    

    在这里插入图片描述

    配置读取日志

    vim config/test_file.conf
    input {
        file {
            path => ["/var/log/elk/es7/bigdata-elk.log"]
            type => "bigdata-elk"
        }
    }
    
    
    output {
        elasticsearch {
            hosts => ["10.0.128.210:9200"]
            index => "sbigdata-elk-log-%{+YYY.MM.dd}"
        }
    }
    

    指定配置文件运行logstash

    bin/logstash -f config/test_file.conf &
    netstat -tulnp |grep 9600
    

    在这里插入图片描述
    在这里插入图片描述

    3.3 安装ES插件:elasticsearch-head

    第一种:
    通过chrome安装插件的方式提供一个可操作es的图形化界面
    谷歌浏览器访问http://extb.cqttech.com/search/elasticsearch%2520head
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    第二种:
    1.安装node.js
    官网地址:https://nodejs.org/en/download/
    在这里插入图片描述
    下载解压

    	wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
    	xz -d node-v14.15.0-linux-x64.tar.xz
    	tar -xf node-v14.15.0-linux-x64.tar
    	#或者使用
    	tar -xJf node-v14.15.0-linux-x64.tar
    	#phantomjs 官网	https://phantomjs.org/download.html
    	wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
    	#以下两个如果已经装过可忽略
    	yum -y install bzip2
    	yum -y install fontconfig-devel
    	tar -xvjf  phantomjs-2.1.1-linux-x86_64.tar.bz2
    	
    	#创建软连接
    	ln -s /opt/elk/node-v14.15.0-linux-x64/bin/node /usr/local/bin/node
    	ln -s /opt/elk/node-v14.15.0-linux-x64/bin/npm /usr/local/bin/npm
    	ln -s /opt/elk/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs
    	#查看版本
    	node -v
    	npm -v
    	phantomjs --version
    

    2.安装head插件

    cd /opt/elk/elasticsearch-head
    npm install
    npm run start
    npm run start &
    
    #使用grunt方式启动
    npm install -g grunt-cli
    grunt server &
    
    netstat -tulnp| grep 9100
    

    在这里插入图片描述
    在这里插入图片描述

    3.4 安装kibana

    #修改配置文件
    vim /opt/elk/kibana-7.9.3-linux-x86_64/config/kibana.yml
    server.port: 5601
    server.host: "10.0.128.210"
    server.name: "bigdata-kibana"
    elasticsearch.hosts: ["http://10.0.128.210:9200"]
    logging.dest: /var/log/elk/kibana/kibana.log
    i18n.locale: "zh-CN"
    #创建日志目录
    mkdir /var/log/elk/kibana
    chown -R elk:elk /var/log/elk/kibana
    #启动kibana
    bin/kibana &
    

    访问 http://10.0.128.210:5601/
    在这里插入图片描述

    展开全文
  • ELK安装部署及使用

    千次阅读 2022-03-02 11:45:14
    ELK 的搭建与使用。 elasisearch logstash kibana filebeat

    ELK 日志管理

    ELK是elastic公司提供的一套完整的日志收集及展示的解决方案,是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana 。

    部署elk的目的:
    1.日志数据量大,查询起来慢
    2.分布式或集群部署的项目,系统出现问题时无法快速定位哪台机器出现的问题。通过日志排查问题需要逐个去服务器去查看,排查问题。
    3.能够将日志进行可视化分析。
    4. …

    简单elk架构
    在这里插入图片描述

    部署环境:centos7.6

    Elasticsearch(7.16.2)

    介绍:Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。
    版本:7.16.2
    下载地址:

    https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.2-linux-x86_64.tar.gz  
    

    1.1. 安装启动:

    启动elasticsearch 不能使用root用户,首先创建用户 adduser es
    需要安装java环境。
    创建日志、数据文件夹并赋权限。

    mkdir -p /data/elasticsearch/data
    mkdir -p /data/elasticsearch/logs
    chown -R es:es ${elasticsearchHome}
    chown -R es:es /data/elasticsearch/data
    chown -R es:es /data/elasticsearch/logs
    

    修改配置文件:
    vim ${elasticsearchHome}/config/elasticsearch.yml

    cluster.name: my-application
    node.name: node-1
    path.data: /data/elasticsearch/data
    path.logs: /data/elasticsearch/logs
    network.host: 0.0.0.0
    http.port: 9200
    
    

    设置密码:
    默认账号:elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user
    修改配置文件 vim ${elasticsearchHome}/config/elasticsearch.yml

    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    

    ./elasticsearch-setup-passwords interactive

    注意:elasticsearch 配置密码后,kibana需要安装插件,设置账号密码,否则无法登录。

    启动命令:
    sudo -u es /usr/package/elasticsearch-7.16.2/bin/elasticsearch -d
    实时打印启动日志:
    tail -n 200 -f /data/elasticsearch/logs/my-application.log
    验证:
    直接访问:http://ip:9200/

    1.2. 优化配置:

    设置jvm堆大小:
    默认情况下,Elasticsearch 会根据节点的角色和总内存自动设置 JVM 堆大小。我们建议大多数生产环境使用默认大小。

    如需修改:
    ${elasticsearchHome}/config/jvm.options
    -Xms2g
    -Xmx2g

    1.3. 常见问题:

    1. max virtual memory areas vm.max_map_count [65530] is too low, increase to at
      【修改一个进程可以拥有的VMA(虚拟内存区域)的数量】
      解决办法:
      vim /etc/sysctl.conf 最后增加:
      vm.max_map_count=262144

    执行 sysctl -p

    2.bootstrap check failure [1] of [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
    【每个进程最大同时打开文件数太小,可通过下面2个命令查看当前数量】

    ulimit -Hn
    ulimit -Sn
    

    解决办法:
    vim /etc/security/limits.conf

      soft    nofile          65536
      hard    nofile          65536
    

    Kibana(7.16.2)

    介绍:Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

    也可用于服务器资源的监控,跟Grafana功能类似。
    结合metricbeat 可监测服务器资源
    版本:7.16.2

    下载地址:https://www.elastic.co/cn/downloads/kibana

    2.1.安装

    解压tar.gz

    修改配置:

    server.port: 5601
    server.host: "0.0.0.0"
    elasticsearch.hosts: ["http://127.0.0.1:9200"]
    elasticsearch.username: "kibana_system" # 如果没有账号,则注释掉
    elasticsearch.password: "123456" #
    i18n.locale: "zh-CN"  # 管理界面中文,默认为英文
    

    赋权限:
    chown -R es:es ${kibanaHome}

    创建日志目录:
    mkdir -p /data/kibana/log

    设置账号、密码(如果elasticsearch没有账号密码,可忽略):
    安装插件:

    启动:sudo -u es /usr/package/kibana-7.16.2-linux-x86_64/bin/kibana --allow-root > /data/kibana/log/kibana.log &
    停止:

    kill -9 `lsof -i :5601 -t` 
    

    2.2.kibana的使用

    在elk+filebeat都搭建好并启动后登录kibana,如果没有,先忽略此章节,先完成elk的部署。
    直接访问:http://ip:5601/

    2.2.1索引管理

    启动logstash、filebeat ,收集日志后输出到elasticsearch后, 在【Stack Management- 数据- 索引管理 】模块,可以看到已经创建的索引,并且可以对索引进行基本的删除,查看等操作。

    在这里插入图片描述

    2.2.2 日志分析检索:

    在 Elasticsearch 中有数据。Kibana 需要索引模式来识别您要浏览的数据链、索引和索引别名。索引模式可以指向特定索引(例如昨天的日志数据),或包含日志数据的所有索引。
    1.在 【Management —— Stack Management —— kibana - 索引模式】 创建索引模式。
    2.在 【Analytics-Discover】中可以针对不同的索引模式进行日志数据的检索,并可以设置不同的查询条件。

    在这里插入图片描述

    2.3.常见问题

    1.启动时报错
    TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block
    可能原因:Elasticsearch 所在服务器,磁盘空间不足,扩容后可解决。

    Logstash(7.16.2)

    介绍:
    Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中。

    Logstash事件处理有三个阶段:inputs→filters→outputs。
    是一个接收,处理,转发日志的工具。支持系统日志,webserver日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。

    版本:7.16.2
    下载地址:https://www.elastic.co/cn/downloads/logstash
    说明文档:https://www.elastic.co/guide/en/logstash/7.16/getting-started-with-logstash.html

    3.1.安装

    修改配置文件:
    vim ${LogstashHome}/config/logstash.yml

    vim ${LogstashHome}/config/logstash.conf
    必须存在配置,不然启动报错。
    配置参考:

    使用logstash收集服务器日志文件配置:

    input {
      file {
        path => "/root/logs/qgzhdc-px-data-node/common-error.log"
        type => "qgzhdc-common-error-data"
        start_position =>"beginning"
         # start_interval =>"2"
      }
      file {
        path => "/root/logs/qgzhdc-statistics-node/common-error.log"
        type => "qgzhdc-common-error-statistics"
        start_position =>"beginning"
      }
    }
    output {
      if [type] == "qgzhdc-common-error-data"{
        elasticsearch {
          hosts => ["172.16.100.156:9200"]
          index => "qgzhdc-common-error-data-%{+YYYY.MM.dd}"
        }
      }
      if [type] == "qgzhdc-common-error-statistics"{
        elasticsearch {
          hosts => ["172.16.100.156:9200"]
          index => "qgzhdc-common-error-statistics-%{+YYYY.MM.dd}"
        }
      }
    }
    

    使用filebeat收集日志,logstash处理日志

    input {
     beats {
        port => 5044
        type => "filebeat"
        client_inactivity_timeout => 36000
      }
    }
    filter {
      # 拾取日志文件中的日期
      grok{
          match =>{"message"=>"%{TIMESTAMP_ISO8601:qgzhdc_log_create_time}"}
         }
    }
    output {
     if [type] == "filebeat"{
        elasticsearch {
          user => "elastic" 
          password => "123456"
          hosts => ["172.16.100.156:9200"]
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
        }
      }
    }
    
    

    3.2.启动

    默认端口 9600

    /usr/package/logstash-7.16.2/bin/logstash -f /usr/package/logstash-7.16.2/config/logstash.conf &
    

    停止:ps -ef | grep logstash ,然后kill -9 [查询到的端口]

    或者将logstash 安装为服务,使用 systemctl 去管理:

    1. 修改 /usr/package/logstash-7.16.2/config/startup.conf

    配置: 详见 附录配置startup.conf

    执行 ${logstashHome}/bin/system-install

    systemctl 管理服务:
    启动 :systemctl start logstash
    停止:systemctl stop logstash
    查看启动状态: systemctl status logstash -l

    注意:
    目前存在问题,使用systemctl 没有去使用指定的配置文件,可以去修改
    vim /etc/systemd/system/logstash.service
    中的 ExecStart参数。 完整的如下。
    配置: 详见 附录配置logstash.service

    Filebeats(7.16.2)

    介绍:Filebeat 是一个用于转发和集中日志数据的轻量级传送器。作为代理安装在您的服务器上,Filebeat 监控您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash以进行索引。

    Filebeat包含两个主要的组件:inputs和harvesters。这些组件协同工作把变化的文件发送到指定的输出中。

    工作原理:
    https://www.elastic.co/guide/en/beats/filebeat/7.16/how-filebeat-works.html
    当启动filebeat时,它会启动一个或多个inputs(输入),这些inputs会去您指定的目录中查询日志数据。对于 Filebeat 定位的每个日志,filebeat都会启动一个harvester(收割机)。每个harvester 读取单个日志以获取新内容并将新日志数据发送到libbeat,libbeat 聚合事件并将聚合数据发送到您为Filebeat 配置的输出。
    请添加图片描述

    4.1.安装

    版本:7.16.2
    下载地址:

    详细配置参考: 详见 附录配置filebeat.yml

    4.2.启动

    ./filebeat -e

    4.3 配置:

    https://www.elastic.co/guide/en/beats/filebeat/7.16/configuring-howto-filebeat.html

    4.3.1 配置inputs

    filebeats 可以配置多个输入,并且有许多输入方式,并且可以多次指定相同的输入类型。
    可使用的type 有:
    [AWS CloudWatch,AWS S3,Azure Event Hub,Cloud Foundry,Container,Docker,filestream,GCP Pub/Sub,HTTP Endpoint,HTTP JSON,journald,Kafka,Log,MQTT,NetFlow,Office 365 Management Activity API,Redis,Stdin,Syslog,TCP,UDP]

    这里我们使用filestream,使用filebeats读取服务器中的日志文件。

    filebeat.inputs:
    # 第一个输入
    - type: filestream
    #是否启用
      enabled: true
      # 自定义标签
      tags: ["qgzhdc-px-data-node"]
      # 收集日志的文件路径,可以使用通配附*等
      paths:
        - /root/logs/qgzhdc-px-data-node/qgzhdc-px-data-node-web.log.2022-02-28
      # fields 自定义字段与值,这个在检索日志时使用,会给每条日志增加此key与value,能够标识出日志来源。
      fields:
        qgzhdc_project_name: qgzhdc-px-data-node
        qgzhdc_hostip: myiptest
      # fields_under_root如果为false,则fields下的key会挂到fields下,true的话  
      fields_under_root: true
    # 第二个输入
    - type: filestream
      enabled: true
      tags: ["qgzhdc-px-import-node"]
      paths:
        - /root/logs/qgzhdc-px-import-node/common-error.log.2022-03-01
      fields:
        qgzhdc_project_name: qgzhdc-px-import-node
        qgzhdc_hostip: myiptest
      fields_under_root: false
    
    多行日志合并

    multiline.type
    定义要使用的合并方法。默认值为pattern. 另一个选项是count让您合并固定数量的行。
    multiline.pattern
    指定要匹配的正则表达式模式。根据您配置其他多行选项的方式,与指定正则表达式匹配的行被视为前一行的延续或新多行事件的开始。您可以设置negate选项来否定模式。
    multiline.negate
    定义模式是否被否定。默认值为false.
    multiline.match
    指定 Filebeat 如何将匹配的行组合成一个事件。设置为after或before。这些设置的行为取决于您指定的内容negate:

    在这里插入图片描述

    eg:![
    匹配不以时间开头的合并到以时间开头的日志之后。

    filebeat.inputs:
       parsers:
          - multiline:
              type: pattern
              pattern: ^\[?[0-9]{4}-[0-9][0-9]?-[0-9][0-9]?
              negate: true
              match: after
              timeout: 10s
    

    4.3.2 全局、常规配置General settings(tags,fields,fields_under_root…)

    其分为全局配置与常规配置。

    常规设置:
    所有 Elastic Beat 都支持常规配置。由于它们是常用选项,因此它们不带命名空间。
    常规配置会在整个启动的filebeat中生效。

    # ================================== General ===================================
    tags: ["nginx"]
    fields:
      gxsn_project_name: nginx-157test
    fields_under_root: true
    

    fields_under_root:
    fields_under_root为true时,字段直接为gxsn_project_name,否则是fields.gxsn_project_name
    在这里插入图片描述
    自定义标签 tags :
    tags: ["qgzhdc-px-data-node"]
    在logstash中可以通过此标签值去创建不同的索引名。下面是logstash的output配置。
    eg:

    output {
      if [type] == "filebeat"{
        if "qgzhdc-px-data-node" in [tags]{
        elasticsearch {
          user => "elastic"
          password => "123456"
          hosts => ["172.16.101.12:9200"]
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-data-%{+YYYY.MM.dd}"
        }
       }
        if "qgzhdc-px-import-node" in [tags]{
         elasticsearch {
          user => "elastic"
          password => "123456"
          hosts => ["172.16.101.12:9200"]
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-import-%{+YYYY.MM.dd}"
        }
       }
      }
    }
    
    

    4.3.3 配置modules

    使用modules ,使用nginx测试。

    查看所有modules filebeat modules list
    启用某个模块: filebeat modules enable nginx
    关闭某个模块: filebeat modules disable nginx

    启用模块后,这里可以看到 ${filebeatHome}/modules.d 目录中nginx.yml.disabled 文件变为了 nginx.yml, 然后修改nginx.yml。
    修改 filebeat.yml ,reload.enabled:true。

    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: true
    setup.kibana:
       host: "ip:5601"
    

    设置初始环境需要连接到elasticsearch (或 elasticsearch Service)
    如果output为 elasticsearch,可直接执行 filebeat setup -e,执行成功后会自动生成一些 index template(索引模板)、dashboards(仪表板),ingest pipelines(摄取管道)可直接使用。

    如果output是其他的输出(例如logstash ):
    手动加载索引模板:./filebeat setup --index-management -E output.logstash.enabled=false -E 'output.elasticsearch.hosts=["localhost:9200"]'
    加载Kibana 仪表板:filebeat setup --dashboards
    加载摄取管道:./filebeat setup --pipelines --modules system,nginx,mysql (注:执行这个时,需要将filebeat.yml中的output 先调整到elasticsearch,之后在调增回logstash)

    在filebeat引入摄取管道(pipelines)时,并且配合logstash使用时,logstash需要特殊配置,logstash.yml:

    input {
      beats {
        port => 5044
      }
    }
    
    output {
      if [@metadata][pipeline] {
        elasticsearch {
          hosts => "host"
          manage_template => false
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
          pipeline => "%{[@metadata][pipeline]}" 
          user => "elastic"
          password => "secret"
        }
      } else {
        elasticsearch {
          hosts => "host"
          manage_template => false
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
          user => "elastic"
          password => "secret"
        }
      }
    }
    

    在这里插入图片描述
    在这里插入图片描述

    4.3.2 配置 output

    只能设置一个输出。输出类型有
    在这里插入图片描述

    直接输出到logstash:

    output.logstash:
      hosts: ["ip:5044"]
      index: filebeat-ip
    

    输出到elasticsearch:

    output.elasticsearch:
     hosts: ["ip:9200"]
      username: "elastic"
      password: "123456"
      indices:
        - index: "nginx157-warn-%{+yyyy.MM.dd}"
          when.contains:
            message: "WARN"
        - index: "nginx157-error-%{+yyyy.MM.dd}"
          when.contains:
            message: "ERR"
    

    附录:

    Elasticsearch:

    Elasticsearch可视化工具
    http://mobz.github.io/elasticsearch-head

    elasticsearch-head:插件安装

    0.x,1.x,2.x 支持在elasticsearch 中以插件形式安装:
    ./elasticsearch-plugin install -h  查看可以安装的插件
    
    1.elasticsearch/bin/plugin -install mobz/elasticsearch-head
    2.运行es
    3.打开http://ip:9200/_plugin/head/
    

    5.x 版本不支持插件安装,只能单独启动一个服务:
    • git clone git://github.com/mobz/elasticsearch-head.git
    • cd elasticsearch-head
    • npm install
    • npm run start
    open http://localhost:9100/
    `

    Elasticsearch常用操作:
    查询集群是否健康:
    curl ‘ip:port/_cat/health?v’
    查询所有节点:
    curl ‘ip:port/_cat/nodes?v’
    查询所有索引
    curl ‘ip:port/_cat/health?v’
    创建索引
    curl -XPUT ‘ip:port/yangzhtest_index?pretty’
    插入数据
    插入数据为 {“name”:”yangzh”}
    curl -XPUT ‘ip:port/yangzhtest_index/external/1?pretty’ -d ‘{“name”:”yangzh”}’
    需要加上请求头,不然报错
    curl -H “Content-Type:application/json” -XPUT ‘ip:port/yangzhtest_index/external/1?pretty’ -d ‘{“name”:“yangzh”}’
    获取数据:
    curl -XGET ‘ip:port/yangzhtest_index/external/1?pretty’
    删除数据:
    curl -XDELETE ‘ip:port/yangzhtest_index/external/1?pretty’
    删除索引:
    curl -XDELETE ip:port/qgzhdc-*

    配置文件

    logstash_startup.conf

    startup.conf

    # Set a home directory
    LS_HOME=/usr/package/logstash-7.16.2
    
    # logstash settings directory, the path which contains logstash.yml
    LS_SETTINGS_DIR=/usr/package/logstash-7.16.2/config/
    
    # Arguments to pass to logstash
    LS_OPTS="--path.settings ${LS_SETTINGS_DIR}"
    
    # Arguments to pass to java
    LS_JAVA_OPTS=""
    
    # pidfiles aren't used the same way for upstart and systemd; this is for sysv users.
    LS_PIDFILE=/var/run/logstash.pid
    
    # user and group id to be invoked as
    LS_USER=root
    LS_GROUP=root
    
    # Enable GC logging by uncommenting the appropriate lines in the GC logging
    # section in jvm.options
    LS_GC_LOG_FILE=/var/log/logstash/gc.log
    
    # Open file limit
    LS_OPEN_FILES=16384
    
    # Nice level
    LS_NICE=19
    
    # Change these to have the init script named and described differently
    # This is useful when running multiple instances of Logstash on the same
    # physical box or vm
    SERVICE_NAME="logstash"
    SERVICE_DESCRIPTION="logstash"
    
    # If you need to run a command or script before launching Logstash, put it
    # between the lines beginning with `read` and `EOM`, and uncomment those lines.
    ###
    ## read -r -d '' PRESTART << EOM
    ## EOM
    
    

    logstash.service

    logstash.service

    [Unit]
    Description=logstash
    
    [Service]
    Type=simple
    User=root
    Group=root
    # Load env vars from /etc/default/ and /etc/sysconfig/ if they exist.
    # Prefixing the path with '-' makes it try to load, but if the file doesn't
    # exist, it continues onward.
    EnvironmentFile=-/usr/package/logstash-7.16.2
    EnvironmentFile=-/usr/package/logstash-7.16.2
    ExecStart=/usr/package/logstash-7.16.2/bin/logstash "--path.settings" "/usr/package/logstash-7.16.2/config/" -f "/usr/package/logstash-7.16.2/config/logstash.conf"
    Restart=always
    WorkingDirectory=/usr/package/logstash-7.16.2
    Nice=19
    LimitNOFILE=16384
    
    # When stopping, how long to wait before giving up and sending SIGKILL?
    # Keep in mind that SIGKILL on a process can cause data loss.
    TimeoutStopSec=infinity
    
    [Install]
    WantedBy=multi-user.target
    
    

    filebeat.yml

    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.
    
    # filestream is an input for collecting log messages from files.
    - type: filestream
    
      # Change to true to enable this input configuration.
      enabled: true
    
      # Paths that should be crawled and fetched. Glob based paths.
      paths:
        - /root/logs/qgzhdc-px-data-node/qgzhdc-px-data-node-web.log.2022-02-28
      # fields 自定义字段与值
      fields:
        qgzhdc_project_name: qgzhdc-px-data-node
        qgzhdc_hostip: myiptest
       
    - type: filestream
      enabled: true
      paths:
        - /root/logs/qgzhdc-px-import-node/common-error.log.2022-03-01
      fields:
        qgzhdc_project_name: qgzhdc-px-import-node
        qgzhdc_hostip: myiptest
      # Exclude lines. A list of regular expressions to match. It drops the lines that are
      # matching any regular expression from the list.
      #exclude_lines: ['^DBG']
    
      # Include lines. A list of regular expressions to match. It exports the lines that are
      # matching any regular expression from the list.
      #include_lines: ['^ERR', '^WARN']
    
      # Exclude files. A list of regular expressions to match. Filebeat drops the files that
      # are matching any regular expression from the list. By default, no files are dropped.
    #prospector.scanner.exclude_files: ['.gz$']
    
      # Optional additional fields. These fields can be freely picked
      # to add additional information to the crawled log files for filtering
      #fields:
      #  level: debug
      #  review: 1
    
    # ============================== 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
    
      # Period on which files under path should be checked for changes
      #reload.period: 10s
    
    # ======================= Elasticsearch template setting =======================
    
    setup.template.settings:
      index.number_of_shards: 1
      #index.codec: best_compression
      #_source.enabled: false
    
    
    # ================================== General ===================================
    
    # The name of the shipper that publishes the network data. It can be used to group
    # all the transactions sent by a single shipper in the web interface.
    #name:
    
    # The tags of the shipper are included in their own field with each
    # transaction published.
    #tags: ["service-X", "web-tier"]
    
    # Optional fields that you can specify to add additional information to the
    # output.
    #fields:
    #  env: staging
    
    # ================================= Dashboards =================================
    # These settings control loading the sample dashboards to the Kibana index. Loading
    # the dashboards is disabled by default and can be enabled either by setting the
    # options here or by using the `setup` command.
    #setup.dashboards.enabled: false
    
    # The URL from where to download the dashboards archive. By default this URL
    # has a value which is computed based on the Beat name and version. For released
    # versions, this URL points to the dashboard archive on the artifacts.elastic.co
    # website.
    #setup.dashboards.url:
    # =================================== Kibana ===================================
    
    # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
    # This requires a Kibana endpoint configuration.
    setup.kibana:
    
      # Kibana Host
      # Scheme and port can be left out and will be set to the default (http and 5601)
      # In case you specify and additional path, the scheme is required: http://localhost:5601/path
      # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
      #host: "localhost:5601"
    
      # Kibana Space ID
      # ID of the Kibana Space into which the dashboards should be loaded. By default,
      # the Default Space will be used.
      #space.id:
    
    # =============================== Elastic Cloud ================================
    
    # These settings simplify using Filebeat with the Elastic Cloud (https://cloud.elastic.co/).
    
    # The cloud.id setting overwrites the `output.elasticsearch.hosts` and
    # `setup.kibana.host` options.
    # You can find the `cloud.id` in the Elastic Cloud web UI.
    #cloud.id:
    
    # The cloud.auth setting overwrites the `output.elasticsearch.username` and
    # `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
    #cloud.auth:
    
    # ================================== Outputs ===================================
    
    # Configure what output to use when sending the data collected by the beat.
    
    # ---------------------------- Elasticsearch Output ----------------------------
    #output.elasticsearch:
      # Array of hosts to connect to.
    # hosts: ["localhost:9200"]
    
      # Protocol - either `http` (default) or `https`.
      #protocol: "https"
    
      # Authentication credentials - either API key or username/password.
      #api_key: "id:api_key"
      #username: "elastic"
      #password: "changeme"
    
    # ------------------------------ Logstash Output -------------------------------
    output.logstash:
      # The Logstash hosts
      hosts: ["172.16.100.156:5044"]
    
      # Optional SSL. By default is off.
      # List of root certificates for HTTPS server verifications
      #ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]
    
     # Certificate for SSL client authentication
      #ssl.certificate: "/etc/pki/client/cert.pem"
    
      # Client Certificate Key
      #ssl.key: "/etc/pki/client/cert.key"
    
    # ================================= Processors =================================
    processors:
      - add_host_metadata:
          when.not.contains.tags: forwarded
      - add_cloud_metadata: ~
      - add_docker_metadata: ~
      - add_kubernetes_metadata: ~
    
    # ================================== Logging ===================================
    
    # Sets log level. The default log level is info.
    # Available log levels are: error, warning, info, debug
    #logging.level: debug
    
    # At debug level, you can selectively enable logging only for some components.
    # To enable all selectors use ["*"]. Examples of other selectors are "beat",
    # "publisher", "service".
    #logging.selectors: ["*"]
    
    # ============================= X-Pack Monitoring ==============================
    # Filebeat can export internal metrics to a central Elasticsearch monitoring
    # cluster.  This requires xpack monitoring to be enabled in Elasticsearch.  The
    # reporting is disabled by default.
    
    # Set to true to enable the monitoring reporter.
    #monitoring.enabled: false
    
    # Sets the UUID of the Elasticsearch cluster under which monitoring data for this
    # Filebeat instance will appear in the Stack Monitoring UI. If output.elasticsearch
    # is enabled, the UUID is derived from the Elasticsearch cluster referenced by output.elasticsearch.
    #monitoring.cluster_uuid:
    
    # Uncomment to send the metrics to Elasticsearch. Most settings from the
    # Elasticsearch output are accepted here as well.
    # Note that the settings should point to your Elasticsearch *monitoring* cluster.
    # Any setting that is not set is automatically inherited from the Elasticsearch
    # output configuration, so if you have the Elasticsearch output configured such
    # that it is pointing to your Elasticsearch monitoring cluster, you can simply
    # uncomment the following line.
    #monitoring.elasticsearch:
    
    # ============================== Instrumentation ===============================
    
    # Instrumentation support for the filebeat.
    #instrumentation:
        # Set to true to enable instrumentation of filebeat.
     #enabled: false
    
        # Environment in which filebeat is running on (eg: staging, production, etc.)
        #environment: ""
    
        # APM Server hosts to report instrumentation results to.
        #hosts:
        #  - http://localhost:8200
    
        # API Key for the APM Server(s).
        # If api_key is set then secret_token will be ignored.
        #api_key:
    
        # Secret token for the APM Server(s).
        #secret_token:
    
    
    # ================================= Migration ==================================
    
    # This allows to enable 6.7 migration aliases
    #migration.6_to_7.enabled: true
    
    
    
    展开全文
  • elk安装部署linux环境(亲测有效)

    千次阅读 2022-03-21 14:41:02
    很早安装了,过来记录下。 一、ELK简介: ELK 是三个开源框架的简写,分别是:Elasticsearch、Logstash、Kibana 。 框架 简介 作用 Elasticsearch 开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、...
  • elk 安装

    千次阅读 2016-09-21 10:55:57
    还有一种elk架构使用redis作为broker来接收logstash收集到的数据,之后进行indexer,这是高数量情况下的首选,redis会担当一个消息队列的角色。 logstash配置文件配置文档:...
  • ELK安装部署搭建

    千次阅读 2022-01-20 15:01:24
    一、ELKStack简介 -- 日志分析管理(都是Java架构 -- 需要JDK底层) 什么是ELK?通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件组成的一个组合体,这三个软件当中,每个软件用于完成不同的功能,...
  • 本文安装内容包括:elasticsearch、elasticsearch-head、kibana、logstash 安装包链接地址:https://www.elastic.co/cn/downloads/ 一、ELK ELK一般指的是elasticsearch、logstash、kibana三个组件的组合。其中...
  • ELK安装配置文档,ElasticSearch、Logstash 和 Kibana
  • ELK 安装文档

    2018-12-18 15:37:42
    详细的ELK安装文档,轻松搞定日志监控。快点入手吧!
  • ELK安装测试操作

    2021-09-21 16:24:21
    ELK学习 一、是什么 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他...
  • ELK安装以及环境配置

    2018-02-06 18:25:07
    ELK安装以及环境配置,通过在前端配置日志收集软件,将应用日志传输到ELK系统进行过滤、索引、展示,方便开发人员查看日志快速定位问题原因
  • ELK安装文档 - 副本.doc

    2021-02-07 15:55:45
    ELK安装文档 - 副本.doc
  • ELK安装及多日志文件收集配置-windows

    万次阅读 2021-12-01 09:58:27
    ES7 安装 1.解压文件 elasticsearch-7.15.1-windows-x86_64.zip 2.将ES做成服务 cmd 进入bin目录执行命令elasticsearch-service.bat install 3.任务管理器启动 4.浏览器 访问 http://127.0.0.1:9200 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 30,045
精华内容 12,018
关键字:

elk安装