centos7+kafka+elk6.5.x安装搭建(代码片段)

longblogs longblogs     2023-03-03     302

关键词:

 

Centos7+kafka+ELK6.5.x安装搭建

1   数据的流向

数据源端使用logstash收集udp 514日志输出到kafka中做测试(可选择filebeat,比较轻量级、对CPU负载不大、不占用太多资源;选择rsyslog对 kafka的支持是 v8.7.0版本及之后版本)。如下流程:

logstash(udp 514) => kafka(zookeeper) 集群=> logstash(grok) => elasticsearch集群 => kibana

Logstash(grok)因每条日志需做正则匹配比较消耗资源,所以中间加了kafka(zookeeper)集群做消息队列。

2  数据源端配置

2.1  安装Logstash(udp 514)

1)  安装jdk

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

2)  yum安装logstash

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

 

cat >> /etc/yum.repos.d/logstash-6.x.repo << ‘EOF‘

[logstash-6.x]

name=Elastic repository for 6.x packages

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

gpgcheck=1

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

enabled=1

autorefresh=1

type=rpm-md

EOF

 

yum install -y logstash

3)  配置

修改内存大小

vim /etc/logstash/jvm.options

-Xms2g

-Xmx2g

 

cp /etc/logstash/logstash-sample.conf /etc/logstash/conf.d/logstash514.conf

vim /etc/logstash/conf.d/logstash514.conf

#############################

input

  syslog

    type => "syslog"

    port => "514"

 

output

 kafka

  codec => "json"     #一定要加上,不然输出没有host等字段

  bootstrap_servers => "192.168.89.11:9092,192.168.89.12:9092,192.168.89.13:9092"

  topic_id => "SyslogTopic"

     

 

#############################

 

4)  测试配置

/usr/share/logstash/bin/logstash --path.settings /etc/logstash/ -t

-t: 测试配置文件

--path.settings: 单独测试需要指定配置文件路径,否则会找不到配置

 

5)  启动logstash并设置开机启动(配置好zookeeper+kafka再启动)

Logstash监听小于1024的端口号使用logstash权限启动会失败,需要修改root权限启动

vim /etc/systemd/system/logstash.service    #修改以下两项

##################

User=root

Group=root

##################

启动服务

systemctl daemon-reload

systemctl start logstash

systemctl enable logstash

 

6)  可以使用logger生成日志

例:logger -n 服务器IP  "日志信息"

3  收集端配置

3.1  安装zookeeper+kafka集群

请看https://www.cnblogs.com/longBlogs/p/10340251.html

 

4  安装logstash(grok)并配置重要数据写入mysql数据库

需要安装logstash-output-jdbc输出到mysql数据库(请看https://www.cnblogs.com/longBlogs/p/10340252.html

4.1  安装logstash

安装步骤请参考“数据源端配置”-“安装Logstash(udp 514)”上的安装步骤

4.2  配置

1)设置日志匹配目录和格式

mkdir -p /data/logstash/patterns   # 创建额外格式目录

自定义匹配类型

vim /data/logstash/patterns/logstash_grok

============================================

#num formats

num [1][0-9]9,    #匹配1开头至少10位的数字

=================================================

 

2)配置logstash(grok):

修改内存大小

vim /etc/logstash/jvm.options

-Xms2g

-Xmx2g

 

配置conf文件

cp /etc/logstash/logstash-sample.conf /etc/logstash/conf.d/logstash_syslog.conf

vim /etc/logstash/conf.d/logstash514.conf

#############################

input

  kafka

  bootstrap_servers => "192.168.89.11:9092,192.168.89.12:9092,192.168.89.13:9092"

  topics => "SyslogTopic"

  codec => "json"   #一定要加上,不然输出没有host等字段

  group_id => "logstash_kafka"  #多个logstash消费要相同group_id,不然会重复消费

  client_id => "logstash00"     #client_id唯一

  consumer_threads => 3   #线程数

 

filter

    grok

        patterns_dir => ["/data/logstash/patterns/"]

        match =>

            "message" => ".*?%NUM:num.*?"

          

#输出到elasticsearch

#这里不输出到mysql ,把输出到mysql注释掉

