ELK日志管理平台
ELK
ELK是日志收集、索引与检索三件套,包含了三个组件
- ElasticSearch
- Logstash
- Kibana
机器要求
三台机器,机器的配置视线上日志量而定
ES集群:三台机器
Logstash:一台机器
Kibana:一台机器
其中一台机器不存储ES数据,这台机器同时安装了ES、Logstash和Kibana
1、elasticsearch 安装配置
配置文件 elasticsearch.yml
cluster.name: es-cluster
node.name: node0
path.data: /tmp/elasticsearch/data
path.logs: /tmp/elasticsearch/logs
network.host: ***
http.port: 9200
discovery.zen.ping.unicast.hosts: ["***"]
该配置说明如下:
cluster.name,集群名,同一个集群下配置同一个名字
node.name,节点名,同一个集群下不同节点配置不同的名称
path.data,数据存储目录,生产环境中需要指定一个容量比较大的磁盘
path.logs,日志存储目录
network.host,本机ip
http.port,默认为9200
discovery.zen.ping.unicast.hosts,集群中其他机器的ip地址
查看集群master状态
http://ip:port/_cat/master?pretty
ElasticSearch删除索引
使用命令
curl -XDELETE 'http://ip:port/logstash-2016.12.12?pretty'
其中logstash-2016.12.12为索引名
查看ElasticSearch所有索引
http://ip:port/_cat/indices
ES后台运行
一般来说我们不希望关闭终端时,ES进程中止,这时需要以后台运行的方式运行ES
./elasticsearch -d
安装logstash
logstash要求java版本为1.8及以上
安装过程为下载tar.gz文件后上传至服务器
3.1 配置文件
在logstash的config同级目录下新建etc文件夹用于存放配置文件,新建配置文件es-test.conf,内容如下:
input
{
file
{
path =>"/home/contentdev/elk/test.log"
}
}
output
{
elasticsearch{
hosts => ["ip:port"]
index => "logstash-%{type}-%{+YYYY.MM.dd}"
}
}
实战:从filebeat接收 日志数据。
input{
# file{
# path => "/zccdata/data/test.log"
# start_position => "beginning"
# type => "zcclog"
# }
beats{
port => "5044"
}
}
filter{
grok{
match => {"message" => "%{COMBINEDAPACHELOG}"}
}
mutate{
remove_field => "host"
}
}
#output{
# if[level] == "debug"{
# if "zcclog" in [tags]{
# stdout{codec => rubydebug}
# }
#}
output{
if "zcclog" in [tags]{
elasticsearch{
hosts => "192.168.88.139:9200"
index => "zcclog_%{level}_%{+YYYY.MM.dd}"
document_type => "test"
}
}
}
filebeat 配置
filebeat.inputs:
- type: log
paths:
- /zccdata/data/logs/*.log
tags: ["zcclog"]
# include_lines: ['ERROR', 'WARN']
fields:
level: debug
review: 1
fields_under_root: true
multiline:
pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
negate: true
match: after
output.logstash:
hosts: ["192.168.88.139:5044"]
安装kibana
安装流程详见:https://www.elastic.co/guide/en/kibana/current/targz.html
安装完毕后需要配置config下的kibana.yml配置文件,配置一下几项即可:
server.port:5601,打开注释即可
server.host,配置本机ip,启动后可以通过ip+端口访问
elasticsearch.url,配置es的域名(ip)+端口
kibana.index,打开注释即可
启动kibana
cd到bin目录,执行下面的命令
nohup ./kibana &
ES数据定期删除
如果不删除ES数据,将会导致ES存储的数据越来越多,磁盘满了之后将无法写入新的数据。这时可以使用脚本定时删除过期数据。
#/bin/bash
#es-index-clear
#只保留15天内的日志索引
LAST_DATA=`date -d "-15 days" "+%Y.%m.%d"`
#删除上个月份所有的索引
curl -XDELETE 'http://ip:port/*-'${LAST_DATA}'*'
可以视个人情况调整保留的天数,这里的ip和port同样设置为不存储数据的那台机器。该脚本只需要在ES中一台机器定时运行即可。
crontab -e添加定时任务:
0 1 * * * /search/odin/elasticsearch/scripts/es-index-clear.sh
每天的凌晨一点清除索引。
上一篇: 获取浏览器的名称以及版本号
下一篇: ELK项目
推荐阅读
-
MySQL InnoDB 日志管理机制中的MTR和日志刷盘
-
Word文档管理API—Aspose.Words v19.11双语言平台同步更新!无需Microsoft Word依赖项!
-
什么是OpenStack 开源的云计算管理平台项目
-
android轻松管理安卓应用中的log日志 发布应用时log日志全部去掉的方法
-
浪潮司库大数据可视化分析平台,为企业打造资金管理“千里眼”
-
Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验
-
Android之崩溃日志管理
-
全面解析LinkedIn以日志为中心的大数据管理方式
-
ELK日志分析系统(1)-基本环境搭建
-
大势至局域网共享文件管理软件详细记录服务器共享文件访问日志、保护共享文件安全