关键词:
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
访问
汉化
先停止服务
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/ 查看详情