当前位置:网站首页 > Linux运维 > 正文

ELK日志分析系统-详细教程

作者:jinxijing发布时间:2020-08-09分类:Linux运维浏览:80


导读:1.docker中安装elasticsearch我们服务器一般都不要我们安装elasticsearch 别人已经安装好了 我们直接使用就可以了,如果没有安装我们就自己用docker安装一下。1.拉去镜像elasticsearch 拉去镜像的名称7.5.2 :拉取ES版本号请确保elasticsearch、logstash、kibana三者的版本号尽量一样,负责启动kibana会报错。

1.docker中安装elasticsearch

我们服务器一般都不要我们安装elasticsearch 别人已经安装好了 我们直接使用就可以了,如果没有安装我们就自己用docker安装一下。

1.拉去镜像

elasticsearch 拉去镜像的名称

7.5.2 :拉取ES版本号

请确保elasticsearch、logstash、kibana三者的版本号尽量一样,负责启动kibana会报错。

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.5.2

2.创建容器并启动

-p 9200:9200 -p 9300:9300 宿主机端口:容器端口 左边宿主机右边容器端口进行映射

docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.5.2

3.修改配置文件

修改配置文件我们可以在创建容器的时候直接指定宿主机和容器进行映射,前提是你已经在宿主机创建了es配置文件,我们这里安装可以直接进入容器进行修改配置文件

进入容器默认就在/usr/share/elasticesarch 我们只需要cd config 目录就行

修改elasticesarch.yml 配置文件

进入容器里面

docker exec -it 容器ID /bin/sh
vi elasticesarch.yml

elasticesarch.yml 完整配置

cluster.name: "docker-cluster"
network.host: 0.0.0.0 # 允许任何端口访问
transport.host: 0.0.0.0
#允许跨域,kibana和es-head需要
http.cors.enabled: true
http.cors.allow-origin: "*"

修改完成配置文件保存退出,然后回到宿主机重启容器

docker restart 容器ID

重启完成我们在浏览器用 ip+port 访问

如果能看到这个界面说明我们的elasticesarch安装就成功了

2.安装logstash

logstash我们这里使用压缩包安装方式,我们只需要下载解压就使用了非常简单。

下载地址: https://www.elastic.co/cn/downloads/past-releases#logstash

下载以后上传到你要安装的目录解压

1.解压:

如果需要解压指定目录 加 -C参数指定解压,

例如:tar -zxvf logstash-7.0.0.tar.gz -C /user/local

tar -zxvf 名称

2.进入解压config目录 修改配置文件

先用cy命令复制出一个.conf文件。不要直接修改原有的配置文件

cp logstash-sample.conf logstahs.conf

我们这里先使用一个最简单的示例,用vim打开logstash.conf文件删除原有的配置信息,粘贴以下内容。

input 是输入源

file 是指在/usr/local/logstash目录下收集所有以.log结尾的日志文件

output 是收集的数据输出到哪里,我们这里指定的是elasticsearch 也就是说会直接保存到es

input{
file {
path =>"/usr/local/logstash/*.log"
start_position => "beginning"
}
}
output {
elasticsearch { hosts =>["http://ip:port"] }
}

3.在logstash/bin目录下创建一个启动脚本

vim startup.sh //创建startup.sh
nohup ./logstash -f ../config/logstash.conf & //startup.sh内容
./startup.sh //启动

启动完成完成以后我们可以在/usr/local/logstash目录下创建一个.log文件如果内容保存到es那说明我们配置没文件。

以上是测试配置,下面我们把配置修改成我们项目对应的配置文件

一下配置我根据我们项目日志文件格式编写的收集规则,并非通用格式。

我们只需要复制配置文件 修改里面的path和elasticsearch 地址就可以了

path 是指我们输出日志存放路径,path 路径可以自己指定

vim logstash.conf

input{
file {
path => "/usr/local/weshine-cloud/wshine/zlt-business/logs/application/*.log"
type => "sys"
exclude => "*.0.log"
exclude => "audit.log"
start_position => "beginning"
}
file {
path => "/usr/local/weshine-cloud/wshine/zlt-business/logs/audit/audit.log"
codec => multiline {
pattern => "start:*"
negate => true
what => "previous"
}
type => "audit"
exclude => "*.0.log"
start_position => "beginning"
}
}
filter {
if [type] == "sys" {
multiline {
pattern => "^\[\w+-\w+:\d*.\d*.\d*.\d*:\d*\]"
negate => true
what => "previous"
}
}
if [type] == "sys"{
grok {
match => { "message" => "\[(?<serviceName>[a-z]+-[a-z]+):%{IP:client}:%{NUMBER:port}]\s+(?<Date>(\d*[./-]\d*[./-]\d* \d*:\d*:\d*[.,][0-9]+))\s+%{WORD:debug}\s+%{NUMBER:pid}\s+(?<content>[\w\W]*)"}
}
}
if [type] == "audit"{
grok {
match => { "message" => "[a-z]+:\=+(?<option>[A-Za-z\\u4e00-\\u9fa5]+)[\=\s\n]+[\\u4e00-\\u9fa5]+:(?<serverName>[a-z\-]+)[\s\n\\u4e00-\\u9fa5]+:(?<date>[a-zA-Z\d\-\.:]+)(?<content>[\w\W]*)"}
}
}
mutate {
remove_field => "message"
}
}
output {
if [type] == "sys" {
elasticsearch {
hosts => ["http://49.234.130.16:9200"]
index => "log-%{serviceName}"
}
} else if [type] == "audit" {
elasticsearch {
hosts => ["http://49.234.130.16:9200"]
index => "log-audit-%{serverName}"
}
}

stdout { codec => rubydebug }
}

4.安装multiline插件

进入logstash/bin目录下执行一下目录:

./logstash-plugin install logstash-filter-multiline

二、multiline 使用方法

codec =>multiline {
charset=>... #可选字符编码
max_bytes=>... #可选 bytes类型设置最大的字节数
max_lines=>... #可选number类型设置最大的行数,默认是500行
multiline_tag... #可选string类型设置一个事件标签,默认是multiline
pattern=>... #必选string类型设置匹配的正则表达式
patterns_dir=>... #可选 array类型可以设置多个正则表达式
negate=>... #可选boolean类型默认false不显示,可设置ture
what=>... #必选向前previous ,向后 next
}

3.安装kibanna 展示日志

docker安装Kibana

docker pull kibana:7.8.0

在本地创建kibana 配置文件

vim /etc/kibana/config/kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://ip:9200" ]#es地址
xpack.monitoring.ui.container.elasticsearch.enabled: true

创建容器

docker run --name kibana -v /etc/kibana/config:/usr/share/kibana/config -p 8089:5601 -d kibana:7.8.0

启动完成以后用ip+port访问,如果看到这个界面我们就安装完毕了

展示日志文件

点击management

选择索引模式

创建索引模式

输入:log-*匹配所有log-开头日志

下一步

创建索引

然后点击Discover

选择我们创建的索引就可以看到日志了

标签:ELK日志分析系统