linux单机部署 elk

本文详细介绍了在Linux系统中部署ELK栈的步骤,包括关闭防火墙和SELinux,安装与配置JDK,创建ELK运行用户,下载并配置Elasticsearch、Logstash和Kibana,修改系统参数,以及各个组件的启动和验证。通过这个过程,读者可以了解到如何在单机上搭建完整的日志分析平台。

1.基础环境准备

1.关闭防火墙

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
#查看selinux
getenforce
关闭selinux
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

2.检查jdk环境

which java
ll -rt /etc/alternatives/java
#c查看所安装的jdk
yum list installed | grep java
#卸载jdk
yum -y remove java-1.8.0-openjdk*
#查看现在使用的jdk
java -version
#安装jdk
yum -y install java-1.8.0-openjdk.x86_64

cp -r  /root/pk/java-1.8.0 /usr/java/ 
vim /etc/profile
#set java environment
JAVA_HOME=/usr/java/java-1.8.0
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
#生效配置并生效
source /etc/profile
java -version

3.创建elk运行用户

#因为elk这些组件默认不在root下运行

#添加用户组添加用户
groupadd elsearch
useradd -g elsearch elsearch -p elsearch

4.下载elk环境所需的包

 mkdir -p /data/mat
 cd /data/mat 
 #es安装包
 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
 #logstash安装包
 wget https://artifacts.elastic.co/downloads/logstash/logstash-7.14.0-linux-x86_64.tar.gz
 #kibana安装包
 wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz

#赋予elk目录用户的权限
chown -R elsearch:elsearch /data/mat/*

5.修改操作系统参数

#使用 root 用户先进行以下内容的配置 
 cp /etc/security/limits.conf /etc/security/limits.conf.bak2021_04_26

vim /etc/security/limits.conf 
#添加如下内容:
elsearch soft nofile 65536    
elsearch hard nofile 65536    
elsearch soft memlock unlimited    
elsearch hard memlock unlimited

#limits.d/目录不一定是90-nproc.conf 也有时是20-nproc.conf
vim /etc/security/limits.d/90-nproc.conf
soft nproc 1024 修改为 soft nproc 4096
*          soft    nproc     4096
root       soft    nproc     unlimited

 
echo vm.max_map_count=655360 >> /etc/sysctl.conf 
[root@centos06 limits.d]# sysctl -p
vm.max_map_count = 655360

2.组件应用配置

1.es部署配置

1.解压安装es

cd /data/mat/
tar -xzvf elasticsearch-7.14.0-linux-x86_64.tar.gz

2.修改es的启动运行内存

#指定运行内存大小
vim /data/mat/elasticsearch-7.14.0/config/jvm.options
 31 -Xms512m
 32 -Xmx512m
 
#elasticsearch 限制 root 用户不能启动,请使用用户 elsearch 启动 
su - elsearch
#后台运行es,没有-d的话就是前台运行 
./elasticsearch -d

#测试访问
curl 10.0.40.72:9200
#关闭
#查找进程ID 
ps -aux | grep elasticsearch 
#Kill杀掉es进程 
kill -9 40745

3.修改es配置文件

cp /data/mat/elasticsearch-7.14.0/config/elasticsearch.yml /data/mat/elasticsearch-7.14.0/config/elasticsearch.yml.bak
vim  /data/mat/elasticsearch-7.14.0/config/elasticsearch.yml

#es集群名称
cluster.name: my-es
#0.0.0.0 允许外部访问
network.host: 0.0.0.0
#节点名,默认随机指定一个name列表中名字
node.name: node1
#指定该节点是否有资格被选举成为node,默认是true,es是默认集群中的第一台机器为master,如果这台机挂了就会重新选举master。
node.master: true //单机不需要配置
#设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开,例:
path.data: /path/to/data //一般只需要指定一个
path.data: /path/to/data1,/path/to/data2
#指定日志存放位置
path.logs: /data/mat/log/eslogs/
#设置对外服务的http端口,默认为9200
http.port: 9200
#集群内节点添加
cluster.initial_master_nodes: ["node-1"]

4.ES安装成功验证

浏览器访问:http://X.X.X.X.:9200/

2.logstash部署配置

1.解压安装logstash

cd /data/mat/
tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz

2.配置logstash

#创建自定义日志扫描配置
vim /data/mat/logstash-7.14.0/config/LogzabAgent.conf
input {
  file {
		#可以根据需求指定日志文件
    path => "/var/log/zabbix/zabbix_agentd.log"
    #一json格式
    codec => "json"
    #自定义日志类型标识
    type => "zibbix"
    #表示从开始出收集
    start_position => "beginning"
  }
}
#过滤器
filter {
}

#输出到指定位置
output {
  #输出进行格式化,采用Rubu库来解析日志
   stdout { codec => rubydebug }
   elasticsearch {
      #设置elasticsearch的ip地址和端口号
      hosts => ["10.0.40.72:9200"]
      #设置搜索索引 就是个搜索名字可任意
      index => "es-%{+YYYY.MM.dd}"
  }
}

3.本地加载测试

#防止没有权限读取日志文件
chmod 755 /var/log/*
cd /data/mat/logstash-7.14.0
# -f 指定自定义的扫码配置文件
./bin/logstash -f config/Logconf/LogNg.conf
#配置软连接
ln -s /data/mat/logstash-7.14.0/bin/logstash /usr/local/bin/
#配置完毕软连接可以使用
logstash -f config/Logconf/LogNg.conf
#检查是否有黄色的日志显示   #如果长时间未显示可能是没有日志信息。需要新的加入

4.设置多个扫描文件应用

#删除之前加载的缓存文件
cd /data/mat/logstash-7.14.0/data
#lock 为隐藏文件 ll -a 查看
rm -rf ./lock
#修改加载扫描的配置文件
vim /data/mat/logstash-7.14.0/config/pipelines.yml
#指定管道的id
 13  - pipeline.id: zabbix
 14    pipeline.workers: 1
 15    pipeline.batch.size: 1
 #指定扫描文件位置
 16    path.config: "/data/mat/logstash-7.14.0/config/Logconf/LogzabAgent2.conf"
 
 17  - pipeline.id: nginx
 18    queue.type: persisted
 19    path.config: "/data/mat/logstash-7.14.0/config/Logconf/LogNg.conf"
 #启动
 cd /data/mat/logstash-7.14.0
 ./bin/logstash

3.Kibana部署配置

1.下载并解压Kibana

#解压
tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz

2.修改Kibanna配置

vim /data/mat/kibana-7.14.0-linux-x86_64/config/kibana.yml 
#端口地址
server.port: 5601
#允许外部所有访问 localhots只能本地访问
server.host: "0.0.0.0"
#和es建立连接的地址
lasticsearch.hosts: ["http://10.0.40.72:9200"]

3.启动Kibanna

 cd /data/mat/kibana-7.14.0-linux-x86_64/
 nohup ./bin/kibana &
 #访问
 http://10.0.40.72:5601

3.Kibanna前端展示

1.访问kibana网页平台

http://10.0.40.72:5601

2.使用工具查找日志

点击菜单栏选择Dev Tools

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4zeagvwA-1630551604564)(linux单机部署 elk.assets/image-20210821153703290.png)]

GET /es-2021.08.20/_search
{
“query”: {
“match_all”: {}
}
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3lhLNwPm-1630551604566)(linux单机部署 elk.assets/image-20210822134838034.png)]

3.带条件写法

GET /nginx-2021.08.19/_search
{
“query”: {
“match”: {
“message”: “192.168.102.190”
}
}
}
在这里插入图片描述
“message”: "192.168.102.190"查看包涵192.168.102.190的所有数据
在这里插入图片描述

<think>我们正在为AlmaLinux9.6单机部署ELK8.17版本。ELK包括Elasticsearch,Logstash,Kibana三个组件。根据引用内容,我们需要注意以下几点:1.不能使用root用户运行,需要创建专用用户(如elk)并授权。2.需要调整系统设置(如文件描述符、虚拟内存等)以满足Elasticsearch的要求。3.可能需要调整JVM堆内存设置(根据服务器内存情况)。4.安装过程包括下载解压、配置、启动、验证等步骤。由于引用中提供了部分步骤,但针对的是不同的Linux发行版(Ubuntu)或不同版本,我们将结合AlmaLinux的特点进行调整。以下是详细步骤:###1.准备工作-确保服务器满足要求:至少4GB内存(推荐8GB),JDK(Elasticsearch8.17自带OpenJDK,无需单独安装)。-更新系统:```bashsudodnfupdate-y```-安装常用工具:```bashsudodnfinstallwgettar-y```###2.创建ELK用户和组ELK不能以root运行,因此创建专用用户和组:```bashsudogroupaddelksudouseradd-gelkelk```###3.下载ELK8.17在`/usr/local`目录下创建elk目录,并下载解压:```bashsudomkdir/usr/local/elksudochownelk:elk/usr/local/elkcd/usr/local/elk```下载Elasticsearch、Kibana、Logstash(注意版本号一致):```bashsudo-uelkwgethttps://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-linux-x86_64.tar.gzsudo-uelkwgethttps://artifacts.elastic.co/downloads/kibana/kibana-8.17.3-linux-x86_64.tar.gzsudo-uelkwgethttps://artifacts.elastic.co/downloads/logstash/logstash-8.17.3-linux-x86_64.tar.gz```解压:```bashsudo-uelktar-zxvfelasticsearch-8.17.3-linux-x86_64.tar.gzsudo-uelktar-zxvfkibana-8.17.3-linux-x86_64.tar.gzsudo-uelktar-zxvflogstash-8.17.3-linux-x86_64.tar.gz```删除压缩包(可选):```bashsudo-uelkrm*.tar.gz```###4.配置Elasticsearch进入Elasticsearch目录:```bashcdelasticsearch-8.17.3```修改配置文件`config/elasticsearch.yml`:```bashsudo-uelkvimconfig/elasticsearch.yml```修改以下配置(根据单机部署调整):```yaml#设置集群名称(单节点)cluster.name:my-elk-cluster#设置节点名称node.name:node-1#设置数据存储路径(确保elk用户有权限)path.data:/usr/local/elk/elasticsearch-8.17.3/data#设置日志存储路径path.logs:/usr/local/elk/elasticsearch-8.17.3/logs#设置监听地址(允许任何IP访问,生产环境应限制)network.host:0.0.0.0#设置HTTP端口http.port:9200#单节点发现配置discovery.type:single-node```(可选)修改JVM堆内存设置(`config/jvm.options`),根据服务器内存调整,例如:```bashsudo-uelkvimconfig/jvm.options```将`-Xms`和`-Xmx`设置为相同值,例如2GB(根据服务器内存调整):```-Xms2g-Xmx2g```####调整系统设置Elasticsearch需要调整系统参数:-修改`/etc/security/limits.conf`:```bashsudovim/etc/security/limits.conf```添加:```elksoftnofile65536elkhardnofile65536elksoftnproc4096elkhardnproc4096```-修改`/etc/sysctl.conf`:```bashsudovim/etc/sysctl.conf```添加:```vm.max_map_count=262144```应用:```bashsudosysctl-p```###5.启动Elasticsearch切换到elk用户,并启动(后台启动):```bashsudo-uelk-icd/usr/local/elk/elasticsearch-8.17.3./bin/elasticsearch-d```退出elk用户(按Ctrl+D或输入`exit`)。验证启动:```bashcurlhttp://localhost:9200```应返回包含`YouKnow,forSearch`的JSON信息。###6.配置Kibana进入Kibana目录:```bashcd/usr/local/elk/kibana-8.17.3```修改配置文件`config/kibana.yml`:```bashsudo-uelkvimconfig/kibana.yml```修改以下配置:```yamlserver.port:5601server.host:"0.0.0.0"#连接Elasticsearch(本机)elasticsearch.hosts:["http://localhost:9200"]#设置Kibana界面语言为中文(可选)i18n.locale:"zh-CN"```###7.启动Kibana以elk用户启动(后台启动):```bashsudo-uelk-icd/usr/local/elk/kibana-8.17.3./bin/kibana&```退出elk用户。验证启动:```bashcurlhttp://localhost:5601```或通过浏览器访问`http://服务器IP:5601`。###8.配置Logstash(可选)如果不需要Logstash(例如直接使用Filebeat),可跳过。这里简单配置一个测试管道。进入Logstash目录:```bashcd/usr/local/elk/logstash-8.17.3```创建配置文件`config/logstash-sample.conf`:```bashsudo-uelkvimconfig/logstash-sample.conf```内容示例(从标准输入接收,输出到标准输出和Elasticsearch):```confinput{stdin{}}output{elasticsearch{hosts=>["http://localhost:9200"]index=>"logstash-test-%{+YYYY.MM.dd}"}stdout{}}```启动Logstash(测试):```bashsudo-uelk./bin/logstash-fconfig/logstash-sample.conf```在控制台输入一些文本,观察是否输出到Elasticsearch。###9.设置服务自启动(可选)为了方便,可以创建systemd服务文件。####Elasticsearch服务创建`/etc/systemd/system/elasticsearch.service`:```bashsudovim/etc/systemd/system/elasticsearch.service```内容:```[Unit]Description=ElasticsearchAfter=network.target[Service]User=elkGroup=elkWorkingDirectory=/usr/local/elk/elasticsearch-8.17.3ExecStart=/usr/local/elk/elasticsearch-8.17.3/bin/elasticsearchRestart=alwaysRestartSec=3LimitNOFILE=65536[Install]WantedBy=multi-user.target```####Kibana服务创建`/etc/systemd/system/kibana.service`:```bashsudovim/etc/systemd/system/kibana.service```内容:```[Unit]Description=KibanaAfter=network.targetelasticsearch.service[Service]User=elkGroup=elkWorkingDirectory=/usr/local/elk/kibana-8.17.3ExecStart=/usr/local/elk/kibana-8.17.3/bin/kibanaRestart=alwaysRestartSec=3[Install]WantedBy=multi-user.target```####Logstash服务(可选)创建`/etc/systemd/system/logstash.service`:```bashsudovim/etc/systemd/system/logstash.service```内容:```[Unit]Description=LogstashAfter=network.targetelasticsearch.service[Service]User=elkGroup=elkWorkingDirectory=/usr/local/elk/logstash-8.17.3ExecStart=/usr/local/elk/logstash-8.17.3/bin/logstashRestart=alwaysRestartSec=3[Install]WantedBy=multi-user.target```启用服务:```bashsudosystemctldaemon-reloadsudosystemctlenableelasticsearchkibanasudosystemctlstartelasticsearchkibana#如果需要logstashsudosystemctlenablelogstashsudosystemctlstartlogstash```###10.安全配置(可选)Elasticsearch8.x默认开启安全功能,首次启动时会生成密码和证书。在单节点且测试环境下,可以禁用安全(不推荐生产):在`elasticsearch.yml`中添加:```yamlxpack.security.enabled:false```然后重启Elasticsearch。如果启用安全,则需要配置Kibana使用用户名密码(在Kibana配置中设置`elasticsearch.username`和`elasticsearch.password`)。###总结以上步骤完成了在AlmaLinux9.6上单机部署ELK8.17。现在可以通过浏览器访问Kibana(端口5601)进行日志可视化管理。§§相关问题§§1.如何配置Filebeat将日志发送到ELK?2.如何为Elasticsearch和Kibana配置SSL/TLS加密?3.在ELK中如何创建索引模式并可视化数据?4.如何备份和恢复Elasticsearch数据?</think>### AlmaLinux 9.6 单机部署 ELK 8.17 完整指南 #### 一、准备工作 1. **系统更新** ```bash sudo dnf update -y sudo reboot ``` 2. **创建专用用户** ELK 禁止使用 root 运行: ```bash sudo groupadd elk sudo useradd elk -g elk -p elkpassword sudo mkdir /usr/local/elk sudo chown -R elk:elk /usr/local/elk ``` 3. **安装依赖** ```bash sudo dnf install tar wget java-17-openjdk -y ``` --- #### 二、安装 Elasticsearch 8.17 1. **下载并解压** ```bash cd /usr/local/elk sudo -u elk wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.3-linux-x86_64.tar.gz sudo -u elk tar -zxvf elasticsearch-8.17.3-linux-x86_64.tar.gz ``` 2. **修改 JVM 堆配置**(可选) ```bash sudo -u elk vim elasticsearch-8.17.3/config/jvm.options ``` 修改(例如 2GB 内存服务器): ```ini -Xms1g -Xmx1g ``` 3. **调整系统参数** ```bash sudo vim /etc/security/limits.conf ``` 添加: ```ini elk soft nofile 65535 elk hard nofile 65535 elk soft nproc 4096 ``` ```bash sudo vim /etc/sysctl.conf ``` 添加: ```ini vm.max_map_count=262144 ``` 应用配置: ```bash sudo sysctl -p ``` 4. **启动 Elasticsearch** ```bash sudo -u elk /usr/local/elk/elasticsearch-8.17.3/bin/elasticsearch -d ``` 验证: ```bash curl http://localhost:9200 # 应返回 "You Know, for Search" ``` --- #### 三、安装 Kibana 8.17 1. **下载并解压** ```bash cd /usr/local/elk sudo -u elk wget https://artifacts.elastic.co/downloads/kibana/kibana-8.17.3-linux-x86_64.tar.gz sudo -u elk tar -zxvf kibana-8.17.3-linux-x86_64.tar.gz ``` 2. **配置 Kibana** ```bash sudo -u elk vim kibana-8.17.3/config/kibana.yml ``` 修改关键参数: ```yaml server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://localhost:9200"] ``` 3. **启动 Kibana** ```bash sudo -u elk /usr/local/elk/kibana-8.17.3/bin/kibana & ``` 访问:`http://<服务器IP>:5601` --- #### 四、安装 Logstash 8.17(可选) 1. **下载并解压** ```bash cd /usr/local/elk sudo -u elk wget https://artifacts.elastic.co/downloads/logstash/logstash-8.17.3-linux-x86_64.tar.gz sudo -u elk tar -zxvf logstash-8.17.3-linux-x86_64.tar.gz ``` 2. **基础配置** 创建测试配置文件: ```bash sudo -u elk vim /usr/local/elk/logstash-8.17.3/config/logstash-sample.conf ``` 内容: ```ruby input { stdin {} } output { elasticsearch { hosts => ["localhost:9200"] } stdout {} } ``` 3. **启动测试** ```bash sudo -u elk /usr/local/elk/logstash-8.17.3/bin/logstash -f config/logstash-sample.conf ``` --- #### 五、防火墙配置 ```bash sudo firewall-cmd --permanent --add-port={9200/tcp,5601/tcp} sudo firewall-cmd --reload ``` --- #### 六、验证部署 | 组件 | 访问方式 | 预期结果 | |---------------|--------------------------|-----------------------| | Elasticsearch | `curl http://localhost:9200` | JSON 包含版本信息 | | Kibana | `http://<IP>:5601` | Kibana 欢迎界面 | | Logstash | 控制台输入文本 | 文本显示在终端/ES | [^1][^2] --- #### 常见问题解决 1. **启动权限错误** 检查目录权限:`sudo chown -R elk:elk /usr/local/elk` 2. **端口占用** 查看占用进程:`sudo ss -tulnp | grep 9200` 3. **内存不足** 调整 JVM 堆大小或添加交换空间: ```bash sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 sudo mkswap /swapfile sudo swapon /swapfile ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值