output

  elasticsearch

    hosts => ["192.168.89.20:9200","192.168.89.21:9200"] #是集群可写多个

    index => "log-%+YYYY.MM.dd" # 按日期分index,-前面必须小写

 

#jdbc

             #driver_jar_path => "/etc/logstash/jdbc/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar"

             #driver_class => "com.mysql.jdbc.Driver"

             #connection_string => "jdbc:mysql://mysql服务器ip:端口/数据库?user=数据库用户名&password=数据库密码"

             #statement => [ "insert into 数据表 (TIME ,IP,MESSAGES) values (?,?,?)","%@timestamp" ,"%host","%message" ]

  #

################################################

 

3)启动logstash并设置开机启动(配置好elasticsearch再启动)

如果Logstash监听小于1024的端口号使用logstash权限启动会失败,需要修改root权限启动

vim /etc/systemd/system/logstash.service    #修改以下两项

##################

User=root

Group=root

##################

启动服务

systemctl daemon-reload

systemctl start logstash

systemctl enable logstash

5  elasticsearch数据库端配置

5.1 安装elasticsearch(192.168.89.20与192.168.89.21)

1)  安装java环境

yum install –y  java-1.8.0-openjdk java-1.8.0-openjdk-devel

2)  设置yum源

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

 

cat >> /etc/yum.repos.d/elasticsearch-6.x.repo << ‘EOF‘

[elasticsearch-6.x]

name=Elasticsearch repository for 6.x packages

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

gpgcheck=1

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

enabled=1

autorefresh=1

type=rpm-md

EOF

3)  安装

yum install -y elasticsearch

4)  配置

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: syslog_elasticsearch   # 集群名称,同一集群需要一致

node.name: es_89.20   # 节点名称,同一集群不同主机不能一致

path.data: /data/elasticsearch  # 数据存放目录

path.logs: /data/elasticsearch/log  # 日志存放目录

network.host: 0.0.0.0   # 绑定ip

discovery.zen.ping.unicast.hosts: ["192.168.89.20", "192.168.89.21"]  # 集群成员,不指定host.master则是自由选举

#discovery.zen.minimum_master_nodes: 1   # 这个参数默认值1,控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量(情况是3,这个参数设置为2,但对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,你肯定连不上2台服务器了,这点需要注意)。

 

修改了elasticsearch.yml的data、log等目录,请在这里也修改

#vim /usr/lib/systemd/system/elasticsearch.service

 LimitMEMLOCK=infinity

 

#systemctl daemon-reload

 

5)  创建目录并属主、属组为一个非root账户,否则启动会有以下错误

mkdir -p /data/elasticsearch/log

 

出现报错:

main ERROR Unable to create file /data/log/elasticsearch/syslog_elasticsearch.log java.io.IOException: Permission denied

 

将ElasticSearch的安装目录及其子目录改为另外一个非root账户

chown -R elasticsearch:elasticsearch /data/elasticsearch/

 

6)  启动

systemctl restart elasticsearch

systemctl enable elasticsearch

 

7)  测试

  • 查询集群状态方法1

curl -XGET ‘http://192.168.89.20:9200/_cat/nodes‘

技术分享图片

后面添加?v代表详细

curl -XGET ‘http://192.168.89.20:9200/_cat/nodes?v‘

技术分享图片

  •  查询集群状态方法2

curl -XGET ‘http://192.168.89.20:9200/_cluster/state/nodes?pretty‘

技术分享图片

  • 查询集群健康状况

技术分享图片

6  分析展示端配置

6.1  安装kibana

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

 

cat >> /etc/yum.repos.d/kibana-6.x.repo << ‘EOF‘

[kibana-6.x]

name=Kibana repository for 6.x packages

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

gpgcheck=1

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

enabled=1

autorefresh=1

type=rpm-md

EOF

 

yum install -y kibana

 

配置文件

cat /etc/kibana/kibana.yml |egrep -v "^#|^$"

###############################################

server.port: 5601     #要使用5601端口,使用nginx转80端口访问

server.host: "0.0.0.0"

elasticsearch.url: "http://192.168.89.20:9200"

###############################################

 

 

systemctl start kibana

systemctl enable kibana

 

访问

http://192.168.89.15:5601

 

汉化

先停止服务

systemctl stop kibana

 

做汉化

