簡単な紹介
ログサーバ
提高安全性
集中存放日志
缺陷:对日志的分析困难
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无缝之集成
整合数据,复杂数据分析
让更多团队成员受益
接口灵活,分享更容易
配置简单,可视化多数据源
简单数据导出
ラボトポロジ
実験環境
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
2、ブラウザで健康や状態を確認
図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、ブラウザの値の正常性状態を表示
8、ノード1にインデックスを作成
[root@node2 ~]# curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'
##创建索引信息
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
##在数据浏览中可以查看信息
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 ##重启服务
##也可以用数据浏览查看详细信息
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
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の統計情報を参照してください
##选择management>Index Patterns>create index patterns
##创建apache两个日志的信息