官网下载地址:下载 Elastic 产品 | Elastic
Elasticsearch: https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz
Kibana: https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz
Logstash: https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz
Filebeat: https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz
ELK的三种部署方式:
Elasticsearch + Logstash + Kibana
Elasticsearch + Logstash + Kibana + filebeat
Elasticsearch + Logstash + Kibana + filebeat + redis/Kafka等中间件
本文使用第二种部署方式。
一、资源规划
1.1 服务器信息
server_name | ip_address | role |
filebeat+Log_sever | 192.168.12.129 | |
Elasticsearch | 192.168.12.130 | |
Kibana | 192.168.12.131 | |
Logstash | 192.168.12.134 |
1.2 版本信息
sever | version |
elasticsearch |
|
Kibana |
|
Logstash |
|
二、准备工作
2.1 创建运行用户
useradd elk
passwd elk
2.2 修改系统资源限制
## 修改 /etc/security/limits.conf 添加以下内容 * soft core unlimited * hard core unlimited * soft noproc 999999 * hard noproc 999999 * soft nofile 999999 * hard nofile 999999 * hard memlock unlimited * soft memlock unlimited ## 修改 /etc/sysctl.conf 添加以下内容 vm.max_map_count=655360 ## 使修改生效 sysctl -p #防火墙都关掉 systemctl stop firewalld
三、搭建 elasticsearch
3.1 JDK环境配置
部署配置ES,需要配置JDK环境,JDK是Java语言的软件开发工具包
tar xf jdk-8u351-linux-x64.tar.gz mv jdk1.8.0_351 /usr/java
设置环境变量:
cat >>/etc/profile<<EOF export JAVA_HOME=/usr/java export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH EOF source /etc/profile java -version
3.2 配置elasticsearch
下载elasticsearch7.5.1版本:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.5.1-linux-x86_64.tar.gz tar xf elasticsearch-7.5.1-linux-x86_64.tar.gz mv elasticsearch-7.5.1 /usr/local/elasticsearch
修改 vim /usr/local/elasticsearch/config/elasticsearch.yml文件,
network.host: 0.0.0.0 node.name: node-1
3.3 启动查看状态
使用创建的elk用户, 用来启动ES,ES服务默认不允许使用root启动服务
useradd elk chown -R elk. /usr/local/elasticsearch su - elk /usr/local/elasticsearch/bin/elasticsearch -d
查看日志及监听端口(非root):
tailf /usr/local/elasticsearch/logs/elasticsearch.log ps -ef|grep java netstat -nutlp|grep -E "9200|9300"
3.4 关闭服务
-
查看ElasticSearch是否正在运行:
ps -aux|grep elasticsearch| grep -v grep
-
如果正在运行,查看进程id:
ps -aux|grep elasticsearch| grep -v grep | awk \'{print $2}\'
-
执行kill命令,停止进程:
kill -9进程id
四、搭建 Kibana
4.1 部署Kibana
下载kibana,部署安装kibana 不需要安装Java jdk环境,下载源码包,解压启动即可:
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.5.1-linux-x86_64.tar.gz tar xf kibana-7.5.1-linux-x86_64.tar.gz mv kibana-7.5.1-linux-x86_64 /usr/local/kibana
4.2 配置Kibana
kibana.yml
vim /usr/local/kibana/config/kibana.yml #配置kibana的端口 ## server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://192.168.12.130:9200"] logging.dest: /usr/local/kibana/logs/kibana.log i18n.locale: "zh-CN"
创建日志目录并授权
[root@localhost ~]# mkdir /usr/local/kibana/logs [root@localhost ~]# chown -R elk.elk /usr/local/kibana/
4.3 启动查看状态
4.3.1 前台启动(非root)
[elk@localhost ~]$ /usr/local/kibana/bin/kibana
4.3.2 后台启动
[elk@localhost ~]$ /usr/local/kibana/bin/kibana &
4.3.3 root启动
#前台启动 cd /usr/local/kibana/bin ./kibana --allow-root #或者后台启动 nohup ./kibana --allow-root >> /usr/local/kibana/logs/nohup.out 2>&1 & ## 检查是否启动成功 lsof -i:5601 netstat -nutlp|grep 5601 #浏览器访问:192.168.12.131:5601
4.4 关闭服务
-
查看Kibana是否正在运行:
ps -aux|grep kibana| grep -v grep
-
如果正在运行,查看进程id:
ps -aux|grep kibana| grep -v grep | awk \'{print $2}\'
-
执行kill命令,停止进程:
kill -9进程id
五、搭建 Logstash
5.1 JDK配置
由于logstash基于JAVA 语言开发,logstash客户端部署需要安装JDK环境:(同上3.1)
5.2 配置logstash
下载解压logstash软件包:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.5.1.tar.gz tar zxf logstash-7.5.1.tar.gz mv logstash-7.5.1 /usr/local/logstash
logstash.yml
/usr/local/logstash/config/logstash.yml http.host: "0.0.0.0"
logstash-sample.conf
input { beats { port => 5044 } } # 过滤 filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => ["http://192.168.12.130:9200"] index => "%{[fields][service]}-%{+YYYY.MM.dd}" #user => "elastic" #password => "changeme" } stdout { codec => rubydebug } }
5.3 ELK收集系统日志
创建收集日志配置目录及文件:
mkdir -p /usr/local/logstash/config/etc/ cd /usr/local/logstash/config/etc/ touch index.conf
index.conf
input { stdin { } } output { stdout { codec => rubydebug {} } elasticsearch { hosts => "192.168.12.130:9200" } }
启动index.conf服务:
/usr/local/logstash/bin/logstash -f index.conf
浏览器访问:192.168.12.131:5601
5.4 启动logstash服务
[root@localhost ~]# chown -R elk.elk /usr/local/logstash [root@localhost ~]# su - elk # 前台启动 [elk@localhost ~]$ /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/elasticsearch.conf # 后台启动 [elk@localhost ~]$ cd /usr/local/logstash/bin && nohup ./logstash -f /usr/local/logstash/config/elasticsearch.conf >/dev/null 2>&1 &
5.5 关闭服务
-
查看logstash是否正在运行:
ps -aux|grep logstash | grep -v grep
-
如果正在运行,查看进程id:
ps -aux|grep logstash | grep -v grep | awk \'{print $2}\'
-
执行kill命令,停止进程:
kill -9 进程id
六、搭建filebeat
6.1 安装filebeat
下载解压Filebeat软件包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.5.1-linux-x86_64.tar.gz tar xf filebeat-7.5.1-linux-x86_64.tar.gz mv filebeat-7.5.1-linux-x86_64 /usr/local/filebeat
6.2 修改配置文件
filebeat.yml
vim /usr/local/filebeat/filebeat.yml 按需求修改 #========= Filebeat inputs ========== filebeat.inputs: - type: log enabled: true paths: - /usr/local/xxx/logs/access.log multiline: pattern: '^\d{4}-\d{1,2}-\d{1,2}\s\d{1,2}:\d{1,2}:\d{1,2}' negate: true match: after fields: logtype: xxx_access
创建Filebeat日志目录
[root@localhost ~]# mkdir /usr/local/filebeat/logs [root@localhost ~]# chown -R elk.elk /usr/local/filebeat
6.3 启动filebeat服务(非root)
[root@localhost ~]# su - elk [elk@localhost ~]# cd /usr/local/filebeat # 前台启动 [elk@localhost filebeat]$ ./filebeat -e -c filebeat.yml >>logs/filebeat.log # 后台启动 [elk@localhost filebeat]$ nohup ./filebeat -e -c filebeat.yml >>logs/filebeat.log >/dev/null 2>&1 &
持续更新...
七、kibana 面板使用
7.1 登录使用
1、浏览器输入:192.168.12.130:5601
2、选择自己浏览,出现以下界面
3、分别点击管理--》索引管理,这时候就能看到相关的索引信息
7.2 创建logstash访问日志索引
1)索引模式--->>创建索引模式,输入索引模式名称,点击下一步
2)点击Discover,就能看到日志数据了,如下图