ELKログ分析システム - (本当!)

簡単な紹介

ログサーバ

提高安全性
集中存放日志
缺陷:对日志的分析困难

ELKログ分析システム - (本当!)

ELKログ分析システム

Elasticsearch:存储,索引池   
Logstash:日志收集器
Kibana:数据可视化

ログ処理のステップ

1,将日志进行集中化管理
2,将日志格式化(Logstash)并输出到Elasticsearch
3,对格式化后的数据进行索引和存储(Elasticsearch)
4,前端数据的展示(Kibana)

Elasticsearch概要

 提供了一个分布式多用户能力的全文搜索引擎

Elasticsearchコンセプト

 接近实时
 集群
 节点
 索引:索引(库)-->类型(表)-->文档(记录)
 分片和副本

Logstashはじめに

 一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出
 数据输入、数据加工(如过滤,改写等)以及数据输出

LogStash主要コンポーネント

 Shipper
 Indexer
 Broker
 Search and Storage
 Web Interface

Kibana介绍

 一个针对Elasticsearch的开源分析及可视化平台
 搜索、查看存储在Elasticsearch索引中的数据
 通过各种图表进行高级数据分析及展示

Kibanaの主な機能

 Elasticsearch无缝之集成
 整合数据,复杂数据分析
 让更多团队成员受益
 接口灵活,分享更容易
 配置简单,可视化多数据源
 简单数据导出

ラボトポロジ

ELKログ分析システム - (本当!)

実験環境

Apache服务器 192.168.13.128 (Logstash)
Node1服务器 192.168.13.129 (Elasticsearch,Kibana)
Node2服务器 192.168.13.130 (Elasticsearch)

図1は、elasticsearchノード1、ノード2上に搭載しました

