828华为云征文|在flexus x上部署elk日志系统-爱代码爱编程
前言
当前,正值华为云隆重推出的828 B2B企业节活动期间,其中Flexus X实例的优惠促销力度尤为吸引人,强烈建议各位业界同仁积极参与探索。特别是对于在业务运营中对算力性能有严苛需求,同时希望自建的MySQL数据库、Redis缓存系统以及Nginx服务器能够发挥卓越性能的朋友们,这绝对是一个不容错过的良机,务必前往了解详情。
在上一篇文章中,我在Flexus X上部署Mysql和一套xxl-job分布式任务管理系统,完成了Flexus X的首次操作,本次我将会在Flexus X尝试部署一套ELK日志管理系统,并且在项目中引用,那么就下来就看我怎么实现了.
一. 什么是ELK?
ELK是三个开源框架首字母组成的一个拼写词,分别指: Elasticsearch、Logstash、Kibana
- Elasticsearch: Elasticsearch也叫弹性搜索, 是一个基于Lucene的搜索服务器。它提供了一个基于RESTful web界面的分布式多用户全文搜索引擎。弹性搜索是用Java开发的,根据Apache许可条款作为开源发布。是目前比较流行的企业搜索引擎。专为在云计算,使用而设计,可实现实时搜索,稳定、可靠、快速、易于安装和使用。
- Logstash: Logstash是一个管理日志和事件的工具。您可以使用它来收集日志、转换日志、解析日志,并将它们作为数据提供给其他模块调用,例如搜索和存储。
- Kibana: Kibana是一个优秀的前端日志显示框架,可以将日志详细转换成各种图表,为用户提供强大的数据可视化支持。
二. 安装部署
1). Elasticsearch
Elasticsearch安装依赖于JDK,所以需要提前安装好,我之前安装过了,如果有需要的话可以查看我上一篇文章
下载es:
在下载es的时候,可以选择官网的下载地址: Download Elasticsearch | Elastic,
也可以选择华为的镜像(推荐华为,下载比较快) :https://mirrors.huaweicloud.com/elasticsearch
在服务器中使用wget进行下载:
wget https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-linux-x86_64.tar.gz
解压安装:
选择合适的目录,穿件文件夹,并解压到新创建的文件夹下:
mkdir /usr/local/elasticsearch
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz -C /usr/local/elasticsearch/
修改配置文件:
到解压的目录里面,修改es的yml文件
cd /usr/local/elasticsearch/elasticsearch-7.8.0/
vim ./config/elasticsearch.yml
1. 放开node.name,设置节点的名称
2. network.host: 0.0.0.0 # 允许外部 ip 访问
3. cluster.initial_master_nodes: ["node-1"] # 设置集群初始主节点
提权:
es不允许Root账号为启动es,所以我们需要创建一个普通的账号
# 添加用户
adduser es
# 设置密码 需要输入两次同一个
passwd es
# 将对应的文件夹权限赋予用户 es
chown -R es /usr/local/elasticsearch
启动:
su es
./bin/elasticsearch -d
启动之后报错了:
解决方式:
切换到root用户
解决办法: 修改 /etc/security/limits.conf 文件
# 修改文件
vim /etc/security/limits.conf
# 新增内容
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
修改 /etc/sysctl.conf 文件
vim /etc/sysctl.conf
# 添加下面一行
vm.max_map_count=655360
# 执行命令
sysctl -p
验证:
在地址栏输入域名xxxx.xxx.xxx.xxx:9200 访问 可以出现下面的情况 表示安装成功!
遇到的问题:
1. 9200 端口号问题 需要在安全组那进行配置
2. es下载 试了好几个方法 其中华为源那个最简单 开箱即用
3. es安装后最后一步起不来: 这几个问题一般都是es的运行环境的要求,简单搜一下 改一下配置即可.
2). Kibana
下载Kibana
注意:需要选择和es的版本一致 !
华为镜像源:https://mirrors.huaweicloud.com/kibana
wget https://mirrors.huaweicloud.com/kibana/7.8.0/kibana-7.8.0-linux-x86_64.tar.gz
解压安装:
解压到一个指定的目录下面:
# 解压到当前目录
tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz
# 重命名并移动到指定目录
mv ./kibana-7.8.0-linux-x86_64 /usr/local/kibana-7.8.0
修改配置:
vim ./config/kibana.yml
# 服务端口
server.port: 5601
# 服务器ip 本机
server.host: "0.0.0.0"
# Elasticsearch 服务地址
elasticsearch.hosts: ["http://localhost:9200"]
# 设置语言为中文
i18n.locale: "zh-CN"
授权:
给es用户授权操作Kibana目录的权限:
chown -R es /usr/local/kibana-7.8.0
启动:
启动前要保证es已经启动,Kibana对应的5601端口已经通过安全组开放
# 后台启动方式
nohup ./bin/kibana &
验证:
在浏览器中输入http://域名:5601进行验证 出现下图即表示安装成功!
遇到的问题:
修改Kibana的配置文件和启动Kibana的时候,因为我们是解压后的目录,所以在操作的时候,需要cd到该目录下进行操作.
3). Logstash
下载:
华为镜像源: https://mirrors.huaweicloud.com/logstash (和ES需保持版本一致)
wget https://mirrors.huaweicloud.com/logstash/7.8.0/logstash-7.8.0.tar.gz
安装:
# 解压
tar -zxvf logstash-7.8.0.tar.gz
# 移动到指定目录
mv ./logstash-7.8.0 /usr/local/logstash-7.8.0
修改配置文件:
这里不建议直接修改配置文件 最后copy一个文件
cp config/logstash-sample.conf config/logstash-es.conf
vim config/logstash-es.conf
input { # input输入源配置
tcp { # 使用tcp输入源
port => 9601 # 服务器监听端口9061接收日志,默认ip localhost
codec => json_lines # 使用json解析日志 需要安装json解析插件
}
}
output { # output 数据输出配置
elasticsearch { # 使用elasticsearch接收
hosts => ["http://localhost:9200"] # 集群地址 多个用,隔开
}
stdout {
codec => rubydebug # 输出到命令窗口
}
}
插c插件安装:
修改源: 用清华镜像
vim Gemfile
# 将source这一行改成如下所示:
source "https://mirrors.tuna.tsinghua.edu.cn/rubygems/"
./bin/logstash-plugin install logstash-codec-json_lines
启动:
nohup ./bin/logstash -f ./config/logstash-es.conf &
三. 在实际中应用:
1. 在项目中引入依赖:
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
2. 在Resources里配置logback
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--指定logstash ip:监听端口-->
<destination>10.0.0.0:9601</destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<!--引用springboot默认配置-->
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<root level="INFO">
<!--使用上述订阅logstash数据tcp传输 -->
<appender-ref ref="LOGSTASH" />
<!--使用springboot默认配置 调试窗口输出-->
<appender-ref ref="CONSOLE" />
</root>
</configuration>
3. 启动项目产生日志
总结:
通过两次的部署实验来总结, Flexus X作为一款高性能的计算平台,整个部署过程中,Flexus X提供了稳定的服务,使得ELK组件的安装和配置非常顺利,没有出现由于硬件或系统层面的问题而导致的中断。不仅提供了出色的硬件支持,还优化了软件环境,使得ELK日志系统的部署变得简单高效,大大提升了日志管理和分析的能力。