github上有汉化的项目,地址:https://github.com/anbai-inc/Kibana_Hanization

yum install unzip

解压在kibana的安装目录

unzip Kibana_Hanization-master.zip

cd Kibana_Hanization-master

python main.py kibana安装目录(可以python main.py /

 

启动服务

systemctl start kibana

6.2  安装nginx

nginx主要作用是添加登录密码,因为kibana并没有登录功能,除非es开启密码。

1) 安装

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

 

yum install -y nginx

安装Apache密码生产工具:

yum install httpd-tools

2)  配置

生成密码文件: 

mkdir -p /etc/nginx/passwd

htpasswd -c -b /etc/nginx/passwd/kibana.passwd admin admin

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.backup

 vim /etc/nginx/conf.d/default.conf

####################################

server

    listen       192.168.89.15:80;

    server_name  localhost;

    auth_basic "Kibana Auth";

    auth_basic_user_file /etc/nginx/passwd/kibana.passwd;

    location /

        root   /usr/share/nginx/html;

        index  index.html index.htm;

        proxy_pass http://127.0.0.1:5601;

        proxy_redirect off;

   

    error_page   500 502 503 504  /50x.html;

    location = /50x.html

        root   /usr/share/nginx/html;

   

##################################

修改Kibana配置文件:

vim /etc/kibana/kibana.yml

server.host: "localhost"

 

重启服务

systemctl restart kibana

systemctl restart nginx

systemctl enable nginx

 

访问

http://192.168.89.15:80

 

centos7安装和使用kafka(代码片段)

转载请注明出处:CentOS7安装和使用kafka环境准备安装kafka之前我们需要做一些环境的准备1、centOS7系统环境2、jdk环境3、可用的zookeeper集群服务安装jdk参考文章linux软件(一)—CentOS安装jdk安装Kafka从官网下载Kafka安装包,解压安装&... 查看详情

centos7环境下kafka的安装和基本使用

CentOS7环境下Kafka的安装和基本使用基础环境Windows10X64VMware-workstation-full-12.0.0-2985596CentOSLinuxrelease7.4.1708CentOS7环境下安装Kafka安装JDK在CentOS上将JDK下载到本地.jdk-8u152-linux-x64.tar.gz解压并将文件移动到/opt/java目录下sudotar-vx 查看详情

centos7安装kafka和zookeeper(代码片段)

wgethttp://mirrors.hust.edu.cn/apache/kafka/2.0.0/kafka_2.11-2.0.0.tgztarzxvfkafka_2.11-2.0.0.tgzcdkafka_2.11-2.0.0 配置kafka与zookeeper,如果是单机的只要修改log文件目录即可  查看详情

centos7安装kafka(代码片段)

 关闭防火墙systemctlstopfirewalld.servicesystemctldisablefirewalld.service安装JDKyuminstall-yhttp://172.16.20.10/Oracle/JAVA/8/8u202/jdk-8u202-linux-x64.rpm下载并解压Kafkacd/srv/curl-Ohttps://mirror.bit.edu. 查看详情

centos7.5安装kafka(支持外部连接)(代码片段)

安装kafka之前确保安装环境已经安装好jdk以及zk,并启动,以上有详细步骤,这里不再重复.zk安装地址https://blog.csdn.net/LXYuuuuu/article/details/107605769上传相应kafka安装包到/export/software/tar-zxvfkafka_2.11-1.0.0.tgz-C/export/servers/cd/export/serve 查看详情

centos7安装cdh第九章:cdh中安装kafka

相关文章链接 1. CDH官网Kafka的安装教程网址https://www.cloudera.com/documentation/kafka/latest/topics/kafka_installing.html#concept_m2t_d45_4r2. 下载对应的Kafka版本1、查看CDH和Kafka的版本对应列表:查看网址:https://www.cloude 查看详情

centos7下搭建高可用集群

一、安装集群软件必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件。二、配置防火墙1、禁止防火墙和selinux#systemctldisablefirewalld#systemctlstopfirewalld2、设置防火墙规则#firewall-cmd--permanent--add... 查看详情

centos7下kafka安装(代码片段)

