基础架构部文档
基础架构部文件格式标准参考
技术文档
mr_doc 接入ucenter 认证登录
loki日志收集
https证书与ssl/tls 加密
FTP 主动模式和被动模式的区别
Hadoop-windows10安装部署Hadoop2.7.3
JKS和PFX证书文件格式相互转换方法
KVM 基础操作
k8s nginx ingress日志收集到ELK并分析
Django基础
clash http代理 socks代理服务器搭建 配置
Ubuntu 22.04 安装 FFmpeg v7.0
Office正版化项目的个人体验和心得
重置jenkins构建历史
K8S实施方案
k8s的yaml文件语法
Docker的优势与虚拟机的区别
问题处理文档
HR推送数据问题处理报
Nginx从入门到放弃01-nginx基础安装
Nginx从入门到放弃02-Nginx基本命令和新建WEB站点
Nginx从入门到放弃03-Nginx调优
Nginx从入门到放弃04-Nginx的N种特别实用示例
JMeter教程
01-mariadb编译安装
02-mariadb二进制安装
Docker修改默认的存储路径
01-influxdb2时序数据库简介及安装
02-influxdb2时序数据库核心概念
03-influxdb2时序数据库flux查询语言
04-influxdb2--Python客户端influxdb-client
05-Spring boot 集成influxdb2
06-influxdb2其他知识
OA添加waf后相关问题的解决过程
排除java应用cpu使用率过高
exsi迁移文档
视频测试
阿里云产品试题
超融合服务器和传统服务器的区别
Serv-U问题集锦
文件夹共享操作手册
磁盘脱机处理方案
Office内存或磁盘空间不足处理方法
Cmd中ping不是内部或外部命令的解决方法
ELK 搭建文档
限制用户的远程桌面会话数量
Docker快速安装rocketmq、redis、zookeeper
超融合建设方案
git 入门
HR系统写入ES数据报错403
ELK搭建文档
KVM 安装和基础使用文档
helm 安装 rancher
访问共享提示禁用当前用户解决方法
K8S StorageClass搭建
KVM 扩展磁盘
借助sasl构建基于AD用户验证的SVN服务器
fastdfs编译安装并迁移数据
关闭系统保护的必要性
SCF 前置机部署
阿里云OSS学习文档
阿里云学习文档-VPC
(k8s踩坑)namespace无法删除
rancher-helm安装
zookeeper集群安装
批量替换K8s secrets 中某个特定域名的tls证书
kibana 批量创建索引模式
centos7 恢复Yum使用
ACP云计算部分知识点总结
Loki 日志系统搭建文档
自动更新k8s集群中所有名称空间中特定证书
AI分享
(AI)函数调用与MCP调用的区别
安装戴尔DELL Optilex 7040 USB驱动时提示无法定位程序输入点 kernel32\.dll
新华三服务器EXSI 显卡直通
本文档使用「觅思文档专业版」发布
-
+
首页
ELK 搭建文档
# ELK搭建文档 ## 服务器规划 | 主机名 | 地址 | 配置 | 安装组件 | | ---------- | ------------- | ------ | ----------------------------- | | elk-master | 10.7.6.219:22 | 8c/32g | Elasticsearch logstash kibana | | elk-node1 | 10.7.6.123:22 | 4c/32g | Elasticsearch | | elk-node2 | 10.7.6.86:22 | 4c/16g | Elasticsearch | # 服务器初始化 修改host相互解析 ```shell cat << EOF >> /etc/hosts 10.7.6.219 elk-master 10.7.6.123 elk-node1 10.7.6.86 elk-node2 EOF ``` 复制文件 ```shell scp -r ./* elk-node1:/tqls_system/ scp -r ./* elk-node2:/tqls_system/ ``` 关闭防火墙和关闭selinux ```shell systemctl status firewalld systemctl stop firewalld iptables -nL #清除预设表filter中的所有规则链的规则 iptables -F #清除预设表filter中使用者自定链中的规则 iptables -X vim /etc/selinux/config selinux=disabled ``` 新建用户 ```shell useradd tqlsuser passwd tqlsuser #将用户授予sudo权限 echo 'tqlsuser ALL=(ALL:ALL) ALL' >> /etc/sudoers ``` 调整进程最大打开文件数数量 ```shell # 临时设置 ulimit -n 65535 # 永久设置,重启生效 vi /etc/security/limits.conf * hard nofile 65535 * soft nofile 65535 ``` 调整进程最大虚拟内存区域数量 ```shell # 临时设置 sysctl -w vm.max_map_count=262144 # 永久设置 echo "vm.max_map_count=262144" >> /etc/sysctl.conf sysctl -p ``` # Elasticsearch 修改配置文件  ```shell cat << EOF > /tqls_system/apps/elasticsearch/config/elasticsearch.yml cluster.name: elk-tqls # 集群名称 node.name: elk-master # 集群节点名称 node.master: true #path.data: /path/to/data # 数据目录 #path.logs: /path/to/logs # 日志目录 network.host: 0.0.0.0 # 监听地址 http.port: 9200 # 监听端口 transport.tcp.port: 9300 #内部节点之间通信端口 discovery.seed_hosts: ["elk-master","elk-node1","elk-node2"] # 集群节点列表 cluster.initial_master_nodes: ["elk-master"] # 首次启动指定的Master节点 bootstrap.memory_lock: true #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右) EOF ``` ```shell cat << EOF > /tqls_system/apps/elasticsearch/config/elasticsearch.yml cluster.name: elk-tqls # 集群名称 node.name: elk-node1 # 集群节点名称 node.master: false #path.data: /path/to/data # 数据目录 #path.logs: /path/to/logs # 日志目录 network.host: 0.0.0.0 # 监听地址 http.port: 9200 # 监听端口 transport.tcp.port: 9300 #内部节点之间通信端口 discovery.seed_hosts: ["elk-master","elk-node1","elk-node2"] # 集群节点列表 #cluster.initial_master_nodes: [“node-1”] # 首次启动指定的Master节点 bootstrap.memory_lock: true #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右) EOF ``` ```shell cat << EOF > /tqls_system/apps/elasticsearch/config/elasticsearch.yml cluster.name: elk-tqls # 集群名称 node.name: elk-node2 # 集群节点名称 node.master: false #path.data: /path/to/data # 数据目录 #path.logs: /path/to/logs # 日志目录 network.host: 0.0.0.0 # 监听地址 http.port: 9200 # 监听端口 transport.tcp.port: 9300 #内部节点之间通信端口 discovery.seed_hosts: ["elk-master","elk-node1","elk-node2"] # 集群节点列表 #cluster.initial_master_nodes: [“node-1”] # 首次启动指定的Master节点 bootstrap.memory_lock: true #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右) EOF ``` ```shell #为集群设置名称,集群内所有节点配置的名称必须一致 cluster.name: bigdata #当前节点取名,集群内节点名称必须唯一 node.name: node1 #当前节点地址 network.host: 192.168.57.188 #始化一个新的集群时需要此配置来选举master cluster.initial_master_nodes: ["note1", "note2"] #写入候选主节点的设备地址,在开启服务后可以被选为主节点 discovery.seed_hosts: ["note1", "note2", "note3"] #表示该节点会不会作为主节点,true表示会;false表示不会 node.master: true #当前节点是否用于存储数据,是:true、否:false node.data: true #数据存储目录(用逗号分隔多个位置) 这个目录默认不存在,自行创建 path.data: /home/tools/elasticsearch/elasticsearch-7.17.8/data #日志文件路径 path.logs: /home/tools/elasticsearch/elasticsearch-7.17.8/logs #es对外提供的http端口,默认 9200 http.port: 9200 #TCP的默认监听端口,默认 9300 transport.tcp.port: 9300 #启动时是否有锁定内存,生产环境需要true(可用内存一般设置可用内存的一半左右) bootstrap.memory_lock: true ``` 设置堆内存大小 ```shell 设置jvm堆大小(根据服务器内存大小进行设置,用2g替换1g) sed -i 's/-Xms1g/-Xms8g/' /tqls_system/apps/elasticsearch/config/jvm.options sed -i 's/-Xmx1g/-Xmx8g/' /tqls_system/apps/elasticsearch/config/jvm.options ``` 配置系统服务管理 ```shell cat << EOF > /usr/lib/systemd/system/elasticsearch.service [Unit] Description=elasticsearch [Service] User=tqlsuser LimitNOFILE=65535 LimitMEMLOCK=infinity ExecStart=/tqls_system/apps/elasticsearch/bin/elasticsearch ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF ``` ```shell systemctl daemon-reload systemctl restart elasticsearch systemctl start elasticsearch systemctl stop elasticsearch ``` curl -i -XGET http://127.0.0.1:9200/_cluster/health?pretty ````shell 查看集群节点:curl -XGET 'http://127.0.0.1:9200/_cat/nodes?pretty' 10.7.6.123 15 49 0 0.09 0.05 0.05 dilrt - elk-node1 10.7.6.219 5 49 0 0.01 0.03 0.05 dilmrt * elk-master 10.7.6.86 12 97 0 0.08 0.03 0.05 dilrt - elk-node2 IP地址:节点的IP地址。 15、5、12:分别表示节点的分片数量。 49、49、97:分别表示节点的可用分片数量。这个数字反映了节点当前可用于分配的空闲分片槽位。 0、0、0:分别表示节点的延迟(ping时间)。 0.09、0.01、0.08:分别表示节点的主节点选举权重。 0.05、0.03、0.03:分别表示节点的CPU使用率。 0.05、0.05、0.05:分别表示节点的堆内存使用率。 dilrt、dilmrt、dilrt:节点的角色(d:数据节点,i:Ingest节点,l:本地分片复制节点,m:主节点候选者,r:远程集群客户端,t:传输节点)。 elk-node1、elk-master、elk-node2:节点的名称。 查询集群状态: curl -i -XGET http://127.0.0.1:9200/_cluster/health?pretty ```` # Logstash 二进制部署 ```shell #需要安装jdk yum install java-1.8.0-openjdk –y ``` ```shell cat << EOF > /tqls_system/apps/logstash/config/logstash.yml pipeline: # 管道配置 batch: size: 125 delay: 5 path.config: /tqls_system/apps/logstash/conf.d # conf.d目录自己创建 # 定期检查配置是否修改,并重新加载管道。也可以使用SIGHUP信号手动触发 # config.reload.automatic: false # config.reload.interval: 3s # http.enabled: true http.host: 0.0.0.0 http.port: 9600-9700 log.level: info path.logs: /tqls_system/apps/logstash/logs EOF ``` ```shell cat << EOF > /usr/lib/systemd/system/logstash.service [Unit] Description=logstash [Service] User=tqlsuser ExecStart=/tqls_system/apps/logstash/bin/logstash ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF ``` # Kibana 二进制部署 ```shell cd /opt/elk tar zxvf kibana-7.9.3-linux-x86_64.tar.gz mv kibana-7.9.3-linux-x86_64 kibana cat << EOF > /tqls_system/apps/kibana/config/kibana.yml server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://10.7.6.219:9200"] i18n.locale: "zh-CN" EOF ``` ExecStart=/tqls_system/apps/kibana/bin/kibana --allow-root ```shell cat << EOF > /usr/lib/systemd/system/kibana.service [Unit] Description=kibana [Service] User=tqlsuser ExecStart=/tqls_system/apps/kibana/bin/kibana ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure [Install] WantedBy=multi-user.target EOF systemctl daemon-reload ``` # Filebeat ```shell # 配置不同的输入 - type: log # 是否启用该输入配置 enabled: false # 采集的日志文件路径,可以通配 paths: - /var/log/*.log # 正则匹配要排除的行,这里以DBG开头的行都过滤掉 #exclude_lines: ['^DBG'] # 正则匹配要采集的行,这里以ERR/WARN开头的行都采集 #include_lines: ['^ERR', '^WARN'] # 排除的文件,默认采集所有 #exclude_files: ['.gz$'] # 添加标签 #tags: ["nginx"] # 下面fields添加的字段默认是在fields.xxx,可以设置在顶级对象下 # fields_under_root: true # 自定义添加的字段,一般用于标记日志来源 #fields: # level: debug # review: 1 ``` ```shell filebeat.inputs: - type: log enabled: true paths: - /var/log/test/*.log tags: ["nginx"] fields_under_root: true fields: project: microservice app: product ``` ```yaml apiVersion: v1 kind: ConfigMap metadata: name: cm-filebeat namespace: srm-prd data: filebeat.yml: | filebeat.inputs: - type: log enabled: true paths: - /var/log/test/*.log tags: ["nginx"] fields_under_root: true fields: project: s app: product output.logstash: hosts: ["10.7.6.219:5044"] ``` gem "logstash-output-oss"
杨超
2023年8月31日 15:45
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期