`
Belinda407
  • 浏览: 34000 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

elasticsearch logstash kibana日志分析监控套件部署使用

阅读更多

ELK简介

 ​ELK似乎是当前最为流行的日志收集-存储-分析的全套解决方案.

Elasticsearch Logstash and Kibana can be used to gather and visualize the syslogs of your systems in a centralized location. Logstash is an open source tool for collecting, parsing, and storing logs for future use. Kibana 4 is a web interface that can be used to search and view the logs that Logstash has indexed. Both of these tools are based on Elasticsearch.

Centralized logging can be very useful when attempting to identify problems with your servers or applications, as it allows you to search through all of your logs in a single place. It is also useful because it allows you to identify issues that span multiple servers by correlating their logs during a specific time frame.

logstash1.4.0 doc:http://logstash.net/docs/1.4.0/filters/grok
日志格式匹配测试页:http://grokdebug.herokuapp.com/
elk安装教程:https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-4-on-centos-7

官网:https://www.elastic.co/downloads

ELK部署(基于Centos6.4)

1. 设置机器名,客户机通过该名称访问

​ vi /etc/hosts

 

添加elkserver到第一行第一个位置

127.0.0.1   elkserver localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

 

2. 安装Java 7

sudo yum -y install java-1.7.0-openjdk

 3. 安装Elasticsearch1.4.1

(1)导入Elasticsearch公共GPG key

sudo rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

 

(2)创建并编辑一个新的用于Elasticsearch 的yum repository file

sudo vi /etc/yum.repos.d/elasticsearch.repo

 添加如下内容

[elasticsearch-1.4]
name=Elasticsearch repository for 1.4.x packages
baseurl=http://packages.elasticsearch.org/elasticsearch/1.4/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

 保存并退出

(3)安装Elasticsearch 1.4.4

sudo yum -y install elasticsearch-1.4.4

 (4)配置Elasticsearch 1.4.4

sudo vi /etc/elasticsearch/elasticsearch.yml

 找到network.host所在的行,改为如下

network.host: localhost

 设置http.port

http.port: 9200

 保存并退出elasticsearch.yml

(5)启动

sudo service elasticsearch start

 添加到启动项

sudo /sbin/chkconfig --add elasticsearch

 4. 安装Kibana4.0.1

(1)下载并解压

cd ~; wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.1-linux-x64.tar.gz

 

tar xvf kibana-*.tar.gz
 

 

(2)打开Kibana 配置文件并编辑

vi ~/kibana-4*/config/kibana.yml

 设置host如下

host: "localhost"

 保存并退出

(3)拷贝kibana文件到适宜的位置

sudo mkdir -p /opt/kibana

 

sudo cp -R ~/kibana-4*/* /opt/kibana/
 

 

(4)设置启动项

sudo vi /etc/init.d/kibana

 写入如下内容

#!/bin/bash
#
# Kibana    Init script for Kibana
#
# chkconfig: 345 99 76
# processname: kibana
#
KIBANA_EXEC="/opt/kibana/bin/kibana"
now=$(date +"%Y-%m-%d-%S")
LOG_FILE="/opt/kibana/bin/log/kibana.$now.log"
PID_FILE="/opt/kibana/bin/log/kibana.$now.pid"
RETVAL=0

start() {
    echo "Starting Kibana..."
    $KIBANA_EXEC 1>"$LOG_FILE" 2>&1 &
    echo $!> "$PID_FILE"
    echo "Kibana started with pid $!"
}

case "$1" in
    start)
    start
    ;;
    *)
        echo "Usage: $0 {start}"
        exit 0
    ;;
esac
exit $RETVAL

 执行如下命令使得启动项生效

sudo chmod 0755 /etc/init.d/kibana

 

sudo chkconfig kibana on
 

 

5.安装Nginx1.8.0

(1)安装EPEL

sudo yum -y install epel-release

 修改配置

sudo vi /etc/yum.repos.d/epel.repo 

 改成 baseurl #mirrorlist

(2)安装httpd-tools

sudo yum -y install httpd-tools

  (3)使用预先下载的nginx-1.8.0-1.el6.ngx.x86_64.rpm安装nginx

yum -y install /home/hailiang/nginx-1.8.0-1.el6.ngx.x86_64.rpm

 (4)使用htpasswd创建用户kibanaadmin,设置密码为hylanda

sudo htpasswd -c /etc/nginx/htpasswd.users kibanaadmin

 (5)配置kibana.conf

sudo vi /etc/nginx/conf.d/kibana.conf

  设置server_name为机器名

server_name elkserver;

 (6)启动,并添加到启动项

sudo service nginx restart

 

sudo chkconfig –levels 235 nginx on
 

 

6.安装Logstash

(1)为Logstash配置一个Yum repository 文件

sudo vi /etc/yum.repos.d/logstash.repo

 写入如下内容

[logstash-1.5]
name=logstash repository for 1.5.x packages
baseurl=http://packages.elasticsearch.org/logstash/1.5/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

 保存并退出

(2)安装Logstash1.5

sudo yum -y install logstash

 (3)生成SSL Certificates

sudo vi /etc/pki/tls/openssl.cnf

 找到[ v3_ca ]段,设置subjectAltName为本机ip

​subjectAltName = IP:192.168.11.201

 保存并退出

(4)生成SSL Certificates和私钥,CN=机器名

cd /etc/pki/tls

 

openssl req -subj '/CN=elkserver/' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
 

 

logstash-forwarder.crt将会被拷贝到所有的客户机

(5)配置Logstash

sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf

 写入如下内容

input {
   lumberjack {
    port => 5000
    type => "logs"
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}

filter {
    if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
  }
}

output {
    elasticsearch {
        host => "localhost"
    }
    stdout {codec => rubydebug}
}

 7.安装Logstash Forwarder

(1)在服务机执行
拷贝cert到客户机(192.168.11.213)的tmp目录

scp /etc/pki/tls/certs/logstash-forwarder.crt root@192.168.11.213:/tmp

 开放防火墙5000端口

/sbin/iptables -I INPUT -p tcp –dport 5000 -j ACCEPT

 

/etc/rc.d/init.d/iptables save
 

 

(2)如下内容在客户机执行

sudo rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch

 

sudo vi /etc/yum.repos.d/logstash-forwarder.repo
 

 

 填写如下内容

[logstash-forwarder]
name=logstash-forwarder repository
baseurl=http://packages.elasticsearch.org/logstashforwarder/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1

安装Logstash Forwarder

sudo yum -y install logstash-forwarder

 拷贝证书到适宜的目录

sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

 配置logstash-forwarder

sudo vi /etc/logstash-forwarder.conf

 写入如下内容

{
  "network": {
    "servers": [ "elkserver:5000" ],
    "timeout": 15,
    "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
  },
  "files": [
   {
      "paths": [
        "/var/log/messages",
        "/var/log/secure"
      ],
      "fields": { "type": "syslog" }
    } 
  ]
}

 保存并退出

sudo service logstash-forwarder restart

 在客户机hosts文件中添加服务器机器名

192.168.11.201 elkserver

 测试是否能访问

 

8.连接到Kibana

在浏览器输入elkserver访问Kibana,在验证用户窗口输入用户名kibanaadmin和密码hylanda
首次访问会进入1-select-index.gif所示页面
创建index成功后会进入默认页面2-discover.png
在页面下方可以看到客户机提交过来的系统日志

 

9curator安装(用于删除旧indices )

yum -y install python-pip

 

pip install elasticsearch-curator

 

which curator /usr/bin/curator

 

定时删除超过19天的日志

crontab -e

 填写内容如下

20 0 * * *  /usr/bin/curator delete indices --time-unit days --older-than 19 --timestring \%Y.\%m.\%d

 

10.如果发现5000端口没有监听,手动启动

/opt/logstash/bin/logstash -f /etc/logstash/conf.d/01-lumberjack-input.conf

 

注:以上是在centos6下配置通过,如果是centos7,服务启动将使用systemctl

kibana启动项将使用systemd配置,文件/etc/systemd/system/kibana4.service

[Service]

ExecStart=/opt/kibana/bin/kibana
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=kibana4
User=root
Group=root
Environment=NODE_ENV=production

[Install]
WantedBy=multi-user.target

 

ELK使用(仅供参考)

1.ELK中,负责收集日志的是logstash-forwarder,主要是配置待收集日志的目录,关键配置文件logstash-forwarder.conf

如果待收集路径日志有更新,或者有新文件,logstash-forwarder会自动收集并提交到logstash。

日志类型名,这个在logstash解析那里会用到,也就是每种日志类型有自己的解析脚本。

2.logstash接收日志,每种类型按用户设置的格式解析,关键配置文件

这里的日志类型与logstash-forwarder收集的类型相对应,grok内置了好多pattern在http://grokdebug.herokuapp.com/patterns#,如果不能满足需求,可以自定义pattern文件,并在这里设置上路径,就能像内置类型一样使用了。

举个例子:%{NUMBER:total_source_count:int},会解析出当前位置的数值类型,命名为total _source_count,数据类型设置为int。

这个匹配脚本会严格按照日志中每行的字符顺序来解析

比如输入:

2015-07-20 17:52:41,052 INFO com.hylanda.statistic.mr.bean.TagStatisticResultHandler keywords_code 10000085412323 nagetive_source_count 1,neutral_source_count 0,positive_source_count 0,releaseDate 2015-06-08 05:42:31 release_date_day 2015-06-08 source_type 0 statisticTag 节目/负面/节目不好看 taskId 6572 total_feedback_count 0,total_repeat_count 0,total_source_count 1,total_weibo_original 0}

 

那么解析结果为

{
                  "message" => "2015-07-20 17:52:41,052 INFO com.hylanda.statistic.mr.bean.TagStatisticResultHandler keywords_code 10000085412323 nagetive_source_count 1,neutral_source_count 0,positive_source_count 0,releaseDate 2015-06-08 05:42:31 release_date_day 2015-06-08 source_type 0 statisticTag 节目/负面/节目不好看 taskId 6572 total_feedback_count 0,total_repeat_count 0,total_source_count 1,total_weibo_original 0}",
                 "@version" => "1",
               "@timestamp" => "2015-07-21T03:32:42.260Z",
                     "host" => "localhost",
                  "package" => "com.hylanda.statistic.mr.bean.TagStatisticResultHandler",
            "keywords_code" => 10000085412323,
    "nagetive_source_count" => 1,
     "neutral_source_count" => 0,
    "positive_source_count" => 0,
         "release_date_day" => "2015-06-08",
              "source_type" => 0,
                   "taskId" => "6572",
     "total_feedback_count" => 0,
       "total_repeat_count" => 0,
       "total_source_count" => 1,
     "total_weibo_original" => 0
}

 

可以看到已经按照指定的类型和名称解析出来了。

3.有了数据下一步就是展现

第一次访问Kibana要求设置index

2.设置完毕就可以从discover页查看数据了

3.注意每个图表都可以使用elasticsearch来查询,这个目前还不太会用。另外有好多内置的对JSon的支持,也需要进一步探索。

 

分享到:
评论

相关推荐

    Elasticsearch、Logstash、Kibana核心套件安装包

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

    ELK 套件(ElasticSearch+Logstash+Kibana) TIG 套件(Telegraf+InfluxD

    ELK 套件是由Elasticsearch、Logstash和Kibana三个组件组成的开源日志分析平台。Elasticsearch是一个高性能、分布式、全文搜索引擎,用于存储和检索大量结构化和非结构化的数据。Logstash则是一个数据收集和处理引擎...

    Elasticsearch、Logstash、Kibana 最新版本7.8.1

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

    ELK(ElasticSearch, Logstash, Kibana)6.2.4官方正版

    ELK(Elasticsearch, Logstash, Kibana)是一个流行的开源日志分析和可视化解决方案,广泛应用于系统监控、安全分析、数据检索等场景。在6.2.4版本中,由于200M文件大小的限制,Elasticsearch部分需要单独上传,这...

    Elasticsearch-Logstash-Kibana:使用docker-compose进行游戏,以设置著名的ELK(Elasticsearch,Logstash,Kibana)套件

    使用来设置著名的ELK( , , )套件。 构建/运行堆栈 Docker-compose是一个众所周知的名为Fig的工具,现已集成到Docker中要启动堆栈,请克隆存储库并发出以下命令: # build the sample app and its docker image...

    factorish-elk:Elasticsearch Logstash 和 Kibana 在 docker 中并由 CoreOS 上的 confdetcd 配置

    该项目试图展示使用和 CoreOS 工具套件(CoreOS、etcd、fleet、confd)来构建和部署自配置/集群 ELK(Elasticsearch、Logstash、Kibana)集群。 要启动一个适合开发的三节点系统,每个系统都运行整个 ELK 堆栈,只...

    最新Elasticsearch+x-pack+head+kibana+bigdesklogstash+java开发经验和片段完整部署开发分享

    x-pack是Elasticsearch的安全、监控、警报、报告和机器学习套件。其中,权限管理是关键部分,包括用户、角色和访问控制的设置。 4. Head插件: Head插件是一个简单的客户端工具,用于查看和管理Elasticsearch集群...

    kibana可视化工具

    Kibana是一款强大的开源数据分析与可视化工具,专为与Elasticsearch协同工作而设计。它提供了丰富的界面,使用户能够轻松地对存储在Elasticsearch中的海量数据进行探索、理解和展示。Kibana的核心功能包括数据可视化...

    docker-symfony:面向Docker Symfony SOA的NGINX,PHP7-FPM,MySQL,Redis,ELK(Elasticsearch Logstash和Kibana),Varnish和CouchDB

    5. **ELK**: 由Elasticsearch、Logstash和Kibana组成的日志管理和分析套件,帮助收集、解析和可视化日志数据。 6. **Varnish**: 高速的HTTP缓存加速器,可以显著提升网站的响应速度。 7. **CouchDB**: 非关系型...

    日志分析系统Elk + Filebeat安装包

    日志分析系统ELK(Elasticsearch、Logstash、Kibana)是开源的数据收集、处理和可视化解决方案,常用于实时分析和监控各种系统、应用的日志数据。Filebeat是Elastic公司推出的一个轻量级的日志转发工具,用于收集和...

    filebeat+kafka+ELK 6.2.4版本安装与部署

    最后启动Kibana服务,使其能够与Elasticsearch集群进行交互,从而让用户能够通过Kibana的Web界面来访问和分析日志数据。 整个ELK系统的部署需要综合考虑各个组件之间的依赖关系,确保每个组件能够正确地接收和处理...

    elasticsearch安装套件

    8. **数据导入与查询**:使用`curl`命令或客户端工具(如Kibana、Logstash、Beats等)向Elasticsearch导入数据,并进行搜索、聚合等操作。 安装完成后,你可以开始探索Elasticsearch的强大功能,比如实时数据分析、...

    最新版linux logstash-7.16.0-linux-x86_64.tar.gz

    为了监控Logstash的运行状态,可以利用Elasticsearch和Kibana来可视化数据,并通过监控指标来确保系统健康运行。同时,定期查看官方文档和社区更新,以便了解新功能和最佳实践,保持系统处于最优状态。 总之,Linux...

    ELK日志分析系统搭建

    elk套件是指elasticsearch、logstash、kibana三件套,它们可以组成一套日志分析和监控工具。本文说明安装过程和典型的配置过程。

    logstash-5.2.0插件x-pack-5.2.0

    X-Pack 是 Elastic Stack(包括 Elasticsearch、Kibana 和 Logstash 等)的一个扩展套件,提供安全、监控、告警、报告和管理功能。在本案例中,"logstash-5.2.0" 指的是 Logstash 的一个特定版本,而 "x-pack-5.2.0...

    ELK6.3和Filebeat6.3在Docker-Compose环境下安装和使用

    ELK6.3和Filebeat6.3是基于Elasticsearch、Logstash和Kibana技术栈的最新版本,通常用在日志处理和分析场景中。在Docker-Compose环境下安装ELK6.3和Filebeat6.3涉及到了容器化技术、ELK组件的架构知识、CentOS操作...

    kibana-8.6.2-windows-x86-64.zip

    Kibana是Elastic Stack(前称为ELK Stack,包括Elasticsearch、Logstash和Kibana)的重要组成部分,广泛应用于日志分析、安全监控、业务智能等多个领域。 标题"Kibana-8.6.2-windows-x86-64.zip"表明这是Kibana的...

    Elasticsearch服务器开发

    Elasticsearch拥有强大的插件生态系统,涵盖安全、监控、可视化等多个领域,如Kibana用于数据可视化,Logstash用于日志收集和预处理,Beats用于轻量级数据发送。 **七、X-Pack** X-Pack是Elastic官方提供的商业套件...

    nxlog日志上传工具

    该工具的独特之处在于它能够将Windows的事件日志转换为syslog格式,使得日志数据可以被各种支持syslog协议的系统接收和分析,比如ELK(Elasticsearch、Logstash、Kibana)套件。 在日志管理领域,syslog是一种广泛...

    ElasticStack(ELK)从入门到实践.pdf

    综合案例分析通常涵盖整个Elastic Stack的使用流程,包括配置Filebeat、Logstash,以及利用ElasticSearch、Kibana来完成从数据采集、处理到分析和可视化的整个链路。在实践中,用户可以根据自己的业务需求,通过这些...

Global site tag (gtag.js) - Google Analytics