ELK日志系统搭建步骤
作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io
日志平台构成:
前置条件:
1、Centos6或者7
2、登录centos工具:PuTTY64位
3、文件传输工具:WinSCP
一、JDK安装
1、下载JDK8或者JDK11 linux版本(本文下载的是JDK8)
2、在linux系统目录/usr/local下新建目录java
命令:
mkdir java
3、将下载的tar.gz文件拷贝的linux系统下/usr/local/java下,并解压
解压命令:
tar zxvf jdk-8u211-linux-x64.tar.gz`
4、重命名解压后的文件夹为jdk8
命令:
mv jdk1.8.0_211 jdk8
5、编辑系统配置文件,配置java环境变量
命令:
vim /etc/profile
在文件末尾加入如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_152
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
6、重新加载配置文件使配置立即生效
命令:
source /etc/profile
7、测试安装结果:
命令:
java -version
二、logstash安装
1、在www.elastic.co官网下载logstash的linux版本,本文下载的是logstash-7.0.0.tar.gz
2、使用winscp工具将文件拷贝到/usr/local/src下
3、解压安装文件:
命令:
tar zxvf logstash-7.0.0.tar.gz
4、移动解压后的文件并重命名:
命令:
mv logstash-7.0.0 /usr/local/logstash
5、测试:
cd /usr/local/logstash
bin/logstash -e 'input { stdin { } } output { stdout {} }'
等待管道启动"Pipeline main started"
输入:hello world
测试结果:
6、在/usr/local/logstash/config下新建logstash.conf配置文件,用于配置数据输入输出和过滤规则,该目录下有logstash-sample.conf样板配置文件,可以复制修改。
具体配置如下:
input {
file {
path => "/usr/local/logstash/logs/*" #logstash日志文件
type => "logstash"
start_position => "beginning" #从文件开始处读写
}
file {
path => "/var/log/messages" #系统日志
type => "system"
start_position => "beginning"
}
stdin {} #可以从标准输入读数据
beats {
port => 5044
}
}
filter {
\#定义数据的格式
grok {
match => { "message" => "%{DATA:timestamp}\|%{IP:serverIp}\|%{IP:clientIp}\|%{DATA:logSource}\|%{DATA:userId}\|%{DATA:reqUrl}\|%{DATA:reqUri}\|%{DATA:refer}\|%{DATA:device}\|%{DATA:textDuring}\|%{DATA:duringTime:int}\|\|"}
}
\#定义时间戳的格式
date {
match => [ "timestamp", "yyyy-MM-dd-HH:mm:ss" ]
locale => "cn"
}
}
output {
if[type]=="system" {
elasticsearch {
hosts => ["http://192.168.108.131:9200"]
\#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
index => "system-%{+YYYY.MM.dd}"
\#user => "elastic"
\#password => "changeme"
}
}
else if[type]=="logstash" {
elasticsearch {
hosts => ["http://192.168.108.131:9200"]
\#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
index => "logstash-%{+YYYY.MM.dd}"
}
}
else {
elasticsearch {
hosts => ["http://192.168.108.131:9200"]
\#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
index => "test-%{+YYYY.MM.dd}"
}
}
}
7、启动logstash:
bin/logstash -f /usr/local/logstash/config/logstash.conf
三、elasticsearch安装
1、在www.elastic.co官网下载elasticsearch的linux版本,本文下载的是elasticsearch-7.0.0-linux-x86_64.tar.gz
2、使用winscp工具将文件拷贝到/usr/local/src下
3、解压安装文件:
命令:
tar zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz
4、移动解压后的文件并重命名:
命令:
mv elasticsearch-7.0.0 /usr/local/elasticsearch
5、添加系统用户,用于启动elasticsearch,因为root账户不能用于启动,会报错。
命令:
useradd es
6、设置账号密码
命令:
passwd es
按提示设置密码
7、修改/usr/local/elasticsearch目录的属主权限,改为刚刚创建的用户
命令:
chown -R es:es /usr/local/elasticsearch
8、修改配置文件vim /usr/local/elasticsearch/config/elasticsearch.yaml
添加配置如下:
#集群名称
cluster.name: my-application
\#节点名称
node.name: node-1
\#数据存放路径
path.data: /usr/local/elasticsearch/data
\#日志存放路径
path.logs: /usr/local/elasticsearch/logs
\#主机网络地址
network.host: 192.168.108.131
\#主节点配置
discovery.seed_hosts: ["192.168.108.131"]
cluster.initial_master_nodes: ["node-1"]
9、测试,切换到es账号
命令:
su es
执行
/usr/local/elasticsearch/bin/elasticsearch
10、浏览器输入192.168.108.131:9200,结果如下,安装配置成功!
常见问题解决:
四、kibana安装部署
1、在www.elastic.co官网下载elasticsearch的linux版本,本文下载的是kibana-7.0.0-linux-x86_64.tar.gz
2、使用winscp工具将文件拷贝到/usr/local/src下
3、解压文件
命令:
tar zxvf /usr/local/src/kibana-7.0.0-linux-x86_64.tar.gz
4、移动并修改命名
命令:
mv /usr/local/src/kibana-7.0.0 /usr/local/kibana
5、编辑kibana配置文件,vim /usr/local/kibana/config/kibana.yml
添加如下配置:
#端口号
server.port: 5601
#主机地址
server.host: "192.168.108.131"
#服务器名称
server.name: "kibana"
#elasticsearch服务地址
elasticsearch.hosts: ["http://192.168.108.131:9200"]
6、启动kibana服务
#进入执行文件目录
cd /usr/local/kibana/bin
#执行
./kibana
7、测试结果,浏览器输入http://192.168.108.131:5601,结果如下: