网站首页 文章专栏 简述 ELK 搭建日志平台
ELK是一套常用的开源日志监控和分析系统,由三部分组成:
1.Elasticsearch 分布式索引与搜索服务
2.Logstash 管理日志和事件的工具
3.Kibana 数据可视化服务
当有多台机器,一般是在入口机上收集信息,然后在其他机子上进行筛选、过滤转存入es中,这时候通常需要第四个工具来做为数据传输通道 redis
特别提醒,要使用ELK中任意一项,请先保证先安装了java
Elasticsearch、Logstash、Kibana 三者均可在官网上下载 推荐rpm安装
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
特别注意,三个版本保持一致
简单的配置:
1.elasticsearch 配置 (建议先备份再修改)
network.bind_host: 192.168.1.1 默认情况下,ElasticSearch使用0.0.0.0地址,并为http传输开启9200-9300端口,为节点到节点的通信开启9300-9400端口,也可以自行设置IP地址
2. logstash 的配置 集中在conf.d文件夹中
入口机配置:
input { #收集 file { path => ["/logs/11111111.log","/logs/2222222.log"] #日志路径 } } #过滤文本 filter { mutate { gsub => ["message", "\\x", "\\\x"] #正则替换 } } output { #输出 redis { host => "192.168.1.2" port => 6379 data_type => "list" key => "logstash-redis" } }
服务端 入 es
input { redis { host => "192.168.1.2" port => 6379 data_type => "list" key => "logstash-redis" ##监听的键值 threads => 8 #线程数 batch_count => 1000 } } filter { json { source => "message" remove_field => "message" } urldecode { all_fields => true } mutate { split => ["request_uri","?"] #从请求地址中分开请求地址 及参数 add_field => ["uri", "%{request_uri[0]}"] #添加新字段 uri 并赋值 } mutate { convert => ["request_time", "float"] #转换数据类型 } mutate { convert => ["upstream_response_time" ,"float"] } mutate { split => ["http_x_forwarded_for",","] add_field => ["user_real_ip", "%{http_x_forwarded_for[0]}"] } if [user_real_ip] != "-" { geoip { #IP 位置插件 source => "user_real_ip" #需要解析的存有 IP 的字段名称 target => "geoip" #返回的结果中保存 geoip 解析结果的字段名 database => "/usr/local/logstash-6.3.2/GeoLite2-City.mmdb" #位置信息库所在文件 fields => ["ip","latitude","longitude","location","country_name","region_name","city_name"] #在 geoip 的返回结果中筛选部分字段 add_field => ["[geoip][from]","CDN"] #一般情况下CDN服务器都会传送HTTP_X_FORWARDED_FOR头,这是一个ip串 } } else { geoip { source => "remote_addr" target => "geoip" database => "/usr/local/logstash-6.3.2/GeoLite2-City.mmdb" fields => ["ip","latitude","longitude","location","country_name","region_name","city_name"] add_field => ["[geoip][from]","USER"] } } } output { # 存入es elasticsearch { hosts => "192.168.1.1:9200" index => "logstash-%{+YYYY.MM.dd}" } }
filter 的使用 详见 https://techlog.cn/article/list/10182917
3.kibana 配置 (建议先备份再修改)
找到 kibana.yml
修改
server.port: 5601
server.host: 192.168.1.1
elasticsearch.host: 192.168.1.1
最后的最后,别忘记启动
systemctl start ****
systemctl enable **** #建议加入开机启动
转载请注明出处