ELK安装部署及Flink日志推送

        写在前面:Elasticsearch安装在三台机器上,其他的只要安装一台即可。本案例安装在43、44、45三台机器上。

一、安装Elasticsearch

1.创建用户(三台都要执行)        

sudo useradd elk
sudo password elk

输入密码

添加用户读写的权限       

chmod u+w /etc/sudoers
vi /etc/sudoers

在“root ALL=(ALL) ALL”这一行下添加自己的用户权限:

elk ALL=(ALL) ALL

2.解压软件(三台都执行)       

cd /home/software
tar -zxf elasticsearch-6.7.0.tar.gz -C /home/install/

3.更改文件拥有者(三台都执行)

chown -R elk.elk /home/install/elasticsearch-6.7.0

4.切换用户(三台都执行)
        su - elk
5.修改配置文件(三台都执行)

cd /home/install/elasticsearch-6.7.0/config/
mkdir -p /home/install/elasticsearch-6.7.0/logs/
mkdir -p /home/install/elasticsearch-6.7.0/datas

        vi elasticsearch.yml,新增以下内容,注意:node01等是主机名

cluster.name: myes
node.name: node01
path.data: /home/install/elasticsearch-6.7.0/datas
path.logs: /home/install/elasticsearch-6.7.0/logs
network.host: 10.16.3.43
http.port: 9200
discovery.zen.ping.unicast.hosts: ["node01", "node02", "node03"]
bootstrap.system_call_filter: false
bootstrap.memory_lock: false
http.cors.enabled: true
http.cors.allow-origin: "*"

        vi jvm.options

-Xms2g
-Xmx2g

6. 传输到其余两台电脑上

cd /home/install/
scp -r elasticsearch-6.7.0/ node02:$PWD
scp -r elasticsearch-6.7.0/ node03:$PWD

然后在其他两台修改elasticsearch.yml和jvm.options

7.解除打开文件数据的限制(三台都执行)

sudo vi /etc/security/limits.conf

添加以下内容

* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
sudo vi /etc/sysctl.conf

添加以下内容

vm.max_map_count=655360
fs.file-max=655360

执行以下命令生效

sudo sysctl -p

注意:以上两个问题修改完成之后,一定要重新连接linux生效。关闭secureCRT或者XShell工具,然后重新打开工具连接linux即可

8.    启动ES服务
三台机器使用elk用户执行以下命令启动es服务

nohup /home/install/elasticsearch-6.7.0/bin/elasticsearch 2>&1 &

启动成功之后jsp即可看到es的服务进程,并且访问页面

二、安装Elasticsearch-head插件(只有主节点安装)

1.解压

su - root
cd /home/software/
tar -zxf node-v8.1.0-linux-x64.tar.gz -C /home/install/
chown -R el

2.创建软连接

sudo ln -s /home/install/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
sudo ln -s /home/install/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node

3.修改环境变量

sudo vi /etc/profile

export NODE_HOME=/home/install/node-v8.1.0-linux-x64
export PATH=:$PATH:$NODE_HOME/bin

修改完成后,使其生效source /etc/profile

4.验证成功

node -v
npm -v

5.安装elasticsearch-head-compile-after

su - root
cd /home/software/
tar -zxf elasticsearch-head-compile-after.tar.gz -C /home/install/
chown -R elk.elk /home/install/elasticsearch-head
su - elk
cd /home/install/elasticsearch-head/
vi Gruntfile.js

找到以下代码,添加一行:hostname: '10.16.3.43',

connect: {
                        server: {
                              options: {
                                     hostname: '10.16.3.43',
                                     port: 9100,
                                     base: '.',
                                     keepalive: true
                                }
                         }
                }

修改app.js,如下图中最后一行

