部署elk集群6

2023-11-02

一、集群环境

服务名称 IP地址
elk1 192.168.4.115
elk2 192.168.4.116
elk3 192.168.4.118
cat>> /etc/security/limits.conf<<EOF
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
* hard memlock unlimited
* soft memlock unlimited
*  -  nofile    65536
EOF
cat >> /etc/systemd/system.conf<<EOF
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinity
EOF
cat >> /etc/sysctl.conf<<EOF
vm.max_map_count=655360
EOF
sysctl -p
#部署java环境
rpm -qa | grep [java][jdk][gcj]

#查看可安装的jdk
yum search java | grep -i --color jdk

#安装JDK
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
#查看是否生效
java -version

二、部署es

#下载安装ElasticSearch:

  • 【官方地址】https://www.elastic.co/cn/downloads/
  • 【历史地址】https://www.elastic.co/cn/downloads/past-releases#elasticsearch
  • 【下载地址】https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
#创建数据目录
mkdir -p /data/app/

#上传
rz

#解压
tar -zxvf  elasticsearch-6.2.4.tar.gz -C /data/app/

#然后编辑ES的配置文件:
cd /data/app/elasticsearch-6.2.4/

#授权
groupadd es
useradd es -g es -p es
chown es:es -R /data/app/elasticsearch-6.2.4/

#创建数据存放和日志目录
mkdir -p /data/elasticsearch/data  
mkdir -p /data/elasticsearch/logs
chown es:es -R  /data/elasticsearch/logs
chown es:es -R  /data/elasticsearch/data
1)192.168.4.115
cat >>config/elasticsearch.yml<<EOF
cluster.name: mispsearch                        #组名(同一个组,组名必须一致)
node.name: node-115                             #节点名称(建议和主机名一致)
path.data:  /data/elasticsearch/data            #数据存放路径
path.logs: /data/elasticsearch/logs           #日志存放路径
network.host: 0.0.0.0                           #网络设置   
http.port: 9200                                 #端口
transport.tcp.port: 9300                        #通信端口
discovery.zen.ping.unicast.hosts: ["192.168.4.115:9300", "192.168.4.116:9300","192.168.4.118:9300"]
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF
2)192.168.4.116
cat >>config/elasticsearch.yml<<EOF

