运维(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/

目录
相关文章
|
4月前
|
Web App开发 监控 NoSQL
ELK日志分析系统部署文档 1
ELK日志分析系统部署文档
64 0
|
6月前
|
运维 关系型数据库 Linux
OBProxy路由策略与使用运维-部署
OBProxy路由策略与使用运维-部署
45 0
|
26天前
|
安全 Java 数据安全/隐私保护
百度搜索:蓝易云【docker部署ELK8.8.1集群logstash报错PKIX path building failed】
重新启动logstash:保存修改后的配置文件,并重新启动logstash容器。
26 6
|
26天前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速迭代的软件开发周期中,确保应用的一致性、可移植性与易于管理成为了开发与运维团队面临的重大挑战。本文旨在介绍如何通过Docker容器技术,有效地解决这些问题,特别是针对Java应用。我们将从Docker的基本概念出发,逐步深入到实际操作,展示如何将传统的Java应用容器化,以及这一过程如何帮助简化部署流程、提高应用的可靠性和可伸缩性。不同于常规的技术文章,本文试图以一种更加易于理解和实践的方式,让读者能够快速掌握容器化技术,并将其应用于日常的开发与运维工作中。
76 0
|
28天前
|
运维 Java 持续交付
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速发展的软件开发领域,持续集成与持续部署(CI/CD)已成为提高开发效率和软件质量的关键。本文将探讨如何利用Docker容器技术,实现Java应用的高效部署与运维。我们将从Docker的基本概念入手,详细介绍如何将传统的Java应用容器化,并通过实际案例展示容器化带来的便利性和高效性。此外,文章还将探讨Docker容器与传统虚拟机部署方式的对比,以及如何在实际项目中选择最适合的部署策略。通过本文,读者将能够深入理解Docker容器化技术,并学会如何在自己的Java项目中实施和优化。
205 1
|
28天前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在快速迭代与持续集成的开发周期中,如何确保Java应用的一致性、高效部署及易于管理成为了开发与运维团队面临的重大挑战。本文将探讨Docker容器技术如何为Java应用提供一种轻量级、可移植的解决方案,实现环境一致性、简化配置过程并提高开发到生产的流程效率。我们将从Docker的基本概念入手,通过实例详细说明如何将传统的Java应用容器化,以及如何利用Docker Compose来管理多容器应用,最后探讨在使用Docker部署Java应用时的最佳实践和常见问题解决策略。
180 1
|
6月前
|
自然语言处理 Java 开发工具
实战:ELK环境部署并采集springboot项目日志
实战:ELK环境部署并采集springboot项目日志
|
4月前
|
运维 应用服务中间件 nginx
运维(27)-部署流量代理(Nginx+haproxy)
运维(27)-部署流量代理(Nginx+haproxy)
45 0
|
4月前
|
监控 NoSQL Redis
ELK日志分析系统部署文档2
ELK日志分析系统部署文档
78 0
|
5月前
|
运维 监控 Linux
Linux 部署1Panel现代化运维管理面板&远程访问
Linux 部署1Panel现代化运维管理面板&远程访问