[root@node1 ~]# vim /etc/hosts  ##配置解析名
192.168.13.129 node1
192.168.13.130 node2
[root@node1 ~]# java -version  ##查看是否支持Java
[root@node1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for root@//192.168.100.3/LNMP-C7:  
[root@node1 mnt]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh elasticsearch-5.5.0.rpm   ##安装
[root@node1 elk]# systemctl daemon-reload  ##重载守护进程
[root@node1 elk]# systemctl enable elasticsearch.service   ##开机自启
[root@node1 elk]# cd /etc/elasticsearch/
[root@node1 elasticsearch]# cp elasticsearch.yml elasticsearch.yml.bak  ##备份
[root@node1 elasticsearch]# vim elasticsearch.yml  ##修改配置文件
cluster.name: my-elk-cluster  ##集群名
node.name: node1    ##节点名,第二个节点为node2
path.data: /data/elk_data   ##数据存放位置
path.logs: /var/log/elasticsearch/  ##日志存放位置
bootstrap.memory_lock: false  ##不在启动时锁定内存
network.host: 0.0.0.0   ##提供服务绑定的IP地址,为所有地址
http.port: 9200  ##端口号为9200
discovery.zen.ping.unicast.hosts: ["node1", "node2"]  ##集群发现通过单播实现
[root@node1 elasticsearch]# mkdir -p /data/elk_data   ##创建数据存放点
[root@node1 elasticsearch]# chown elasticsearch.elasticsearch /data/elk_data/  ##给权限
[root@node1 elasticsearch]# systemctl start elasticsearch.service   ##开启服务
[root@node1 elasticsearch]# netstat -ntap | grep 9200  ##查看开启情况
tcp6     0    0 :::9200        :::*          LISTEN      2166/java

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

2、ブラウザで健康や状態を確認

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

図3に示すように、取付けアセンブリは、ノードノード1、ノード2への依存性

[root@node1 elasticsearch]# yum install gcc gcc-c++ make -y  ##安装编译工具
[root@node1 elasticsearch]# cd /mnt/elk/
[root@node1 elk]# tar zxvf node-v8.2.1.tar.gz -C /opt/  ##解压插件
[root@node1 elk]# cd /opt/node-v8.2.1/
[root@node1 node-v8.2.1]# ./configure   ##配置
[root@node1 node-v8.2.1]# make && make install   ##编译安装

図4は、フロントエンドフレームphantomjsノード1、ノード2上に搭載しました

[root@node1 elk]# tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src/
##解压到/usr/local/src下
[root@node1 elk]# cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/
[root@node1 bin]# cp phantomjs /usr/local/bin/   ##编译系统识别

図5に示すように、ノード1上で可視化装着elasticsearchヘッドデータ、NODE2

[root@node1 bin]# cd /mnt/elk/
[root@node1 elk]# tar zxvf elasticsearch-head.tar.gz -C /usr/local/src/  ##解压
[root@node1 elk]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm install  ##安装

6、設定ファイルを変更します

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml
##末行加入
http.cors.enabled: true  ##开启跨域访问支持,默认为false
http.cors.allow-origin: "*"    ##跨域访问允许的域名地址
[root@node1 elasticsearch-head]# systemctl restart elasticsearch.service  ##重启
[root@node1 elasticsearch-head]# cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]# npm run start &   ##后台运行数据可视化服务
[1] 82515
[root@node1 elasticsearch-head]# netstat -ntap | grep 9100
tcp        0      0 0.0.0.0:9100    0.0.0.0:*      LISTEN      82525/grunt  
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0    0 :::9200              :::*        LISTEN      82981/java 

7、ブラウザの値の正常性状態を表示

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

8、ノード1にインデックスを作成

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

[root@node2 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
##创建索引信息

ELKログ分析システム - (本当!)

9、logstash Apacheサーバにインストールされている、マルチelasticsearchドッキング

[root@apache ~]# yum install httpd -y   ##安装服务
[root@apache ~]# systemctl start httpd.service   ##启动服务
[root@apache ~]# java -version
[root@apache ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/   ##挂载
Password for root@//192.168.100.3/LNMP-C7:
[root@apache ~]# cd /mnt/elk/
[root@apache elk]# rpm -ivh logstash-5.5.1.rpm   ##安装logstash
[root@apache elk]# systemctl start logstash.service 
[root@apache elk]# systemctl enable logstash.service   ##自启
[root@apache elk]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/  ##便于系统识别
[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{} }'  ##标准输入输出
The stdin plugin is now waiting for input:
16:58:11.145 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com   ##输入
2019-12-19T08:58:35.707Z apache www.baidu.com
www.sina.com.cn  ##输入
2019-12-19T08:58:42.092Z apache www.sina.com.cn
[root@apache elk]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'
##使用rubydebug显示详细输出,codec为一种编解码器
The stdin plugin is now waiting for input:
17:03:08.226 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com   ##格式化的处理
{
        "@timestamp" => 2019-12-19T09:03:13.267Z,
            "@version" => "1",
                    "host" => "apache",
             "message" => "www.baidu.com"
}
[root@apache elk]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.13.129:9200"] } }'
##使用logstach将信息写入elasticsearch中
The stdin plugin is now waiting for input:
17:06:46.846 [Api Webserver] INFO  logstash.agent - Successfully started Logstash API endpoint {:port=>9600}
www.baidu.com     ##输入信息
www.sina.com.cn

ブラウザで情報を表示する10

ELKログ分析システム - (本当!)

##在数据浏览中可以查看信息

ELKログ分析システム - (本当!)

11、elasticsearchにログファイル出力システム

[root@apache elk]# chmod o+r /var/log/messages   ##给其他用户读权限
[root@apache elk]# vim /etc/logstash/conf.d/system.conf  ##创建文件
input {
                file{
                path => "/var/log/messages"   ##输出目录
                type => "system"
                start_position => "beginning"
                }
}
output {
                elasticsearch {
                #输入地址指向node1节点
                hosts => ["192.168.13.129:9200"]
                index => "system-%{+YYYY.MM.dd}"
                }
}
[root@apache elk]# systemctl restart logstash.service  ##重启服务
##也可以用数据浏览查看详细信息

ELKログ分析システム - (本当!)

12、ノード1のデータの可視化サーバkibanaに取り付けられました

[root@node1 ~]# cd /mnt/elk/
[root@node1 elk]# rpm -ivh kibana-5.5.1-x86_64.rpm   ##安装
[root@node1 elk]# cd /etc/kibana/
[root@node1 kibana]# cp kibana.yml kibana.yml.bak  ##备份
[root@node1 kibana]# vim kibana.yml   ##修改配置文件
server.port: 5601  ##端口号
server.host: "0.0.0.0"   ##监听任意网段
elasticsearch.url: "http://192.168.13.129:9200"  ##本机节点地址
kibana.index: ".kibana"   ##索引名称
[root@node1 kibana]# systemctl start kibana.service   ##开启服务
[root@node1 kibana]# systemctl enable kibana.service 

13、ブラウザアクセスkibana

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

14、アパッチApacheサーバのログファイルをドッキング、統計

[root@apache elk]# vim /etc/logstash/conf.d/apache_log.conf  ##创建配置文件
input {
                file{
                path => "/etc/httpd/logs/access_log"   ##输入信息
                type => "access"
                start_position => "beginning"
                }
                file{
                path => "/etc/httpd/logs/error_log"
                type => "error"
                start_position => "beginning"
                }
}
output {
                if [type] == "access" {     ##根据条件判断输出信息
                elasticsearch {
                hosts => ["192.168.13.129:9200"]
                index => "apache_access-%{+YYYY.MM.dd}"
                }
        }   
                if [type] == "error" {
                elasticsearch {
                hosts => ["192.168.13.129:9200"]
                index => "apache_error-%{+YYYY.MM.dd}"
                }
        }
}
[root@apache elk]# logstash -f /etc/logstash/conf.d/apache_log.conf  
##根据配置文件配置logstach

15、アクセスのWebページの情報は、kibanaの統計情報を参照してください

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)

##选择management>Index Patterns>create index patterns
##创建apache两个日志的信息

ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)
ELKログ分析システム - (本当!)


読んでくれてありがとう!

おすすめ

転載: blog.51cto.com/14080162/2460150