运维(29)- ELK部署

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 运维(29)- ELK部署

01 引言

注意:需要保证elk套件版本统一,升级需要从es开始!

02 部署kafka

备注:假设在172.16.3.5机子上执行

2.1 下载

① 下载kafka/opt目录:

mkdir -p ~/tools/kafka
cd ~/tools/kafka
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/3.0.0/kafka_2.13-3.0.0.tgz
tar xf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 /opt/

② 创建软链接:

ln -s /opt/kafka_2.13-3.0.0 /opt/kafka

2.2 配置

① 配置用户以及权限:

useradd kafka
chown -R kafka:kafka /opt/kafka
chown -R kafka:kafka /opt/kafka_2.13-3.0.0/

② 配置kafka data log

mkdir -p /var/log/kafka
chown -R kafka:kafka /var/log/kafka

③ 编辑kafka配置 :

/opt/kafka/bin/kafka-server-start.sh最后一行exec之前加入以下内容

export KAFKA_HEAP_OPTS=" -Xmx6144m -Xms16m "
export KAFKA_JVM_PERFORMANCE_OPTS=" -XX:+UnlockExperimentalVMOptions -XX:+UseZGC -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=1024m  "

④ 执行以下指令配置kafkaserver.properties,注意修改IP信息和zookeeper配置:

cat <<'EOF' > /opt/kafka/config/server.properties
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://172.16.3.5:9092
num.network.threads=8
num.io.threads=16
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/var/log/kafka/
num.partitions=1
num.recovery.threads.per.data.dir=2
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=1
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
log.cleanup.policy=delete
log.retention.hours=4
log.retention.bytes=1073741824
zookeeper.connect=172.16.3.5:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
EOF

⑤ 执行以下指令编辑kafkasystemd服务文件:

cat <<'EOF' >  /etc/systemd/system/kafka.service
[Unit]
Description=kafka
After=network-online.target
[Service]
WorkingDirectory=/opt/kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
Type=forking
User=kafka
LimitNOFILE=32768
Restart=always
[Install]
WantedBy=multi-user.target
EOF

2.3 启动

systemctl daemon-reload
systemctl enable kafka
systemctl restart kafka

03 部署ES

备注:假设在172.16.3.4)机子上执行

注意: 修改配置文件/etc/elasticsearch/elasticsearch.yml中的hosts等配置信息

3.1 添加es源

① 添加esgpg key

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxx

② 添加es的源:

echo "deb https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/ stable main" > /etc/apt/sources.list.d/es.list

3.2 安装es

① 安装es

apt update
apt install elasticsearch=7.15.1 -y

② 设置apt保持es版本:

apt-mark hold elasticsearch

3.3 配置es

先停止服务,然后配置es jvm堆内存:

systemctl stop elasticsearch
echo '-Xms7g' > /etc/elasticsearch/jvm.options.d/jvm.options
echo '-Xmx7g' >> /etc/elasticsearch/jvm.options.d/jvm.options
# 配置es
cat <<'EOF' > /etc/elasticsearch/elasticsearch.yml
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["172.16.3.4"]
cluster.initial_master_nodes: ["172.16.3.4"]
xpack.security.enabled: false
EOF

3.4 启动es

① 启动es:

systemctl restart elasticsearch

② 设置es开机自启动:

systemctl enable elasticsearch

4. 部署kibana

备注:假设在172.16.3.5)机子上执行,与kafaka同一台机子

注意:修改配置文件/etc/kibana/kibana.yml中的elasticsearch.hostsserver.publicBaseUrl等配置信息:

4.1 添加kibana源

① 添加esgpg key

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys xxx
# 添加es的源
echo "deb https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/apt/ stable main" > /etc/apt/sources.list.d/es.list

4.2 安装kibana

① 安装kibana:

apt update
apt install -y kibana=7.15.1

② 设置apt保持kibana版本:

apt-mark hold kibana

4.3 配置kibana

先停止kibana,然后配置:

systemctl stop kibana
cat <<'EOF' > /etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://172.16.3.4:9200"]
i18n.locale: "zh-CN"
logging.quiet: true
server.basePath: "/kibana"
server.publicBaseUrl: "https://demo.kexinxiaoyuan.cn/kibana"
EOF

4.4 启动kibana

启动并设置kibana自动启动:

systemctl restart kibana
systemctl enable kibana

5. 配置域名转发

5.1 haproxy配置

① 配置域名转发,ssh 登录nginx服务器,先修改haproxy配置/etc/haproxy/haproxy.cfg,添加:

