01ELK 7.7 日志服务器搭建及配置

  1. ELK 日志服务器搭建及配置

 

ELK介绍

什么是 ELK Stack?

很简单,指的就是 Elastic Stack。

 

那么,ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化。

 

Elastic Stack 是 ELK Stack 的更新换代产品。

 

ElasticSearch:是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

 

Logstash:是一个具有实时渠道能力的数据收集引擎,主要用于日志的收集与解析,并将其存入 ElasticSearch中。与ElasticSearch有很高的适配性。

 

Kibana:是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。

 

官方网站:

https://www.elastic.co/cn/

 

elastic-stack产品官网:

https://www.elastic.co/cn/elastic-stack

 

官方演示地址:

https://demo.elastic.co/

 

 

工作流程:

在需要收集日志的所有服务上部署logstash,作为logstash agent(logstash shipper)用于监控并过滤收集日志,将过滤后的内容发送到Redis,然后logstash indexer将日志收集在一起交给全文搜索服务ElasticSearch,可以用ElasticSearch进行自定义搜索通过Kibana 来结合自定义搜索进行页面展示。

 

 

环境:

因为我是做实验,所以只用了一台服务器,系统为 CentOS 7.8

,在服务器上安装 elasticsearch-7.7.1、kibana-7.7.1、logstash-7.7.1。

服务器:192.168.118.133

 

 

配置基础环境(全部安装)

1、关闭防火墙和seliunx

# systemctl stop firewalld && systemctl disable firewalld

 

# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config  && setenforce 0

 

2、设置打开文件数

vim /etc/security/limits.conf

 

* soft nofile 65536

* hard nofile 65536

* soft nproc 32000

* hard nproc 32000

 

vim /etc/sysctl.conf

vm.max_map_count=655360  #单个vm进程最大线程数量为改值的一半左右

 

执行以下命令使变动立即生效:

sysctl -p

 

 

安装配置jdk

[root@elk-175 ~]# yum install java-1.8.0-openjdk.x86_64 -y

[root@elk-175 ~]# java -version

openjdk version "1.8.0_212"

OpenJDK Runtime Environment (build 1.8.0_212-b04)

OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

 

 

更新时间:

yum install ntpdate -y

ntpdate time1.aliyun.com

 

 

 

ES安装部署

官网地址:

https://www.elastic.co/cn/elasticsearch/

https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

 

ES官方安装教程:

https://www.elastic.co/guide/en/elasticsearch/reference/7.7/rpm.html

 

 

Import the Elasticsearch PGP Key

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

Installing from the RPM repository

vim /etc/yum.repos.d/elasticsearch.repo

 
  

Download and install the RPM manually

 
  

 

配置 elasticsearch.yml如下:

[root@localhost ~]# cat /etc/elasticsearch/elasticsearch.yml | grep "^[a-z]"

node.name: node-133

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 192.168.118.133

http.port: 9200

bootstrap.memory_lock: true

http.cors.enabled: true
http.cors.allow-origin: "*"

 

ES启动注意事项:

1、对于 network.host: 192.168.118.133 配置项

如果启动在127.0.0.1网卡的话,可以正常启动

ES要跨主机访问,需要监听在真实网卡上

监听真实网卡需要调整系统参数才能正常启动,否则不可以

ES监听在非 127.0.0.1 网卡上,如监听在 0.0.0.0 或 真实网卡地址上时,需要调整的系统参数有:

(1)、修改最大文件打开数

vim /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 32000

* hard nproc 32000

 

(2)、修改最大打开进程数

vim /etc/security/limits.d/20-nproc.conf

*          soft    nproc     4096

 

(3)、内核参数调整

vim /etc/sysctl.conf

vm.max_map_count=655360

修改完这个后需要用命令 sysctl –p 使修改生效

 

解决 bootstrap.memory_lock: true  报错:

需要设置下系统配置文件,首先要切换到root用户,接着做以下修改:

1、修改/etc/security/limits.conf

文件最后添加以下内容:

~]# vim /etc/security/limits.conf

* soft nofile 65536

* hard nofile 65536

* soft nproc 32000

* hard nproc 32000

* soft memlock unlimited

* hard memlock unlimited

 

# 其中,* 为运行程序的用户,可根据自己的用户进行更改

 

~]# vim /etc/sysctl.conf

vm.swappiness=0

 

~]# sysctl –p     #执行以下命令使变动立即生效

 

重启系统

 

2、修改/etc/systemd/system.conf

分别修改以下内容:

DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity

 

3、执行以下操作,立即生效

/bin/systemctl daemon-reload

 

 

# 第17行,打开该配置并设置集群名称,如 elk+ip后两位

cluster.name: elk-116.8

# 第23行,打开该配置并设置节点名称,如 node-ip后两位

node.name: node-116.8

# 第33行,打开该配置并设置data存放的路径

path.data: /home/elk/es/data

# 第37行,打开该配置并设置logs日志存放的路径

path.logs: /home/elk/es/logs

# 第55行,打开该配置并设置为监听的网络地址

network.host: 192.168.116.8

# 第59行,打开该配置并设置监听的端口

http.port: 9200

# 第68行,建议打开此配置,在启动此节点时,传递主机的初始列表以执行发现,单台机器只填写一个IP,多台机器使用填写多个IP,用逗号隔开。ip可以用主机名代替。

discovery.seed_hosts: ["192.168.116.8"]

# 第72行,建议打开此配置,使用初始的符合主机资格的节点集引导集群,填写节点名称即可。

cluster.initial_master_nodes: ["node-116.8"]

 

Running Elasticsearch with systemd

 
  

启动 elasticsearch 服务:

systemctl daemon-reload

systemctl enable elasticsearch.service

