热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ELK之二kibana部署及logstash单(多)日志收集

一、安装部署Kibana插件Kibana官网下载地址:https:www.elastic.cocndownloadspast-releases#kibana1、介

一、安装部署Kibana插件

Kibana官网下载地址:https://www.elastic.co/cn/downloads/past-releases#kibana

1、介绍

kibana 是您走进 Elastic Stack 的窗口,Kibana 让您能够可视化 Elasticsearch 中的数据并操作Elastic Stack,因此您可以在这里解开任何疑问:例如,为何会在凌晨 2:00 被传呼,雨水会对季度数据造成怎样的影响。

① 一张图片胜过千万行日志

  Kibana 让您能够***地选择如何呈现您的数据。或许您一开始并不知道自己想要什么。不过借助Kibana 的交互式可视化,您可以先从一个问题出发,看看能够从中发现些什么。

② 从基础入手

  Kibana 核心搭载了一批经典功能:柱状图、线状图、饼图、环形图,等等。它们充分利用了Elasticsearch 的聚合功能。

③ 将地理数据融入任何地图

  利用我们的 Elastic Maps Services 来实现地理空间数据的可视化,或者发挥创意,在您自己的地图上实现自定义位置数据的可视化。

④ 时间序列也在菜单之列

  您可以利用 Timelion,对您 Elasticsearch 中的数据执行高级时间序列分析。您可以利用功能强大、简单易学的表达式来描述查询、转换和可视化。

⑤ 利用 graph 功能探索关系

  凭借搜索引擎的相关性功能,结合 graph 探索,揭示您 Elasticsearch 数据中极其常见的关系。

2、安装部署kibana

1、下载kibaba安装包并安装

[root@elk-1 ~]# yum install kibana-6.8.1-x86_64.rpm -y

2、修改kibana配置文件/etc/kibana/kibana.yml

server.port: 5601  # 默认的监听端口5601
server.host: "0.0.0.0"  # 监听的IP地址
elasticsearch.hosts: ["http://192.168.7.101:9200"]  # 对端elasticsearch集群主机的IP地址
i18n.locale: "zh-CN"          # 添加此项支持汉化版

3、在另一台集群主机安装kibana,并修改对端的elasticsearch主机配置文件,将hosts的IP地址指向另一台集群的elasticsearch主机的IP地址。

server.port: 5601  # 默认的监听端口5601
server.host: "0.0.0.0"  # 监听的IP地址
elasticsearch.hosts: ["http://192.168.7.100:9200"]  # 对端elasticsearch集群主机的IP地址
i18n.locale: "zh-CN"          # 添加此项支持汉化版

4、启动kibana服务,并设置为开机启动

[root@elk-1 ~]# systemctl start kibana
[root@elk-1 ~]# systemctl enable  kibana

5、查看访问的页面:192.168.7.100:5601,实际访问的是192.168.7.101主机的信息,同理访问192.168.7.101:5601,访问的就是192.168.7.100主机的信息。

二、管理kibana

1、添加数据到kibana

1、我们先开创建一个示例数据,查看是否集群能够同步数据:在kibana--->添加指标数据------>样例数据,进行添加数据

 2、查看两个网页的数据是否存在,点击Discover,查看192.168.7.100有数距

3、查看192.168.7.101,也存在数据,此时就已经实现了集群备份的功能。

4、登陆head插件,此时也可以看到两个集群上的数据信息

4、在elasticsearch主机上查看创建的数据

[root@elk-1 ~]# ll /data/esdata/nodes/0/indices/
total 0
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:46 2XedLDp7Sym8HNzdF8pGTQ
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:46 ASx4EO3lSkuXndRlcWNB5g
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:57 di2WPFxNTNOAjx8-XcKxWw
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:46 jfOVaC5STCmKYudya7paMg
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:57 QeV47qM9Q0unbIAjQVqHTQ

5、在elasticsearch集群主机上查看数据

[root@elk-2 ~]# ll /data/esdata/nodes/0/indices/
total 0
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:42 2XedLDp7Sym8HNzdF8pGTQ
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:42 ASx4EO3lSkuXndRlcWNB5g
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:57 di2WPFxNTNOAjx8-XcKxWw
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:42 jfOVaC5STCmKYudya7paMg
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 10:57 QeV47qM9Q0unbIAjQVqHTQ

2、管理索引

1、此时删除数据,一定要在管理界面删除,不能在elasticsearch主机上删除数据,否则会导致数据不同步。

 2、删除一个数据后,然后在elasticsearch两个主机集群分布上查看信息,两个集群的内容都剩五个文件。

