使用Elasticsearch + Kibana + Logstash + Filebeat进行系统日志监控 [7.x]

スクリーンショット 2019-08-12 0.34.52.png

摘要

当对Syslog监视进行整体测试并运行日志时,我们采用了Elasticsearch + Kibana + Logstash + Filebeat。

公式链接

有关ELASTIC STACK

从维基百科提取

ElasticsearchはLucene基盤の分散処理マルチテナント対応検索エンジンである。
オープンソースソフトウェアだが、現在はオランダ・アムステルダムに本社を置くElastic社が中心になって開発が進められている[1]。
なお「Elastic Search」といったように間に空白を入れる・「search」の頭を大文字にするといった表記は誤り
(ただしVer.1.0.0リリース前にはそのような表記も混在していた)

关于各种软件的概述和实现语言的简介。

beats概要言語elasticsearch分散型RESTful検索エンジンJavakibanaブラウザーベースの分析および検索ダッシュボードJavaScriptFilebeatログファイルの収集GoMetricbeatCPU,メモリ等の情報収集GoPacketbeatパケット情報の収集GoWinlogbeatWindowsのイベントログの収集GoAuditbeat監査データの収集GoHeartbeatリモートから稼働状況の監視Gologstashサーバー側のデータ処理パイプラインRuby

用简单的术语总结一下

beats概要参考cluster同一の名前を持つnodeの集合
indexRDBにおけるデータベース
typeRDBにおけるテーブル
fieldRDBにおけるカラム
documentRDBにおけるレコード
mappingRDBにおけるスキーマ定義
nodeelasticsearchインスタンスを実行している単位

环境

$ uname -r
3.10.0-957.el7.x86_64

$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

默认端口

本次设置如下,请根据需要适当更改,若已使用过,请相应进行修改。

プロセスポート番号Elastisearch9200Kibana5201Logstash5044

打造形象

スクリーンショット 2019-08-14 15.41.17.png

在安装之前的准备工作

# Javaインストール
$ yum search java-1.8.0-openjdk
$ yum -y install java-1.8.0-openjdk
$ export JAVA_HOME=/usr/bin/java

# リポジトリ登録
$ rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
$ vi /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装

安装Elasticsearch

GitHub: 弹性/ Elasticsearch

# インストール
$ yum install -y elasticsearch

# 外部からアクセスできるように設定
$ vim /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
http.port: 9200

# Elasticsearch起動/確認
$ systemctl enable elasticsearch.service
$ systemctl start elasticsearch.service
$ systemctl status elasticsearch.service
$ curl [IPアドレス]:9200

Kibana安装

GitHub:elastic/kibana

# インストール
$ yum install -y kibana

# 外部からアクセスできるように設定
$ vim /etc/kibana/kibana.yml
server.host: "[IPアドレス]"

# Kibana起動/確認
$ systemctl enable kibana.service
$ systemctl start kibana.service
$ systemctl status kibana.service
$ curl -XGET 'http://[IPアドレス]:9200/filebeat-*/_search?pretty'

安装Logstash

弹性/日志管道

# インストール
$ yum -y install logstash

# フィルター用のファイルを作成
$ vim /etc/logstash/conf.d/01-syslog.conf
input {
  beats {
    port => "5044"
    type => "beats"
    }
}

output {
  elasticsearch {
    hosts => ["[IPアドレス]9200"]
    index => "squid-%{+YYYY.MM}"
  }
}

# サービス起動/確認
$ systemctl start logstash
$ systemctl status logstash

# ログを監視
tail -f /var/log/logstash/logstash-plain.log

安装 Filebeat(监视目标节点)

GitHub: elastic/beats/filebeat的源代码库

# インストール
$ yum -y install filebeat

# syslogを収集するように設定
$ vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: syslog
  protocol.udp:
    host: "192.168.1.238:9000"

- type: log
  enabled: false
  paths:
    - /var/log/messages

# Kibana連携
$ vim /etc/kibana/kibana.yml
setup.kibana:
  host: "[IPアドレス]:5601"

# Elasticsearch連携
$ vim /etc/kibana/kibana.yml
output.elasticsearch:
  hosts: ["[IPアドレス]:9200"]

# 実行
$ filebeat setup
$ systemctl start filebeat

Metricbeat 指标采集器

弹性/击败/指标记录器

# インストール
$ yum -y install metricbeat

# 設定ファイル編集
setup.kibana:
  host: "[IPアドレス]:5601"
output.elasticsearch:
  hosts: ["[IPアドレス]:9200"]

# 実行
$ metricbeat setup
$ systemctl start metricbeat
$ systemctl status metricbeat

试着发送日志

这是用于确认动作的命令。

# ログファイルへ追記する
$ logger "test log"

# pingでネットワーク通信を実行
$ ping -s 1M 192.168.179.10

如果可以从Kibana中查看日志,那么操作就成功了。

形象

指标

スクリーンショット 2019-08-12 23.12.06.png

日志检索

スクリーンショット 2019-08-12 23.12.48.png

Apache模块

通过使用Beat中的Apache模块,您可以将访问日志和访问来源地区可视化。此外,还可以查看浏览器类型和访问次数等信息,无需进行特殊设置。

# モジュールを有効化
$ filebeat modules enable apache2

# モジュールリストを表示
$ filebeat modules list

# 設定ファイル
$ vim /etc/filebeat/modules.d/apache2.yml
- module: apache2
  # Access logs
  access:
    enabled: true
    var.paths:
      - /var/log/httpd/access_log

  # Error logs
  error:
    enabled: true
    var.paths:
      - /var/log/httpd/error_log

# サービス再起動
$ systemctl restart filebeat
スクリーンショット 2019-08-14 14.49.45.png

索引生命周期策略

如果保持当前设置,日志将无限制地积累下去。因此,我们将定义一个生命周期策略以进行删除。

打开Kibana,选择Management > Index Lifecycle Policies > Create Policy。在这里有”Hot phase”,”Warm phase”,”Cold phase”和”Delete phase”的选项。请参考下面的详细说明。在这里,我们将将Delete phase作为定义删除的阶段,进行以下设置。

优化Elasticsearch – 第2部分:索引生命周期管理

スクリーンショット 2019-08-17 18.20.39.png

请删除4天前创建的索引,然后返回到上一层,并进行以下选择。
在那里,请选择要应用此策略的日志,如metricbeat日志、filebeat日志等。

スクリーンショット 2019-08-17 18.21.46.png

请参考下文。

首次使用Elasticsearch,现已添加了Filebeat模块功能,使日志可视化变得更加简单。
在Kibana上,轻松快捷地进行可视化吧!
总结了Filebeat的性能调优要点。

请参考幻灯片

使用ElasticSearch+Kibana进行日志数据的搜索和可视化,实现应用程序(性能)监控的入门技巧和运营经验。

广告
将在 10 秒后关闭
bannerAds