ELK日志分析系统部署文档2

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
Elasticsearch Serverless通用抵扣包,测试体验金 200元
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK日志分析系统部署文档
创建文档生成索引
[elk@es-master ~]$ curl -H "Content-Type:application/json" -XPUT 'http://192.168.25.130:9200/index_name/type_name/1?pretty' -d '{ "name": "xuwl", "age": 18, "job": "Linux" }'
{
  "_index" : "index_name",
  "_type" : "index_type",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 0,
  "_primary_term" : 1
}
- `-H`                              '指定内容类型
- `-X`                              '指定http请求方式,这里为PUT上传方式
- `http://192.168.25.130:9200`      '指定一台es服务器对外的http端口
- `/index_name`                     '文档的索引名称,必须小写
- `/type_name`                      '文档的类型名称,必须小写
- `/1`                              '文档的ID编号
- `?pretty`                         '人性化创建索引
- `-d`                              '指定使用JSON方式来撰写上传文档
- `{ "name": "xuwl", "age": 18, "job": "Linux" }'`    '使用JSON格式来撰写上传文档内容
[elk@es-master ~]$ curl -XGET 'http:#192.168.25.130:9200/_cat/indices?v'
health status index      uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   index_name uK-E0UPMTamByd24eamfUQ   1   1          1            0      8.3kb          4.1kb
[root@els-master ~]# curl -XGET 'http://192.168.25.130:9200/_cat/shards?v'
index      shard prirep state   docs store ip              node
index_name 0     p      STARTED    1 4.1kb 192.168.25.130 es-master
index_name 0     r      STARTED    1 4.2kb 192.168.25.128 es-node2

部署redis

'redis-beat 安装配置'
[root@redis-beat ~]# yum install gcc gcc-c++ -y
[root@redis-beat ~]# cd /usr/local
[root@redis-beat local]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
[root@redis-beat local]# tar zxvf redis-5.0.5.tar.gz
[root@redis-beat local]# cd redis-5.0.5
[root@redis-beat redis-5.0.5]# make
[root@redis-beat redis-5.0.5]# make install
[root@redis-beat ~]# ./utils/install_server.sh     # 启动redis,配置redis
[root@redis-beat ~]# systemctl daemon-reload
[root@redis-beat ~]# systemctl start redis_6379
[root@redis-beat ~]# systemctl status redis_6379.service
[root@redis-beat ~]# /sbin/chkconfig redis_6379 on    # 设置开机启动
[root@redis-beat ~]# vim /etc/redis/6379.conf
# 修改成如下内容
bind 0.0.0.0
protected-mode no
# 重启Redis
[root@redis-beat ~]# systemctl status redis_6379.service
# 测试
[root@redis-beat ~]# netstat -nltp|grep redis
[root@redis-beat ~]# ./redis-cli
127.0.0.1:6379> ping
PONG

部署head

# 安装nodejs
[root@els-master ~]# curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash
[root@els-master ~]# yum install -y nodejs
# 验证
[root@els-master ~]# node -v
v10.16.0
[root@els-master ~]# npm -v
6.9.0
# 配置node源为taobao源
[root@els-master ~]# npm config set registry https://registry.npm.taobao.org
# 安装head插件
[root@els-master ~]# git clone git://github.com/mobz/elasticsearch-head.git
[root@els-master ~]# cd elasticsearch-head
[root@els-master ~]# npm install --registry=https://registry.npm.taobao.org
[root@els-master ~]# npm run start &
[1] 15239
[elk@els-master elasticsearch-head]$
> elasticsearch-head@0.0.0 start /home/elk/elasticsearch-head
> grunt server
Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

部署cerebro(es监控)