[root@elk-2 ~]# ll /data/esdata/nodes/0/indices/
total 0
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 11:39 95saCfoiSKKdFgNcZTxD1g
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 11:39 AD9HqYcQQ0Czds0Rwc9k-A
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 11:36 hPSzBwspRuycvSp8886DbA
drwxr-xr-x 4 elasticsearch elasticsearch 29 Mar 12 11:39 r5BNakB1Q6-WUgcLL1eMug

三、安装部署logstash

1、介绍

(1)定义

查看官方文档 https://www.elastic.co/cn/products/logstash

① 官方介绍:Logstash is an open source data collection engine with real-time pipelining capabilities。简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

 

② Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:

  • inpust:必须(标准输入),负责产生事件(Inputs generate events),常用:File、syslog、redis、beats(如:Filebeats)
  • filters:可选,负责数据处理与转换(filters modify them),常用:grok、mutate、drop、clone、geoip
  • output:必须(标准输出),负责数据输出(outputs ship them elsewhere),常用:elasticsearch、file、graphite、statsd

2、安装JDK并配置JDK环境变量

1、logstash也依赖于java-JDK包,因此我们也要将jdk安装到logstash主机上。

[root@logstash src]# tar  xvf jdk-8u212-linux-x64.tar.gz   # 解压jdk包
[root@logstash src]# ln -sv /usr/local/src/jdk
jdk1.8.0_212/               jdk-8u212-linux-x64.tar.gz   
[root@logstash src]# ln -sv /usr/local/src/jdk1.8.0_212/ /usr/local/jdk  # 创建jdk软链接
‘/usr/local/jdk’ -> ‘/usr/local/src/jdk1.8.0_212/’
[root@logstash src]# ln -sv /usr/local/jdk/bin/java /usr/bin/  # 创建java软链接
‘/usr/bin/java’ -> ‘/usr/local/jdk/bin/java’

2、配置JAVA-JDK的环境变量

[root@logstash src]# vim /etc/profile.d/jdk.sh  # 配置环境变量
export HISTTIMEFORMAT="%F %T `whoami`"
export export LANG="en_US.utf-8"
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
[root@logstash src]# . /etc/profile.d/jdk.sh  # 使环境变量生效
[root@logstash src]# java -version  #查看JAVA版本
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
[root@logstash src]# echo $JAVA_HOME  #查看此时的JDK环境变量路径
/usr/local/jdk

3、安装logstash

官网下载路径:https://www.elastic.co/cn/downloads/logstash

1、安装logstash包,logstash需要的内存也很大,根据实际来设置,我这里分配3G内存

[root@logstash src]# yum install logstash-6.8.1.rpm -y  # 安装logstash
[root@logstash ~]# chown logstash.logstash /usr/share/logstash/data/queue/ -R  #权限更改为 logstash 用户和组,否则启动的时候日志报错

2、指定logstash的环境变量

[root@logstash conf.d]# vim /etc/profile.d/logstash.sh
export PATH=$PATH:/usr/share/logstash/bin/

[root@logstash conf.d]# . /etc/profile.d/logstash.sh

4、开启logstash前,测试logstash

实例一:标准输入和标准输出测试

[root@logstash conf.d]# /usr/share/logstash/bin/logstash -e \'input {  stdin{} } output{ stdout { codec => rubydebug }}\'  # 安装完logstash时,需要对logstash进行测试
hello  #输入一个hello
{
          "host" => "logstash", #主机名
       "message" => "hello",   #输入的消息
      "@version" => "1",  # 版本
    "@timestamp" => 2020-03-12T06:44:48.693Z  #当前时间
}

实例二:测试输入数据

[root@logstash conf.d]# /usr/share/logstash/bin/logstash -e \'input { stdin{} } output { file { path => "/tmp/linux.txt"}}\'
hello

此时的hello信息就会输入到/tmp/linux.txt文件中

{"@timestamp":"2020-03-12T06:54:46.889Z","host":"logstash","@version":"1","message":"hello"}

实例三:测试输出到elasticsearch

[root@logstash conf.d]# /usr/share/logstash/bin/logstash -e \'input { stdin{} } output { elasticsearch { hosts => ["http://192.168.7.100:9200"] index => "linux-test-%{+YYYY.MM.dd}"}}\'

hello

此时可以在head插件的网页上查看创建的文件

然后在kibana网页上查看此时创建的文件:管理---->索引模式----->创建索引模式

下一步:

 2、然后就可以在discover能查看到自己创建的文件信息

 实例四:收集单系统日志并输出至文件