listen kibana
    bind 127.0.0.1:5601
    mode tcp
    option      tcp-check
    balance     roundrobin
    server kibana_b_1 172.16.3.5:5601 check inter 2000 rise 2 fall 3

② 修改保存/etc/haproxy/haproxy.cfg文件后,执行:

# 测试配置文件是否有问题
haproxy -c -f /etc/haproxy/haproxy.cfg
# 若上一步结果显示 Configuration file is valid ,则重启服务
systemctl restart haproxy.service

5.2 nginx配置

① 添加nginx转发,编辑nginx配置文件/etc/nginx/sites-enabled/demo.kexinxiaoyuan.cn,在server(443)段添加:

# kibana
    location /kibana {
        auth_basic "need auth";
        auth_basic_user_file /etc/nginx/.kibana_passwd;
        proxy_set_header  Upgrade $http_upgrade;
        proxy_set_header  Connection $connection_upgrade;
        proxy_set_header  Host $host;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  X-Forwarded-Host $host;
        proxy_set_header  X-Forwarded-Proto https;
        proxy_pass        http://127.0.0.1:5601;
        rewrite ^/kibana/(.*)$ /$1 break;
    }

② 创建访问kibanahttp认证文件,并重载nginx,执行:

# 创建kibana密码文件
echo 'xxx:$sfdfdfsdfsd/' > /etc/nginx/.kibana_passwd
# 测试Nginx配置
nginx -t
# 重载Nginx
nginx -s reload

最后:kibana(ELK) 访问地址:https://demo.xxx.cn/kibana/

目录
相关文章
|
7月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
183 0
|
3月前
|
运维 Cloud Native Devops
云原生架构的崛起与实践云原生架构是一种通过容器化、微服务和DevOps等技术手段,帮助应用系统实现敏捷部署、弹性扩展和高效运维的技术理念。本文将探讨云原生的概念、核心技术以及其在企业中的应用实践,揭示云原生如何成为现代软件开发和运营的主流方式。##
云原生架构是现代IT领域的一场革命,它依托于容器化、微服务和DevOps等核心技术,旨在解决传统架构在应对复杂业务需求时的不足。通过采用云原生方法,企业可以实现敏捷部署、弹性扩展和高效运维,从而大幅提升开发效率和系统可靠性。本文详细阐述了云原生的核心概念、主要技术和实际应用案例,并探讨了企业在实施云原生过程中的挑战与解决方案。无论是正在转型的传统企业,还是寻求创新的互联网企业,云原生都提供了一条实现高效能、高灵活性和高可靠性的技术路径。 ##
229 3
|
4月前
|
运维 Kubernetes 负载均衡
震惊!容器化运维竟藏如此大招,容器调度与服务编排让你的软件部署 “逆天改命”
【8月更文挑战第31天】在数字化时代,容器化技术革新了软件开发与运维方式,其高效、灵活及可移植的特点为企业应用部署提供了全新方案。容器调度与服务编排作为核心环节,通过优化资源分配、提升系统可靠性和可扩展性,实现了自动化管理。Kubernetes 等工具不仅简化了容器调度,还通过 Deployment、Service、Ingress 等资源对象实现了复杂应用架构的自动化运维,大幅提高了资源利用率和系统稳定性,减少了人工干预,加速了企业数字化转型。
59 2
|
4月前
|
存储 应用服务中间件 nginx
部署ELK+filebeat收集nginx日志
部署ELK+filebeat收集nginx日志
162 0
部署ELK+filebeat收集nginx日志
|
4月前
|
运维 安全 网络安全
自动化运维:使用Python脚本实现批量部署
【8月更文挑战第2天】在现代IT基础设施管理中,自动化运维成为提升效率、减少人为错误的关键。本文将通过一个实际的Python脚本示例,展示如何实现服务器的批量部署,包括环境准备、代码实现及执行过程。文章旨在为运维工程师提供一种简化日常任务的方法,同时强调安全性和可维护性的重要性。
|
4月前
|
运维 安全 测试技术
自动化运维的利剑:Ansible在企业级部署中的应用与挑战
本文深入探讨了Ansible,这一领先的IT自动化工具,如何在企业级部署中扮演关键角色。我们将通过实际案例分析,揭示Ansible在简化配置管理、加速应用部署和提高运维效率方面的优势。同时,文章也将不回避Ansible实施过程中可能遇到的技术挑战与限制,并提供针对性的解决策略。阅读本文后,您将获得一个全面的视角,理解Ansible在现代企业运维中不可或缺的地位,以及如何克服其面临的主要问题。
87 1
|
4月前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
92 0
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的批量运维管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的批量运维管理系统附带文章源码部署视频讲解等
42 0
|
5月前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
7月前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
316 6