cd /home/install/elasticsearch-head/_site
vi app.js
(function( app, i18n ) {

	var ui = app.ns("ui");
	var services = app.ns("services");

	app.App = ui.AbstractWidget.extend({
		defaults: {
			base_uri: null
		},
		init: function(parent) {
	this._super();
			this.prefs = services.Preferences.instance();
			this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://node01:9200";

6.启动head服务

cd /home/install/elasticsearch-head/node_modules/grunt/bin/
nohup ./grunt server >/dev/null 2>&1 &

7.访问elasticsearch-head界面 10.16.3.43:9100

三、安装Kibana(只有主节点)

1. 解压

su - root
cd /home/software/
tar -zxf kibana-6.7.0-linux-x86_64.tar.gz -C /home/install/
chown -R elk.elk /home/install/kibana-6.7.0-linux-x86_64
su – elk

2.修改配置文件
    cd /home/install/kibana-6.7.0-linux-x86_64/config/
    vi kibana.yml

server.host: "10.16.3.43"
elasticsearch.hosts: ["http://10.16.3.43:9200","http://10.16.3.44:9200","http://10.16.3.45:9200"]
i18n.locale: "zh-CN"

3. 启动服务
cd /home/install/kibana-6.7.0-linux-x86_64
nohup bin/kibana >/dev/null 2>&1 &
如何停止kibana进程:停止kibana服务进程
查看进程号
ps -ef | grep node
然后使用kill -9杀死进程即可


四、安装logstash(主节点安装)

1.  解压

su - root
cd /home/software/
tar -zxf logstash-6.7.0.tar.gz -C /home/install/
chown -R elk.elk /home/install/logstash-6.7.0
su – elk

2.   标准输出

cd /home/install/logstash-6.7.0/
bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

3.  配置文件
注:kafka的topics需要和flink日志配置文件中appender.kafka.topic一致;elasticSearch中的index需要和kibana创建索引一致。
cd /home/install/logstash-6.7.0/config
vi logstashFlinkLog.conf

input {
    kafka{
        codec => "json"
        group_id => "kafka_elk_group"
        client_id => "logstash"
        topics => "flinkLogToKafka"
        bootstrap_servers => "10.16.3.174:9092,10.16.3.175:9092,10.16.3.176:9092"
        auto_offset_reset => "earliest"
        consumer_threads => 5
     }
}
output {
  elasticsearch {
    hosts => ["10.16.3.43:9200","10.16.3.44:9200","10.16.3.45:9200"]
    index => "flinkLog-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
  stdout{
    codec=>rubydebug
   }
}

4.  启动脚本
nohup /home/install/logstash-6.7.0/bin/logstash -f /home/install/logstash-6.7.0/config/logstashFlinkLog.conf >/dev/null &

五、flink如何配置(1.14版)


1.  修改flink-conf.yaml
    添加以下两行
    env.java.opts.taskmanager: -DyarnContainerId=$CONTAINER_ID
    env.java.opts.jobmanager: -DyarnContainerId=$CONTAINER_ID
2.  修改flink/conf/log4j.properties
    flink/conf目录结构(只保留log4j-cli.properties和log4j.properties两个日志配置文件,其他日志配置文件放到backlog文件夹中),log4j-properties中添加

# kafka appender config
appender.kafka.type=Kafka
appender.kafka.name=Kafka
appender.kafka.syncSend=true
appender.kafka.ignoreExceptions=false
appender.kafka.topic=flinkLogToKafka
appender.kafka.property.type=Property
appender.kafka.property.name=bootstrap.servers
appender.kafka.property.value=kafka1:9092,kafka2:9092,kafka3:9092
##Log pattern of Kafka output
#appender.kafka.layout.type=PatternLayout
#appender.kafka.layout.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS}  ${sys:log.file}  ${sys:appName} %-5p %-60c %x - %m%n

appender.kafka.layout.type=JSONLayout
appender.kafka.layout.value=net.logstash.log4j.JSONEventLayoutV1
appender.kafka.layout.compact=true
appender.kafka.layout.complete=false
appender.kafka.layout.includeTimeMillis=true
appender.kafka.layout.additionalField1.type=KeyValuePair
appender.kafka.layout.additionalField1.key=yarnContainerId
appender.kafka.layout.additionalField1.value=${sys:yarnContainerId}
appender.kafka.layout.additionField2.type=KeyValuePair
appender.kafka.layout.additionalField2.key=flink_job_name
appender.kafka.layout.additionalField2.value=${sys:flink_job_name}
appender.kafka.layout.additionalField3.type=KeyValuePair
appender.kafka.layout.additionalField3.key=logdir
appender.kafka.layout.additionalField3.value=${sys:log.file}

3.  提交任务
    添加-Denv.java.opts="-Dflink_job_name=xxxx程序名" \
4.  Kibana创建索引,打开Kibana界面:10.16.3.43:5601,创建索引
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值