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

摘要
当对Syslog监视进行整体测试并运行日志时,我们采用了Elasticsearch + Kibana + Logstash + Filebeat。
公式链接
有关ELASTIC STACK
从维基百科提取
ElasticsearchはLucene基盤の分散処理マルチテナント対応検索エンジンである。
オープンソースソフトウェアだが、現在はオランダ・アムステルダムに本社を置くElastic社が中心になって開発が進められている[1]。
なお「Elastic Search」といったように間に空白を入れる・「search」の頭を大文字にするといった表記は誤り
(ただしVer.1.0.0リリース前にはそのような表記も混在していた)
关于各种软件的概述和实现语言的简介。
用简单的术语总结一下
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)
默认端口
本次设置如下,请根据需要适当更改,若已使用过,请相应进行修改。
打造形象

在安装之前的准备工作
# 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中查看日志,那么操作就成功了。
形象
指标

日志检索

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

索引生命周期策略
如果保持当前设置,日志将无限制地积累下去。因此,我们将定义一个生命周期策略以进行删除。
打开Kibana,选择Management > Index Lifecycle Policies > Create Policy。在这里有”Hot phase”,”Warm phase”,”Cold phase”和”Delete phase”的选项。请参考下面的详细说明。在这里,我们将将Delete phase作为定义删除的阶段,进行以下设置。
优化Elasticsearch – 第2部分:索引生命周期管理

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

请参考下文。
首次使用Elasticsearch,现已添加了Filebeat模块功能,使日志可视化变得更加简单。
在Kibana上,轻松快捷地进行可视化吧!
总结了Filebeat的性能调优要点。
请参考幻灯片
使用ElasticSearch+Kibana进行日志数据的搜索和可视化,实现应用程序(性能)监控的入门技巧和运营经验。