1、在/etc/logstash/conf.d目录下创建一个收集/var/log/messages的系统日志文件:linux.conf

[root@logstash conf.d]# pwd
/etc/logstash/conf.d
[root@logstash conf.d]# vim linux.conf 
input {
  file {
   path => "/var/log/messages"
   start_position => "beginning"
   stat_interval => 3  # 间隔时间3s.
   type => "messagelog"
  }

}

output {
  elasticsearch {
    hosts => ["192.168.7.100:9200"]
    index => "messagelog-7-100-%{+YYYY.MM.dd}"
  }

  #stdout {
  #codec => "rubydebug" #最开始测试输入输出使用
  #}

}

2、测试语法是否存在问题

[root@logstash conf.d]# logstash -f /etc/logstash/conf.d/linux.conf  -t
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
[WARN ] 2020-03-12 16:09:51.259 [LogStash::Runner] multilocal - Ignoring the \'pipelines.yml\' file because modules or command line options are specified
Configuration OK  #测试语法,显示OK,说明没问题。
[INFO ] 2020-03-12 16:10:04.705 [LogStash::Runner] runner - Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash

3、由于/var/log/messages只有root的属主有读写权限,需要将此文件的权限改为644,使文件在普通用户启动logstash时,有读取的权限

[root@logstash conf.d]# chmod 644 /var/log/messages 
[root@logstash conf.d]# ll /var/log/messages 
-rw-r--r--. 1 root root 1101911 Mar 12 16:21 /var/log/messages

4、启动logstash服务

[root@logstash conf.d]# systemctl start logstash  #启动logstash服务
[root@logstash conf.d]# logstash -f linux.conf   # 执行编辑的logstash收集日志的文件

可以看到logstash已经启动起来。

5、查看elasticsearch网页上收集到的messages日志信息:管理---->索引模式---->创建索引模式-

 6、然后在discover上进行查看此时的日志文件信息

 实例五:收集多日志并输出至文件

1、在logstash主机上安装nginx服务,并启动

[root@logstash conf.d]# yum install nginx -y
[root@logstash conf.d]# chmod 644 /var/log/nginx/access.log 
[root@logstash conf.d]# systemctl start nginx

2、修改logstash的配置文件

[root@logstash conf.d]# pwd
/etc/logstash/conf.d

[root@logstash conf.d]# vim linux.conf
  file {
   path => "/var/log/messages"
   start_position => "beginning"
   stat_interval => 3
   type => "messagelog"
  }

  file {
   path => "/var/log/nginx/access.log"
   start_position => "beginning"
   stat_interval => 3
   type => "nginx-log"
  }

}

output {
  if [type] == "messagelog" {
    elasticsearch {
    hosts => ["192.168.7.100:9200"]
    index => "messagelog-7-100-%{+YYYY.MM.dd}"
  }}

  if [type] == "nginx-log" {
    elasticsearch {
    hosts => ["192.168.7.100:9200"]
    index => "nginx-log-7-100-%{+YYYY.MM.dd}"
  }}
}

3、修改完以上的配置文件,重新启动logstash服务:systemctl  restart  logstash

  测试配置文件是否正常,显示OK就说明提取log没问题

4、执行修改的配置文件,显示successfuliy,说明执行文件正常。

[root@logstash conf.d]# logstash -f linux.conf 

5、在kibana网页上查看此时添加的nginx-log日志收集文件,创建索引模式

6、在discover选项查看此时已经存在了nginx-log的日志信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 


推荐阅读
  • 利用Jenkins与SonarQube集成实现高效代码质量检测与优化
    本文探讨了通过在 Jenkins 多分支流水线中集成 SonarQube,实现高效且自动化的代码质量检测与优化方法。该方案不仅提高了开发团队的代码审查效率,还确保了软件项目的持续高质量交付。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 检查 Kubernetes 系统命名空间中的 Pod 状态时,发现 Metric Server Pod 虽然处于运行状态,但存在异常:日志显示 'it doesn’t contain any IP SANs'。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 本文深入解析了 Kubernetes 控制平面(特别是 API 服务器)与集群节点之间的通信机制,并对其通信路径进行了详细分类。旨在帮助用户更好地理解和定制其安装配置,从而增强网络安全性,确保集群的稳定运行。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Logstash安装配置
    阅读此文请先阅读上文:[大数据]-Elasticsearch5.3.1IK分词,同义词联想搜索设置,前面介绍了ES,Kiba ... [详细]
author-avatar
__wolf狼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有