# 创建用户
[root@redis-beat ~]# sudo useradd -s /sbin/nologin cerebro
[root@redis-beat ~]# wget https://github.com/lmenezes/cerebro/releases/download/v0.9.2/cerebro-0.9.2.tgz
[root@redis-beat ~]# mkdir /opt/cerebro
[root@redis-beat ~]# tar xf cerebro-0.9.2.tgz -C /opt/cerebro
[root@redis-beat ~]# ln -s /opt/cerebro/cerebro-0.9.2 /opt/cerebro/current
[root@redis-beat ~]# chown -R cerebro.cerebro /opt/cerebro
# 更改配置
[root@redis-beat ~]# mkdir /home/cerebro/data
[root@redis-beat ~]# chown -R cerebro.cerebro /home/cerebro
[root@redis-beat ~]# mv /opt/cerebro/current/conf/application.conf{,.bak}
[root@redis-beat ~]# tee /opt/cerebro/current/conf/application.conf << 'EOF'
secret="ki:s:[[@=Ag?QI`W2jMwkY:eqvrJ]JqoJyi2axj3ZvOv^/KavOT4ViJSv?6YY4[N"
basePath="/"
pidfile.path="/opt/cerebro/current/cerebro.pid"
data.path="/home/cerebro/data/cerebro.db"
es={
    gzip=true
}
auth={       # 访问Cerebro的用户名及密码
    type: basic
    settings: {
        username="admin"
        password="1234.com"
    }
}
hosts=[   # 要监控的Elasticsearch集群,host:节点访问地址,name:标识,一般用ES的cluster_name
  {
    host="http://192.168.152.137:9200"
    name="es_log"
  }
]
EOF
# 启动cerebro
[root@redis-beat ~]# /opt/cerebro/cerebro-0.9.2/bin/cerebro
[info] play.api.Play - Application started (Prod)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
# 创建systemctl管理启动
[root@redis-beat ~]# vim /opt/cerebro/current/bin/cerebro
JAVA_HOME=/usr/local/java     # 否则会找不到变量,systemctl启动不了cerebro
[root@redis-beat ~]# tee /etc/systemd/system/cerebro.service << 'EOF'
[Unit]
Description=Cerebro
After=network.target
[Service]
Type=folking
PIDFile=/opt/cerebro/current/cerebro.pid
User=cerebro
Group=cerebro
LimitNOFILE=65535
ExecStart=/opt/cerebro/current/bin/cerebro -Dconfig.file=/opt/cerebro/current/conf/application.conf
Restart=on-failure
WorkingDirectory=/opt/cerebro/current
[Install]
WantedBy=multi-user.target
EOF
[root@redis-beat ~]# systemctl daemon-reload
[root@redis-beat ~]# systemctl enable cerebro
[root@redis-beat ~]# systemctl start cerebro
[root@redis-beat ~]# systemctl status cerebro

部署logstash

[elk@logstash ~]$ sudo mkdir /usr/local/elkapp && sudo mkdir -p /usr/local/elkdata/logstash/{date,logs} && sudo chown -R elk.elk /usr/local/elk*
[elk@logstash local]$ tar xf logstash-7.8.0.tar.gz -C /usr/local/elkapp/
[elk@logstash local]$ cd elkapp/
[elk@logstash elkapp]$ ln -s logstash-7.8.0/ logstash
[elk@logstash elkapp]$ sudo chown elk.elk /usr/local/elk* -R
# 配置logstash.yml
[elk@logstash elkapp]$ sudo vim logstash-7.8.0/config/logstash.yml
   path.data: /usr/local/elkdata/logstash/data
   path.logs: /usr/local/elkdata/logstash/logs
# 配置piplines.yml
[elk@logstash logstash]$ sudo mkdir conf.d
[elk@logstash logstash]$ vim config/pipelines.yml
  - pipeline.id: test
    pipeline.workers: 1
    path.config: "/usr/local/elkapp/logstash/conf.d/*.conf"
# 启动logstash
[elk@logstash ~]$ /usr/local/elkapp/logstash/bin/logstash -f config/input-output.conf -t
- -f 指定配置文件
- -t 检查配置是否语法正确
配置systemctl管理启动
[elk@logstash ~]$ sudo vim /usr/local/elkapp/logstash/bin/logstash
JAVA_HOME=/usr/local/java
[elk@logstash ~]$ sudo vim /etc/systemd/system/logstash.service
# 内容如下
[Unit]
Description=logstash
[Service]
User=elk
Group=elk
LimitMEMLOCK=infinity
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/usr/local/elkapp/logstash/bin/logstash
[Install]
WantedBy=multi-user.target
[elk@logstash ~]$ sudo systemctl daemon-reload
[elk@logstash ~]$ sudo systemctl start logstash 
[elk@logstash ~]$ sudo systemctl enable logstash