...服务为Kafka和zookeep配置Firwalld相关的文件前提安装环境为CentOS7.x,官网下载最新版的Kafka,解压至/opt/kafka中(可以创建一个指向当前版本的软连接)。tar-zxfkafka_2.12-2.1.1.tar.gz-C/opt//解压到指定文件夹下ln-s/opt/kafka_2.12-2.1.1/opt/kafka//... 查看详情

kafka环境搭建02kafka_2.11-2.4.1基于zookeeper搭建高可用伪集群(一台服务器实现三个节点的kafka集群)(代码片段)

我使用的安装文件是kafka_2.11-2.4.1.tgz,以下内容均以此版本进行说明。zookeeper集群也是伪集群,zk的伪集群搭建方法可参考《Zookeeper-3.6.0伪集群版搭建指南》。1安装kafka之前有单机版的铺垫《kafka_2.11-2.4.1单机版安装指南》... 查看详情

centos7安装kafka+zookeeper实践(代码片段)

...一下,本文作为一个记录。二、部署2.1环境准备本次采用Centos7.9安装,因为kafka和zookeeper都需要用到jdk,这次安装的使用oraclejdk8https://www.oracle.com/java/technologies/javase/javase8u211-later-archive-downloads.html在服务器上下载jdk软件包在服务... 查看详情

centos7docker安装kafka:2.13-2.8.1(代码片段)

kafka需要zookeeper管理,所以需要先安装zookeeper拉取zookeeper镜像:Dockerdockerpullwurstmeister/zookeeper:3.4.6运行zookeeper服务dockerrun-d--restart=always\\--namezookeeper-p2181:2181\\-v/etc/localtime:/e 查看详情

centos7下docker-compose安装kafka集群(代码片段)

 0安装docker(略)1.安装docker-compose下载安装文件curl-Lhttps://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname-s`-`uname-m`-o/usr/local/bin/docker-compose 添加权限chmod+x/usr/local/bin/docker-compose 1查看版本docker-compose--version ... 查看详情

centos7安装zookeeper+kafka集群(代码片段)

Centos7安装zookeeper+kafka集群1 Zookeeper和kafka简介1) ZooKeeper是一个分布式的、分层级的文件系统,能促进客户端间的松耦合,并提供最终一致的,用于管理、协调Kafka代理,zookeeper集群中一台服务器作为Leader,其它作为Follower... 查看详情

centos7.2中kafka,zookeeper的单机部署,伪分布式部署以及真正的分布式部署

...先安装zookeeper。安装环境先列一下安装环境:操作系统:centos7.2JDK版本:1.8.1kafka版本:2.11-0.10.1.1zookeeper版本:zookeeper-3.4.9 zookeeper的下载、配置、启动 zookeeper下载链接:http://mirror.bit.edu.cn/apache/z 查看详情

kafka-2安装实战篇

了解好kafka的基础概念之后,可以开始动手,环境:centos7,官方教程http://kafka.apache.org/quickstart#quickstart_download安装java环境,安装jdk(推荐,也省事)Centos: yum-yupdate yum-yinstalljavaUbuntu: sudoapt-getupdate sudoapt-getinstalljava或者 查看详情

kafka搭建(代码片段)

...keeper集群3、软件版本kafka_2.11-0.9.0.1.tgz2、创建目录并下载安装软件#创建目录cd/opt/mkdirkafka#创建项目目录cdkafkamkdirkafkalogs#创建kafka消息目录,主要存放kafka消息#下载软件wgethttp://apache.opencas.org/kafka/0 查看详情

centos7部署kafka集群

1环境操作系统:CentOS7JDK:java1.8kafka版本:kafka_2.11-2.2.1.tar.gzzookeeper版本:zookeeper-3.4.8.tar.gz2架构总览zookeeper集群中包含三个zookeeper服务。3部署操作3.1部署zookeeper集群zookeeper-3.4.8.tar.gz安装目录统一为/usr/local/zookeeper3.1.1... 查看详情

学习笔记kafka——kafka安装配置——kafka单代理及常用操作(代码片段)

一、Linux环境准备Centos7,1CPU,2GMemory,20GDisk,VirtualSystemJDKZookeeper二、Kafka安装下载Kafka安装包官网:http://kafka.apache.org/downloads解压安装包:tar-zxvfkafka_2.11-2.3.1.tgz-C/ 查看详情