ELK部署#yyds干货盘点#

Posted 知识摆渡人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK部署#yyds干货盘点#相关的知识,希望对你有一定的参考价值。

常规方式快速部署一套日志系统ELK

一、环境

1.操作系统:centos7

2.关闭防火墙、selinux

3. 软件环境:elk 7.7.0 、kafka2.12、filebeat7.7.1

4.三台机器,部署的应用分别如下:

192.168.80.3:logstash

192.168.80.4:es

192.168.80.5:kibana、kafka


二、 设置服务器时间同步

yum install ntpdate -y

ntpdate -u ntp.api.bz

echo "*/20 * * * * /usr/sbin/ntpdate -u ntp.api.bz >/dev/null &" >> /var/spool/cron/root


三、 安装jdk(logstash、es都需要java环境)

yum install *openjdk-devel* -y

java -version

tar zxvf jdk-8u311-linux-x64.tar.gz -C /usr/local/

vim /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_311

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

export PATH=$PATH:$JAVA_HOME/bin


四、logstash

1. 安装logstash

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

vim logstash.repo

[logstash-7.x]

name=Elastic repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

yum install logstash -y

2. 调试

./logstash -e input stdin output stdout

3. 配置logstash日志流转

日志入口流转配置

vim /etc/logstash/conf.d/input.conf

input

kafka

bootstrap_servers => ["192.168.80.5:9092"] #如果是kafka集群的话,多个地址分别加引号并用逗号隔开

client_id => "testloger"

group_id => "testloger" #logstash本身没有真正的集群这个概念,要实现高可用和高负载的话,堆机器就行,但是注意,多台logstash机器的group_id值要相同

auto_offset_reset => "latest"

consumer_threads => 5

decorate_events => true

topics => ["testloglog"]

type => "testloglog"

codec => json

日志过滤规则配置

vim /etc/logstash/conf.d/filter.conf


日志出口流转配置

vim /etc/logstash/conf.d/output.conf

output

if([type] == "testloglog")

elasticsearch

hosts => ["192.168.80.4:9200"] #如果是es集群的话,多个地址分别加引号并用逗号隔开

index => "testloglog-%+YYYY-MM-dd"

timeout => 300

else

elasticsearch

hosts => ["192.168.80.4:9200"] #如果是es集群的话,多个地址分别加引号并用逗号隔开

index => "test-nginx-error-%+YYYY-MM"

timeout => 300

根据需要配置合适的jvm参数

vim /etc/logstash/jvm.options

此处省略配置过程


关于logstash集群:根据上诉方法编写好logstash配置文件后,用n台logstash服务器运行即可。由于这个集群使用的是同一个group_id ,并不会出现logstash重复消费kafka集群的问题。


五、elasticsearch

1. 安装es

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

[elasticsearch-7.x]

name=Elastic repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

yum install elasticsearch -y

2. 修改配置文件

vim /etc/elasticsearch/elasticsearch.yml

network.host: 0.0.0.0

另外如下三项配置至少要配置要一项

discovery.seed_hosts,

discovery.seed_providers,

cluster.initial_master_nodes

根据需要配置合适的jvm参数

vim /etc/elasticsearch/jvm.options

3. google浏览器安装elasticsearch head插件

head插件提供一个可操作es的图形化界面,安装、使用方法如下:

(1)打开链接

谷歌浏览器访问http://extb.cqttech.com/search/elasticsearch%2520head

根据提示下载安装谷歌双核浏览器

 (2)安装下图中插件

(3)点击放大镜图标使用插件

红框中输入es地址和端口

可以通过界面对es做各种操作

六、kibana

1. 安装

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

[kibana-7.x]

name=Elastic repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

2. 配置

修改配置文件

vim /etc/kibana/kibana.yml

server.port: 5601

server.host: "0.0.0.0" #ip白名单

server.name: "192.168.80.5" #kibana服务器地址

elasticsearch.hosts: ["http://192.168.80.4:9200"] #如果是es集群的话,多个地址分别加引号并用逗号隔开

elasticsearch.requestTimeout: 30000000

如果是要中文显示界面的话,添加如下配置,默认是英文显示

i18n.locale: "zh-CN"

3. 使用

需要在kibana上创建索引

效果图


七. kafka

官方文档地址:http://kafka.apache.org/quickstart

wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.12-3.0.0.tgz

tar -zxvf kafka_2.12-3.0.0.tgz

mv kafka_2.12-3.0.0 kafka

删除 LICENSE、NOTICE 、site-docs

rm -rf LICENSE NOTICE site-docs

启动kafka单机版的命令(在启动kafka之前先启动zookeeper)

cd /opt/kafka/bin/

nohup   ./zookeeper-server-start.sh ../config/zookeeper.properties &

在启动该命令之后,可以在该虚拟机上查看进程

接下来,在bin目录下启动kafka

nohup ./kafka-server-start.sh ../config/server.properties &

再次查看进程

测试kafka功能是否正常

创建一个测试topic

./kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

查看topic是否创建成功

./kafka-topics.sh --list --bootstrap-server localhost:9092

启动一个生产者并投递消息

./kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test

启动一个消费者,查看消费是否正常,如下表示正常

./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning


八. filebeat

1. 安装filebeat

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

[logstash-7.x]

name=Elastic repository for 7.x packages

baseurl=https://artifacts.elastic.co/packages/7.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

2. 配置filebeat日志流转

根据实际的需求,将日志流转到不同的地方,只能是多对一的关系,就是说日志来源地可以是多个,但是日志下一站目的地只能配置一个,否则filebeat会启动失败。我此处配置的日志直接流转到kafka,主要关注如下配置内容,其他默认即可

vim /etc/filebeat/filebeat.yml

#=========================== Filebeat inputs =============================

filebeat.inputs:

- type: log

enabled: true

paths:

- /usr/local/openresty/nginx/logs/*.log

#-------------------------- Elasticsearch output ------------------------------

#output.elasticsearch:

# Array of hosts to connect to.

# hosts: ["192.168.80.4:9200"]


# Protocol - either `http` (default) or `https`.

#protocol: "https"


# Authentication credentials - either API key or username/password.

#api_key: "id:api_key"

#username: "elastic"

#password: "changeme"


#-------------------------- kafka output ------------------------------

output.kafka:

hosts: ["192.168.80.5:9092"] #如果是kafka集群的话,多个地址分别加引号并用逗号隔开

topic: testloglog

# required_acks: 1


#----------------------------- Logstash output --------------------------------

#output.logstash:

# The Logstash hosts

# hosts: ["localhost:5044"]


# Optional SSL. By default is off.

# List of root certificates for HTTPS server verifications

#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]


# Certificate for SSL client authentication

#ssl.certificate: "/etc/pki/client/cert.pem"


# Client Certificate Key

#ssl.key: "/etc/pki/client/cert.key"

以上是关于ELK部署#yyds干货盘点#的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#--ELK-logstash

#yyds干货盘点#--ELK-Elasticsearch介绍-1

部署Tomcat负载均衡 #yyds干货盘点#

ELkStack集群核心概念 #yyds干货盘点#

#yyds干货盘点#golang快速部署restful项目

Tomcat的部署安装(论坛)#yyds干货盘点#