部署filebeat

tar包安装
# 下载安装包
[root@redis-beat ~]# cd /usr/local/src
[root@redis-beat src]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-linux-x86_64.tar.gz
[root@redis-beat src]# tar -xf filebeat-7.8.0-linux-x86_64.tar.gz -C /usr/local/
[root@redis-beat src]# cd /usr/local/filebeat-7.8.0-linux-x86_64
[root@redis-beat local]# ln -s filebeat-7.8.0-linux-x86_64/ filebeat
[root@redis-beat filebeat-7.8.0-linux-x86_64]# ./filebeat -e -c filebeat.yml   # 测试
# 配置systemctl启动
[root@redis-beat ~]# tee /etc/systemd/system/filebeat.service << 'EOF'
[Unit]
Description=filebeat server daemon
Documentation= /usr/local/filebeat/filebeat -help
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Environment="BEAT_CONFIG_OPTS=-c /usr/local/filebeat/filebeat.yml"
ExecStart= /usr/local/filebeat/filebeat $BEAT_CONFIG_OPTS
Restart=always
[Install]
WantedBy=multi-user.target
EOF
[root@redis-beat ~]# systemctl daemon-reload            # 重载system 配置
[root@redis-beat ~]# systemctl start filebeat                  # 启动filebeat服务
[root@redis-beat ~]# systemctl enable filebeat                 # 设置开机自启动
[root@redis-beat ~]# systemctl disable filebeat                # 停止开机自启动
[root@redis-beat ~]# systemctl status filebeat                 # 查看服务当前状态
[root@redis-beat ~]# systemctl restart filebeat               # 重新启动服务
[root@redis-beat ~]# systemctl list-units --type=service       # 查看所有已启动的服务
yum安装
[root@redis-beat ~]# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@redis-beat ~]# tee /etc/yum.repos.d/elastic.repo << 'EOF'
# 内容如下
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
[root@redis-beat ~]# yum install filebeat
rpm 安装
[root@redis-beat ~]# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-x86_64.rpm
[root@redis-beat ~]# rpm -vi filebeat-7.8.0-x86_64.rpm
Ubuntu-apt-get
# 导入签名Key
[elk@beat ~]$ sudo wget -qO - https://#artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
[elk@beat ~]$ sudo apt-get install apt-transport-https
# 保存仓库到/etc/apt/sources.list.d/elastic-7.x.list
[elk@beat ~]$ echo "deb https://#artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
[elk@beat ~]$ sudo apt-get update && sudo apt-get install filebeat
# 配置文件在/etc/filebeat/filebeat.yml
# 配置filebeat开机启动
[elk@beat ~]$ sudo update-rc.d filebeat defaults 95 10
Ubuntu-deb
[elk@beat ~]$ curl -L -O https://#artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.0-amd64.deb
Docker
[root@redis-beat ~]# docker pull docker.elastic.co/beats/filebeat:7.8.0
[root@redis-beat ~]# docker run \
docker.elastic.co/beats/filebeat:7.8.0 \
setup -E setup.kibana.host=kibana:5601 \
-E output.elasticsearch.hosts=["elasticsearch:9200"]
配置Filebeat
# 配置文件filebeat.yml。 可以通过以下命令创建日志文件,并进行内容追加,以便进行写入测试
[root@redis-beat ~]# touch /usr/local/access-filebeat-test.log
[root@redis-beat ~]# echo "this msg is from reids" >> /usr/local/access-filebeat-test.log

部署kibana