systemctl start elasticsearch.service

 

 

本地查看服务是否启动:

[root@localhost ~]# netstat -ntpl | grep 9200

tcp6 0 0 192.168.118.133:9200 :::* LISTEN 2326/java

 

通过浏览器登录,页面展示如下:

01ELK 7.7 日志服务器搭建及配置_第1张图片

 

kibana安装部署

官网地址:

https://www.elastic.co/cn/elasticsearch/

https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

 

kibana官方安装教程:

https://www.elastic.co/guide/en/kibana/7.7/rpm.html

 

 

Import the Elasticsearch PGP Key

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

Installing from the RPM repository

vim /etc/yum.repos.d/kibana.repo

 
  

Download and install the RPM manually

 
  

Run Kibana with systemd

 
  

配置 kibana.yml如下:

[root@localhost ~]# cat /etc/kibana/kibana.yml | grep "^[a-z]"

server.port: 5601

server.host: "192.168.118.133"

server.name: "kibana-118.133"

elasticsearch.hosts: ["http://192.168.118.133:9200"]

i18n.locale: "zh-CN"

# 第7行,启用该配置,并修改为IP地址

server.host: "192.168.116.8"

# 第25行,启用该配置,并自定义服务名

server.name: "kibana-116.8"

# 第28行,启用该配置,并修改为ES的地址和端口

elasticsearch.hosts: ["http://192.168.116.8:9200"]

# 第115行,启用该配置,设置语言环境为中文

i18n.locale: "zh-CN"

 

启动 kibana 服务:

[root@localhost ~]# systemctl start kibana

 

本地查看服务是否启动:

[root@localhost ~]# netstat -atnop|grep 5601

tcp 0 0 192.168.118.133:5601 0.0.0.0:* LISTEN 2675/node off (0.00/0/0)

 

通过浏览器登录,页面展示如下:

01ELK 7.7 日志服务器搭建及配置_第2张图片

 

Logstash安装部署

官网地址:

https://www.elastic.co/cn/elasticsearch/

https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html

 

Logstash官方安装教程:

https://www.elastic.co/guide/en/logstash/7.7/installing-logstash.html#installing-logstash

 

 

Download and install the public signing key:

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

 

 

vim /etc/yum.repos.d/logstash.repo

 
  

 

 

And your repository is ready for use. You can install it with:

sudo yum install logstash

 

 

Run Logstash with systemd

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable logstash.service
sudo systemctl start logstash.service
sudo systemctl stop logstash.service

 

 

配置logstash:

修改logstash启动内存大小

[root@server1 yum.repos.d]# vim /etc/logstash/jvm.options

-Xms256M

-Xmx256M     此处大小根据自己虚拟机内存大小分配

 

修改logstash基本信息

[root@server1 yum.repos.d]# vim /etc/logstash/logstash.yml       #此文件同elasticsearch用来指定日志路径等信息,可以为默认。

 

启动logstash

[root@server1 yum.repos.d]# systemctl start logstash

[root@server1 yum.repos.d]# ps -ef |grep logstash

logstash  10478      1 85 22:47 ?        00:00:09 /bin/java -Xms256M -Xmx256M -XX:+UseConcMarkSweepGC -XX:CMSInitiatin

 

 

[root@server1 ~]# vim /etc/logstash/conf.d/system.conf

input {

  file {

    path => "/var/log/messages"     #日志路径

    type => "systemlog"      #类型

    start_position => "beginning"    #logstash 从什么位置开始读取文件

    stat_interval => "2"  #logstash 每隔多久检查一次被监听文件状态(是否有更新) ,默认是 1 秒。

  }

}

output {

  elasticsearch {

  hosts => ["192.168.118.133:9200"]      #指定elasticsearch监听地址

  index => "logstash-systemlog-%{+YYYY.MM.dd}"    #索引名称

 }

}

 

检测配置文件是否有语法错误:

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/system.conf -t

 

重启logstash

[root@server1 ~]# systemctl start logstash.service

 

 

查看进程:

ps -ef|grep logstash

 

 

 

Kibana中创建索引

 

点击管理模块

01ELK 7.7 日志服务器搭建及配置_第3张图片

 

创建索引模式

01ELK 7.7 日志服务器搭建及配置_第4张图片

 

输入想要创建的索引名称

01ELK 7.7 日志服务器搭建及配置_第5张图片

 

这里选择使用时间戳方式

01ELK 7.7 日志服务器搭建及配置_第6张图片

 

这里索引已经创建完成,可以看到索引信息

01ELK 7.7 日志服务器搭建及配置_第7张图片

 

点击dashboard,搜索刚才创建的索引

可以看到已经有数据了

01ELK 7.7 日志服务器搭建及配置_第8张图片

 

到此步已经完成了ELK对日志的监控

 

总结

ELK的功能十分强大,它能够很好地将复杂无序的日志友好的展示出来,方便IT人员快速的定位问题。本次搭建因为资源有限,所以架构比较简单,组件相对比较少。在企业中经常采用elasticsearch和logstash集群模式来提高性能,而且经常会用到filebeat,Redis等组件提高效率。安装配置比较简单,三个插件可以直接yum安装到底。重要的是配置有点复杂。

 

 

参考文章:

ELK(7.3版本)的搭建

https://blog.csdn.net/weixin_45413603/article/details/100050535

 

ELK-7.5搭建及监控日志教程

https://blog.csdn.net/lucky_ykcul/article/details/103302528

 

ELK-7.6.1部署记录

https://blog.csdn.net/wangtiandi/article/details/104915311

 

centos7.4安装elk7.7.0最新版本

https://blog.csdn.net/huangfujin321/article/details/106328278/

 

 

你可能感兴趣的:(日志服务器,Linux服务器)