集约化日志分析平台《二》——搭建ELK环境

 

ElasticSearch(简称ES),是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。

Logstash,是一个数据收集引擎,主要用于进行数据收集、解析,并将数据发送给ES。支持的数据源包括本地文件、ElasticSearch、MySQL、Kafka等等。

Kibana,为 Elasticsearch 提供了分析和 Web 可视化界面,并生成各种维度表格、图形。

 ELK系统流程图

环境依赖:CentOS7.5,JDK11,ElasticSearch7.10.1,Logstash 7.10.1,Kibana7.10.1

 

 

 仔细点,你会发现,ELK三个版本是一样得,这三个工具现在就是成套开发,整套使用的

一、数据源

Logstash支持的数据源种类繁多哦,咱们这里先用最简单的搞起来。直接放一个日志文件,就叫ELK.log吧,文件随便整点。

文件路径为:

/home/slave1/ELK/data

内容如下:

  

Start.......
What is Apache Flink?
Architecture
Applications
Operations
What is Stateful Functions?
Use Cases
Powered By
 
Downloads
Getting Started
Documentation
Getting Help
Flink Blog
flink-packages.org
End............

 

二、Logstash

当前Logstash版本是7.10。jdk1.8够用了。

 

 下载logstash压缩文件

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-linux-x86_64.tar.gz

解压文件,找到/config目录下的logstash-sample.conf文件,修改配置:

 

input {
  file{
    path => ['/home/slave1/ELK/data/*.log']
    type => 'user_log'
    start_position => "beginning"
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.149.128:9200"]
    index => "user-%{+YYYY.MM.dd}"
  }
}

 input表示输入源,output表示输出,还可以配置filter过滤,架构如下:

 

 配置完之后,要有数据源,也就是日志文件,准备一个user.jar应用程序,然后后台启动,并且输出到日志文件user.log中,命令如下:

nohup java -jar user.jar >/usr/local/user/user.log &

 接着再后台启动Logstash,命令如下:

nohup /home/slave1/ELK/logstash-7.10.1/bin/logstash -f /home/slave1/ELK/logstash-7.10.1/config/logstash-sample.conf &

启动完之后,使用jps命令,可以看到两个进程在运行:

[slave1@xulshslave1 logstash-7.10.1]$ nohup /home/slave1/ELK/logstash-7.10.1/bin/logstash -f /home/slave1/ELK/logstash-7.10.1/config/logstash-sample.conf &
[1] 5551
[slave1@xulshslave1 logstash-7.10.1]$ nohup: ignoring input and appending output to ‘nohup.out’

[slave1@xulshslave1 logstash-7.10.1]$ jps
5579 Jps
5551 Logstash

 

三、ElasticSearch

下载压缩文件

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz

 找到config目录下的elasticsearch.yml文件,修改配置:

cluster.name: es-application
node.name: node-1
#对所有IP开放
network.host: 0.0.0.0
#HTTP端口号
http.port: 9200
#elasticsearch数据文件存放目录
path.data: /usr/elasticsearch-7.10.1/data

#path.data: /home/slave1/ELK/elasticsearch-7.10.1/data
#elasticsearch日志文件存放目录
path.logs: /usr/elasticsearch-7.10.1/logs

#path.logs: /home/slave1/ELK/elasticsearch-7.10.1/logs

配置完之后,因为ElasticSearch使用非root用户启动,所以创建一个用户。

# 创建用户
useradd esstorenew
# 设置密码
passwd esstorenew
# 赋予用户权限
chown -R esstorenew:esstorenew /home/slave1/ELK/elasticsearch-7.10.1/
chown -R esstorenew:esstorenew /usr/elasticsearch-7.10.1/

然后切换用户,启动:

# 切换用户
su esstorenew
# 启动 -d表示后台启动
./bin/elasticsearch -d

这个地方可能有报错信息

Error: Could not find or load main class org.elasticsearch.tools.java_version_checker.JavaVersionChecker

这是什么原因呢?解决方法

  把elasticsearch目录换到不属于root目录的其他目录就行了

 继续报错:

future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_161/jre] does not meet this requirement
future versions of Elasticsearch will require Java 11; your Java version from [/usr/local/jdk1.8.0_161/jre] does not meet this requirement

 好吧,更新jdk版本了。

继续报错:

[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max number of threads [3818] for user [es] is too low, increase to at least [4096]
[3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决办法:

修改 etc/security/limits.conf

sudo vi /etc/security/limits.conf

在文件最后面加上

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

注:*后面有空格

修改 /etc/sysctl.conf

sudo vi /etc/sysctl.conf

在文件最后面加上

vm.max_map_count=262144

配置重新生效

sysctl -p

重新启动

上一步遗留的错误需要继续解决啊

 

 根据错误提示,在配置文件中添加如下设置:

 

重启服务,未报错,由于jdk版本的因素,可能有警告,不碍事。 

使用命令netstat -nltp查看端口号:

 

 

访问http://192.168.149.128:9200/可以看到如下信息,表示安装成功。

 

 

 

 记住——一定要拿这个信息和配置文件的信息去比对,这种工具类软件,玩得就是个配置文件。

 要是访问不了,就需要检查网络了,常规问题是

1.外网访问不了该ip。

2.防火墙未关闭或者端口未开放。

四、Kibana

首先还是下载压缩包,然后解压,找到/config目录下的kibana.yml文件,修改配置:

server.port: 5601
server.host: "192.168.149.128"
elasticsearch.hosts: ["http://192.168.149.128:9200"]

和elasticSearch一样,不能使用root用户启动,需要创建一个用户:

# 创建用户
useradd kibananew
# 设置密码
passwd kibananew
# 赋予用户权限
chown -R kibananew:kibananew /usr/kibana-7.10.1-linux-x86_64/

然后使用命令启动:

#切换用户
su kibananew
#非后台启动,关闭shell窗口即退出
./bin/kibana
#后台启动
nohup ./bin/kibana &

启动后在浏览器打开http://192.168.0.111:5601,可以看到kibana的web交互界面:

posted @ 2021-01-11 15:34  杨兮臣  阅读(158)  评论(0编辑  收藏  举报