cluster.name: mispsearch                        #组名(同一个组,组名必须一致)
node.name: node-115                             #节点名称(建议和主机名一致)
path.data: /data/elasticsearch/data             #数据存放路径
path.logs: /data/elasticsearch/logs             #日志存放路径
network.host: 0.0.0.0                           #网络设置   
http.port: 9200                                 #端口
transport.tcp.port: 9300                        #通信端口
discovery.zen.ping.unicast.hosts: ["192.168.4.115:9300", "192.168.4.116:9300","192.168.4.118:9300"]
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF
3)192.168.4.118
cat >>config/elasticsearch.yml<<EOF
cluster.name: mispsearch                        #组名(同一个组,组名必须一致)
node.name: node-118                            #节点名称(建议和主机名一致)
path.data: /data/elasticsearch/data             #数据存放路径
path.logs: /data/elasticsearch/logs             #日志存放路径
network.host: 0.0.0.0                           #网络设置   
http.port: 9200                                 #端口
transport.tcp.port: 9300                        #通信端口
discovery.zen.ping.unicast.hosts: ["192.168.4.115:9300", "192.168.4.116:9300","192.168.4.118:9300"]
discovery.zen.minimum_master_nodes: 3
http.cors.enabled: true
http.cors.allow-origin: "*"
EOF
4)启动测试
#启动测试
su - es
/data/app/elasticsearch-6.2.4/bin/elasticsearch -d
ps -fe|grep es
netstat -tnlp|grep 9300
[es@k8s-node-01 ~]$ ps -fe|grep es
root         1     0  0 18:40 ?        00:00:33 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
dbus       713     1  0 18:40 ?        00:00:02 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
root     12494 12455  0 21:31 pts/0    00:00:00 su - es
es       12495 12494  0 21:31 pts/0    00:00:00 -bash
root     12682 12655  0 21:36 pts/0    00:00:00 su - es
es       12683 12682  0 21:36 pts/0    00:00:00 -bash
es       12750     1  6 21:36 pts/0    00:00:17 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.99jg36fl -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/data/app/elasticsearch-6.2.4 -Des.path.conf=/data/app/elasticsearch-6.2.4/config -cp /data/app/elasticsearch-6.2.4/lib/* org.elasticsearch.bootstrap.Elasticsearch -d
es       12797 12683  0 21:41 pts/0    00:00:00 ps -fe
es       12798 12683  0 21:41 pts/0    00:00:00 grep --color=auto es

[es@k8s-node-01 ~]$ netstat -tnlp|grep 9300
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:9300            0.0.0.0:*               LISTEN      12750/java      
  • 可通过IP+端口访问成功页面
  • 访问:192.168.4.115:9200
5)加入开启自启动
cat >/etc/init.d/elasticsearch<<EOF
#!/bin/sh
#chkconfig: 2345 80 05
#description: elasticsearch
 
export JAVA_BIN=/usr/local/jdk1.8.0_171/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATH
case "$1" in
start)
    su elk<<!
    cd /usr/local/elasticsearch-7.3.0/
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
stop)
    es_pid=`jps | grep Elasticsearch | awk '{print $1}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    ;;
restart)
    es_pid=`jps | grep Elasticsearch | awk '{print $1}'`
    kill -9 $es_pid
    echo "elasticsearch stopped"
    su elk<<!
    cd /usr/local/elasticsearch-7.3.0/
    ./bin/elasticsearch -d
!
    echo "elasticsearch startup"
    ;;
*)
    echo "start|stop|restart"
    ;;
esac
 
exit $?
6)故障
可能出现的问题
java.lang.RuntimeException: can not run elasticsearch as root
解决办法:登陆其他用户(misp)启动服务
java.nio.file.AccessDeniedException: /mnt/misp/software/elasticsearch-6.1.3/config/elasticsearch.yml
解决办法:登陆root用户执行:chown misp /mnt/misp/software/elasticsearch-6.1.3/ -R
 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
解决办法:vim /etc/sysctl.conf  添加vm.max_map_count=262144,然后执行sysctl -p
max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] 
解决办法:vim /etc/security/limits.conf修改文件末尾hard nofile 65536 soft nofile 65536
ERROR Unable to locate appender "rolling" for logger config "root"
解决办法:查看数据目录和日志目录是否和配置一致,一致后授权普通用户权限(chown es:es -R  /data/elasticsearch/{data,logs})。

三、部署logstash

1)官方地址

#下载地址

  • https://www.elastic.co/cn/downloads/past-releases#logstash
  • https://www.elastic.co/cn/downloads/past-releases/logstash-6-2-4
  • https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz
2)解压安装
配置在要输出日志的服务器上:
192.168.4.115、192.168.4.116、192.168.4.118

#下载解压
wget -c  https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz --no-check-certificate
tar -zxvf logstash-6.2.4.tar.gz -C /data/app/

#编辑logstash的配置文件
在config文件目录下新建配置文件logstash.conf

#创建数据存储
cd /data/app/logstash-6.2.4/
mkdir -p /data/logstash/logs/

3)创建配置文件
#创建logstash.conf
vim /data/app/logstash-6.2.4/config/logstash.conf

input
{
	   file
        {
                path =>["/data/logstash/logs/mng-manage-provider-impl-1.0.1-SNAPSHOT*.out"]
                start_position => beginning
                type => "mng_manage_log"
			  codec => multiline {
                   	pattern => "^%{TIMESTAMP_ISO8601}"
                   	negate => true
                   	what => previous
			  }
        }
        file
        {
                path =>["/data/logstash/logs/tsm-manage-provider-impl-1.0.1-SNAPSHOT*.out"]
                start_position => beginning
                type => "tsm_manage_log"
			  codec => multiline {
                   	pattern => "^%{TIMESTAMP_ISO8601}"
                   	negate => true
                   	what => previous
			  }
        }
        file
        {
                path =>["/data/logstash/logs//adapter-bank-provider-impl-1.0.1-SNAPSHOT*.out"]
                start_position => beginning
                type => "adapter-bank_log"
			  codec => multiline {
                   	pattern => "^%{TIMESTAMP_ISO8601}"
                   	negate => true
                   	what => previous
			  }
        }
        file
        {
                path =>["/data/logstash/logs/adapter-school-provider-impl-1.0.1-SNAPSHOT*.out"]
                start_position => beginning
                type => "adapter-school_log"
			  codec => multiline {
                   	pattern => "^%{TIMESTAMP_ISO8601}"
                   	negate => true
                   	what => previous
			  }
        }
}
filter {  
grok{  
match=>{"message"=>"\s*%{TIMESTAMP_ISO8601:logtime}\s%{LOGLEVEL:loglevel}(?<info>([\s\S]*))"}  
    }
}
output
{
	elasticsearch{
		hosts => ["192.168.4.115:9200","192.168.4.116:9200","192.168.4.118:9200"]
		index => "log-%{+YYYY-MM-dd}"
	}
}

4)配置分析
在logstash中,包括了三个阶段,也就是logstash.conf配置文件中的input{} filter{} output{}:
     输入input --> 处理filter(不是必须的) --> 输出output
 
input{}:
file{}为要监听的文件
Path =>  为文件路径
start_position => beginning  表示从文件开始位置
codec => multiline{}  一条日志中如果包含换行,开头不为时间,则归为上一条
filter{}:
grok{}对日志进行拆解
match=> 规则
%{TIMESTAMP_ISO8601:logtime}:日志的时间
%{LOGLEVEL:loglevel}:日志的级别(如:INFO、WARN、ERROR)
(?<info>([\s\S]*)):日志内容
output{}
elasticsearch{} 将日志信息存储到elasticsearch集群
hosts => 集群地址
index => 在ES集群中的索引,可以用来区分不同服务器

5)启动
#加入后台启动
cd /data/app/logstash-6.2.4/bin/
nohup ./logstash -f /data/app/logstash-6.2.4/config/logstash.conf &

#查看
ps -ef|grep logstash
netstat -tnlp|grep 9200
6)常用启动参数
-e:立即执行,使用命令行里的配置参数启动实例。

例如 logstash -e 'input {stdin{}} output {stdout{}}'


-f:指定启动实例的配置文件。

例如logstash -f /usr/local/logstash-7.3.0/config/logstash.conf


-t:测试配置文件的正确性

例如logstash -f /usr/local/logstash-7.3.0/config/logstash.conf -t
7)加入开机启动
#开机加载java环境
echo "source /etc/profile" >> /etc/rc.local 

echo "nohup ./logstash -f /data/app/logstash-6.2.4/config/logstash.conf &" >> /etc/rc.local

chmod +x /etc/rc.local

四、Kibana
  • 【官方地址】https://www.elastic.co/cn/downloads/past-releases#kibana
  • 【下载版本选择】https://www.elastic.co/cn/downloads/past-releases/kibana-6-2-4
  • 【下载地址】https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
1)192.168.4.115
#一台部署安装Kibana:
wget -c https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz --no-check-certificate

tar -zxvf kibana-6.2.4-linux-x86_64.tar.gz -C /data/app/

cd /data/app/kibana-6.2.4-linux-x86_64/

2)修改配置
#修改配置文件
vim config/kibana.yml
server.port: 5601              #kibana服务端口号
server.host: "192.168.4.115"   #主机IP
elasticsearch.url: "http://192.168.4.115:9200"    #elasticsearch.url
kibana.index: ".kibana"         #默认索引

3)启动

#启动
./bin/kibana       


#后台启动
cd   /data/app/kibana-6.2.4-linux-x86_64/bin/
nohup /data/app/kibana-6.2.4-linux-x86_64/bin/kibana  &
#./bin/kibana >/dev/null 2>&1 &

ps -ef|grep kibana  
netstat -tnlp|grep 5601
4)加入开机启动
#添加开机自启动
[root@elk01 ~]# echo " nohup /data/app/kibana-6.2.4-linux-x86_64/bin/kibana  &" >> /etc/rc.local
5)报错
【报错】
FATAL { ValidationError: child "server" fails because [child "host" fails because ["host" must be a valid hostname]]
    at Object.exports.process (/data/app/kibana-6.2.4-linux-x86_64/node_modules/joi/lib/errors.js:181:19)
【解决】hostname主机之间存在引号
6)访问

页面访问:http://192.168.4.115:5601/app/kibana

[可参考网址]https://blog.csdn.net/w1206507055/article/details/125297841

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部署elk集群6 的相关文章

随机推荐

  • 【地图可视化】Echarts地图上展示3D柱体

    这是以前有这方面可视化的需求做的 找了很多资料 最后感觉这样的效果比较满意 效果展示 以下以江苏省的地图为例 数据准备 对于想要做3d效果的地区 需要准备对应的json文件 可以在这个网站上下载 数据最小粒度可以具体到县 DataV Geo
  • OpenCV曝光参数和快门时间的对应关系

    目录 1 曝光设置 2 设置自动曝光为手动曝光 3 曝光参数具体对应于曝光时间 4 代码实现 5 其他知识补充 5 1 相机曝光原理 5 2 快门速度 opencv Camera曝光设置 1 曝光设置 cv cap set cv CAP P
  • 插入排序 直接插入 C语言

    碎碎念念 基本思路是 一般先孤立这堆数字的第一个数 那么它自己一个就是有序了 再拿后面的数和它比较 找到大小位置合适的插进去 完了之后这一小堆还是有序的 再拿后面的来和前面的比较 找到合适的位置插进去 直到全部插完 代码 include
  • Arthas使用教程

    什么是 Arthas 摘录一段官方 Github 上的简介 Arthas 是Alibaba开源的Java诊断工具 深受开发者喜爱 当你遇到以下类似问题而束手无策时 Arthas 可以帮助你解决 这个类从哪个 jar 包加载的 为什么会报各种
  • 微信小程序(原生)使用Swiper实现(商品详情)视频和图片轮播(仿京东/淘宝商品详情头部视频+图片轮播)

    一 需求 1 如果第一是视频 不进行自动轮播 2 可以手动滑动切换 3 点击播放视频 也可以手动滑动切换 4 视频播放完后 自动轮播 5 视频可以点击暂停和全屏播放 二 最终效果 三 源码 播放icon使用了TDesign组件库 1 wxm
  • 同一个类的方法怎么Mock?spy函数啦

    大家好 我是神韵 是一个技术 生活博主 出文章目的主要是两个 一是好记忆不如烂笔头 记录总结中提高自己 二是希望我的文章可以帮到大家 欢迎来点赞打卡 你们的行动将是我无限的动力 本篇主题是 同一个类的方法怎么Mock spy函数啦 我在测试
  • C语言fscanf函数的理解

    第一次学文件时 没学太明白 在课程设计时又不得不使用fscanf 因此又复习了一下 fp1 fopen Data FindPassword Qusetion txt r fscanf fp1 s answer i 这意思就是将FindPas
  • idea报错:Parent ‘Unknown:Unknown:Unknown‘ has problems

    导入项目时报错 Parent Unknown Unknown Unknown has problems 问题阐述 查看maven的setting xml文件 值得注意的一点 问题阐述 项目在导入之后 就报错了如下所示错误 Parent Un
  • 【CSS flex布局】用flex写个骰子

    注 新手练习 基本思路 HtML部分 一个大 ul 包裹6个 li 也就是6个骰子 每个 li 中的 span 对应一个骰子点数 ul li span span li li span span span span li li span sp
  • G. 积木画(dp + 滚动数组)

    大致题意 给定2 N的画布 以及两种积木 问填满画布的方法有多少种 思路 数据范围很大 时间复杂度要求O n 可以想到用线性dp来解决 考虑状态转移方程 状态表示 d i j 表示前 i 列都填满 填满第 i 1 列时状态为j的种类数 按j
  • 从hdfs读取image文件

    发现从hdfs直接读取image文件response Image open filepath 会报错路径不存在 出现这个问题是因为PIL的Image open filepath 只能打开本地路径里的文件 不能打开hdfs里的 而且hdfs是
  • (转)牛牛牌型判定(五小牛 > 五花牛 > 炸弹 > 银牛 > 牛牛 > 有牛>没牛)

    牌型大小 五小牛 gt 五花牛 gt 炸弹 gt 银牛 gt 牛牛 gt 有牛 牛987654321 gt 没牛 K gt Q gt J 2 gt A 黑桃 gt 红桃 gt 梅花 gt 方块 同样的牌型比大小 同样的手牌比花色 1 2 在
  • nzAutocomplete监听选择事件,做相应处理

    nzAutocomplete 当组件选择一个选项后 没有回调函数 但想在选择时获取相关的数据 可以通过点击事项 传入相关对象
  • excel 下载方法封装

    1 首先需要拿到后端返回的URL下载地址 2 写个下载方法 url 接口返回的下载地址 例如 https cancer research oss cn beijing aliyuncs com yuance platform permiss
  • Unity 3D 做FPS游戏

    Part 1 Introduction 第一部分 介绍 This tutorial will detail how to make a simple First Person Shooter FPS It will introduce fu
  • 项目类中@Data注解无法使用

    原因 Data注解无法使用 需要安装插件 解决 在idea中找到 File Setting 找到Plugins如下图 输入lombok 点击安装即可 lombok插件 已解决
  • bottomnavigationview 去动画_Android Notes|BottomNavigationView 爱上 Lottie

    鸡老大说 大丈夫岂能久居人下 首发掘金 掘金 个人页 juejin im 前言 好容易解决个问题 感觉记录一波 当日事当日毕 践行鸡老大 点滴积累 万一某天优秀了呢 以前大部分项目底部导航栏关于图片部分的实现 要么两套图 selector
  • python-爬虫(获取NBA球员信息)

    目录 引入外部库 安装XPath 1 下载XPath helper的源码 2 在edge中添加 3 使用Xpath helper 原码 在上一节我们已经配置好了python爬虫的环境python 配置爬虫环境 现在我们就来实践一下吧 引入外
  • Hive集成HBase详解

    摘要 Hive提供了与HBase的集成 使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询 应用场景 1 将ETL操作的数据存入HBase 2 HBase作为Hive的数据源 3 构建低延时的数据
  • 部署elk集群6

    文章目录 一 集群环境 二 部署es 1 192 168 4 115 2 192 168 4 116 3 192 168 4 118 4 启动测试 5 加入开启自启动 6 故障 三 部署logstash 1 官方地址 2 解压安装 3 创建