[root@es-node2-kibana ~]# su - elk
# 创建elkaPP目录并设置所有者
[elk@es-node2-kibana ~]$ sudo mkdir /usr/local/elkapp
# 创建ELK数据目录并设置所有者
[elk@es-node2-kibana ~]$ sudo mkdir /usr/local/elkdata
# 创建logstash主目录
[elk@es-node2-kibana ~]$ sudo mkdir -p /usr/local/elkdata/kibana
# 创建logstash数据目录
[elk@es-node2-kibana ~]$ sudo mkdir -p /usr/local/elkdata/kibana/data
# 创建logstash日志目录
[elk@es-node2-kibana ~]$ sudo mkdir -p /usr/local/elkdata/kibana/logs
# 设置目录权限
[elk@es-node2-kibana ~]$ sudo chown -R elk:elk /usr/local/elkapp
[elk@es-node2-kibana ~]$ sudo chown -R elk:elk /usr/local/elkdata
##### 合并版命令 #####
[elk@es-node2-kibana ~]$ sudo mkdir /usr/local/elkapp && sudo mkdir -p /usr/local/elkdata/kibana/{data,logs} && sudo chown -R elk:elk /usr/local/elkapp && sudo chown -R elk:elk /usr/local/elkdata
# 安装kibana
[elk@es-node2-kibana ~]$ cd /usr/local/src
[elk@es-node2-kibana src]$ sudo wget https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
[elk@es-node2-kibana src]$ sudo tar -xf kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/elkapp
[elk@es-node2-kibana src]$ cd /usr/local/elkapp
[elk@es-node2-kibana local]$ sudo ln -s kibana-7.8.0-linux-x86_64 kibana
# 设置目录权限
[elk@es-node2-kibana local]$ sudo chown -R elk:elk /usr/local/elkapp
[elk@es-node2-kibana local]$ sudo chown -R elk:elk /usr/local/elkdata
##### 合并版命令 ##### 
[elk@es-node2-kibana src]$ sudo tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz -C /usr/local/elkapp && sudo ln -s kibana-7.8.0-linux-x86_64 kibana && sudo chown -R elk:elk /usr/local/elkapp && sudo chown -R elk:elk /usr/local/elkdata
# 配置kibana
[elk@es-node2-kibana ~]$ vim /usr/local/elkapp/kibana-7.8.0-linux-x86_64/config/kibana.yml
# 增加如下内容
server.port: 5601
server.host: "192.168.152.128"
elasticsearch.hosts: ["http:#192.168.152.130:9200"]
# 配置systemctl启动
[elk@es-node2-kibana ~]$ vi /etc/systemd/system/kibana.service
# 内容如下
[Unit]
Description=kibana
[Service]
User=elk
Group=elk
LimitMEMLOCK=infinity
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/usr/local/elkapp/kibana/bin/kibana
[Install]
WantedBy=multi-user.target
[elk@es-node2-kibana ~]$ sudo systemctl daemon-reload
[elk@es-node2-kibana ~]$ sudo systemctl start kibana 
[elk@es-node2-kibana ~]$ sudo systemctl enable kibana
##### 合并版命令 #####
[elk@es-node2-kibana ~]$ sudo systemctl daemon-reload && sudo systemctl start kibana && sudo systemctl enable kibana
# 汉化kibana
[elk@es-node2-kibana ~]vim /usr/local/elkapp/kibana/config/kibana.yaml
i18n.locale: "zh-CN"


相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
2月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
345 122
基于docker搭建监控系统&日志收集
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
2月前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
717 64
搭建ELK日志收集,保姆级教程
|
5月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
350 1
|
2月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
272 2
|
4月前
|
Ubuntu 应用服务中间件 网络安全
ELK完整部署教程
本文介绍了在Ubuntu 22.04上部署ELK(Elasticsearch、Logstash、Kibana)及Filebeat的完整步骤。内容涵盖Elasticsearch安装与安全配置、Kibana启用SSL与注册、Logstash配置输入输出,以及Filebeat采集日志并发送至Logstash或Elasticsearch的方法。适用于本地非容器环境的日志收集与可视化搭建。
|
4月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
8月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
356 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
8月前
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
171 10
|
存储 监控 安全
5款 Syslog集中系统日志常用工具对比推荐
集中管理Syslog有助于持续监控网络中的恶意活动,确保日志的搜索和分析更为便捷。常用工具包括Rsyslog、Syslog-ng、Logstash和Fluentd,它们各有优劣。Rsyslog通过多种协议确保日志传输的安全性;Syslog-ng支持高效收集和转发日志;Logstash能解析多源日志并索引;Fluentd将日志转换为JSON格式。卓豪EventLog Analyzer则提供一体化的日志管理,支持日志分析、报表生成、用户行为分析及实时告警,是全面的日志管理解决方案。
118 0

热门文章

最新文章