centos7.5部署ELk

第1章 环境规划

1.1 ELK介绍

  ELKElasticSerachLogstashKibana三款产品名称的首字母集合,用于日志的搜集和搜索,今天我们一起搭建和体验基于ELK的日志服务;

1.12 环境说明

  本次实战需要两台电脑(或者vmware下的两个虚拟机),操作系统都是CentOS7,它们的身份、配置、地址等信息如下:

Hostname

Ip地址

身份说明

配置

elk-server

10.0.0.175

ELK服务端,接收日志,提供日志搜索服务

扫描二维码关注公众号,回复: 4603749 查看本文章

4G内存

docker01

10.0.0.110

Nginx服务端,Tomcat服务端产生的访问日志通过上报到Logstash

2G内存

  运行时的部署情况如下图所示:

1.3 业务要求

1、业务请求到达nginx-server机器上的Nginx

2Nginx响应请求,并在access.log文件中增加访问记录;

3FileBeat搜集新增的日志,通过LogStash5044端口上传日志;

4LogStash将日志信息通过本机的9200端口传入到ElasticSerach

5、搜索日志的用户通过浏览器访问Kibana,服务器端口是5601

6Kibana通过9200端口访问ElasticSerach

1.4  系统设置

1、设置hostname,打开文件/etc/hostname,将内容改为elk-server

2、关闭防火墙(如果因为其他原因不能关闭防火墙,也请不要禁止80端口):systemctl stop firewalld.service

3、禁止防火墙自动启动:systemctl disable firewalld.service

4、打开文件vim /etc/security/limits.conf,添加下面四行内容:

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096

5、打开文件vim /etc/sysctl.conf,添加下面一行内容:

vm.max_map_count=655360

加载sysctl配置,执行命令:sysctl -p

第2章 部署ELK

2.1 安装JDK

下载地址:https://www.oracle.com/technetelk/java/javase/downloads/jdk8-downloads-2133151.html

推荐使用JDK版本为8系列。

elk-server服务器上面部署:

将下载好的JDK上传到/opt目录下面

 cd  /opt/

#进行解压

tar xf  jdk-8u181-linux-x64.tar.gz

#创建软连接

ln -s  jdk1.8.0_181   /opt/jdk

#定义环境变量

sed -i.ori  '$a export JAVA_HOME=/opt/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile

#注释

export JAVA_HOME=/opt/jdk

<-- 定义jdk软件程序目录

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

<-- 定义jdk命令存在于环境变量中,可以直接使用

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

<-- 定义java程序运行所需的库文件环境变量(classpath)

# 加载环境变量配置信息

source /etc/profile

# 确认检查jdk版本信息

[root@elk-server ~]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

2.2 部署elasticsearch

#创建目录/usr/local/elk

[root@elk-server ~]# mkdir /usr/local/elk

#进入该目录中,下载软件包

[root@elk-server ~]# cd /usr/local/elk

#下载地址ELK官网https://www.elastic.co/downloads下载

#或者命令行上面直接下载

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz

#下载完毕后,将压缩包解压到/usr/local/elk目录下

tar  xf  elasticsearch-6.2.4.tar.gz
tar  xf  logstash-6.2.4.tar.gz
tar  xf  kibana-6.2.4-linux-x86_64.tar.gz

#创建软连接

ln -s /usr/local/elk/elasticsearch-6.2.4 /usr/local/elk/elasticsearch
ln -s /usr/local/elk/logstash-6.2.4 /usr/local/elk/logstash
ln -s /usr/local/elk/kibana-6.2.4-linux-x86_64 /usr/local/elk/kibana

创建用户:

ElasticSerach要求以非root身份启动,所以我们要创建一个用户:

创建用户组:

groupadd elk

创建用户加入用户组:

useradd elk -g elk

创建日志文件

touch /usr/local/elk/elasticsearch/logs/elasticsearch.log

设置ElasticSerach文件夹为用户elasticsearch所有:

chown -R elk. /usr/local/elk/elasticsearch/

启动ElasticSerach

切换到用户elasticsearch:su elasticsearch

su  -  elk

进入目录/usr/local/elk/elasticsearch;执行启动命令:bin/elasticsearch -d,此时会在后台启动elasticsearch

cd /usr/local/elk/elasticsearch && bin/elasticsearch -d

查看启动日志可执行命令:tail -f /usr/local/elk/elasticsearch/logs/elasticsearch.log 提示如下:

tail -f /usr/local/elk/elasticsearch/logs/elasticsearch.log

 通过ss -lntup查看端口号已经启动

执行curl命令检查服务是否正常响应:curl 127.0.0.1:9200,收到响应如下:

至此,ElasticSerach服务启动成功,接下来是Logstash

2.3 部署Logstash

#退出当前用户,回到root用户

在目录cd /usr/local/work/logstash下创建文件vim default.conf,内容如下:

# 监听5044端口作为输入
input {
    beats {
        port => "5044"
    }
}
# 数据过滤
filter {
    grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
    geoip {
        source => "clientip"
    }
}
# 输出配置为本机的9200端口,这是ElasticSerach服务的监听端口
output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
    }
}

后台启动Logstash服务

nohup bin/logstash -f default.conf --config.reload.automatic &

查看启动日志:tail -f logs/logstash-plain.log,启动成功的信息如下:

通过ss -lntup查看端口号已经启动

2.4 部署配置Kibana

打开Kibana的配置文件vim /usr/local/work/kibana/config/kibana.yml,到第七行

#server.host: "localhost"改成如下内容:

server.host: "10.0.0.108"

这样其他电脑就能用浏览器访问Kibana的服务了;

进入Kibana的目录:/usr/local/work/kibana ;执行启动命令:nohup bin/kibana &

cd  /usr/local/work/kibana && nohup bin/kibana &

查看启动日志:tail -f nohup.out 以下信息表示启动成功:

 

在浏览器访问http://10.0.0.175:5601,看到如下页面

至此,ELK服务启动成功,接下来我们将业务日志上报上来,需要操作另一台电脑:docker01;

第3章 部署nginx-server

3.1安装nginx-server

 在已经部署好的docker环境下,部署nginx-server

[root@docker01 ~]# docker run --name nginx-server -d -p 80:80 -v /var/log/nginx:/var/log/nginx nginx:1.14

 通过docker ps -a可以查看到服务已经运行

通过访问页面10.0.0.110

 多刷新几次,为增加日志,到此nginx-server部署完成

3.2 安装FileBeat

在nginx-server电脑创建目录/usr/local/work

mkdir  -p   /usr/local/work

进入/usr/local/work目录下执行以下命令,下载FileBeat安装包

cd   /usr/local/work
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz

下载完成后解压压缩包

tar -xf filebeat-6.2.4-linux-x86_64.tar.gz
ln -s /usr/local/work/filebeat-6.2.4-linux-x86_64 /usr/local/work/filebeat

打开文件/usr/local/work/filebeat/filebeat.yml,修改以下内容:

24      enabled: true

28     - /var/log/nginx/*.log

143    #output.elasticsearch:

145      # hosts: ["localhost:9200"]

153      output.logstash:

155      hosts: ["10.0.0.108:5044"]

最后的配置文件为:

[root@docker01 ~]# egrep -v '^$|#' /usr/local/work/filebeat/filebeat.yml
filebeat.prospectors:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
output.logstash:
  hosts: ["10.0.0.175:5044"]

启动FileBeat

nohup ./filebeat -e -c filebeat.yml &>/dev/null 2>&1 &

至此,FileBeat也启动成功了,接下来验证服务;

猜你喜欢

转载自www.cnblogs.com/wzxmt/p/10159951.html