单机版的ELK(仅供参考)

本文详细介绍了在CentOS 7.x环境下搭建ELK(ElasticSearch、Logstash、Kibana)堆栈的全过程,包括环境准备、各组件安装、配置及启动步骤,以及常见错误的解决方案。

说明:ELK三个组件的版本必须保持一致,否则会造成意想不到的ERROR。本次安装基于centos7.x版本进行。

安装前准备

    1、检查本地centos是否具有jdk8(最低要求)的环境,如果没有请安装jdk8

            ①、获取jdk8的安装包

                wget https://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/jdk-8u192-linux-x64.tar.gz

            ②、解压安装包 tar -zxf jdk-8u192-linux-x64.tar.gz

            ③、配置环境变量 vi /etc/profile,添加如下配置:

                    export JAVAHOME=/opt/soft/java8/jdk1.8.0_192(本机jdk安装的位置)
                    export CLASSPATH=.:$JAVAHOME/jre/lib/rt.jar:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jar
                    export PATH=$PATH:$JAVAHOME/bin

            ④、source /etc/profile 加载资源文件,让jdk环境变量生效

                    

    2、在centos 中创建一个用户 elk 并授予sudo权限

        ①、创建用户

                useradd elk -m -U -p elk

                说明:【其中 -m 表示创建用户的主目录,在/home/username,-U 表示创建同名的组,-p表示密码】

        ②、给elk授权sudo,使用root用户,给elk用户授权sodo

                (一)、查找sudoers文件路径 whereis sudoers

                        

                (二)、查看sudoers文件权限

                       

                (三)、修改sudoers 文件具有可执行权限,并查看修改后权限修改sudoers文件

                        

                (四)、追加elk用户具有权限 vi /etc/sudoers

                       

                (五)、切换至elk用户之后,开始elk搭建之路:su elk

    3、创建好对应的文件夹目录,并切换至创建好的文件夹

        mkdir -p /opt/soft/elk

ElasticSearch(6.4.2)搭建

    1、获取官方的ElasticSearch安装包

            wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz

    2、解压ElasticSearch6.4.2的安装包 tar -zxf elasticsearch-6.4.2.tar.gz

    3、进入解压后的目录,进入conf文件夹修改elasticsearch.yml配置文件(vi elasticsearch.yml)

                  

                    

                    

    4、启动elasticsearch。进入bin目录,执行 ./elasticsearch

    5、错误以及解决方案

        ①、can not run elasticsearch as root

            

            解决方案:不能用root用户启动,切换至之前我们创建的elk用户在继续启动

        

        ②、max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

        ③、max number of threads [1024] for user [es] is too low, increase to at least [4096]

        ④、max virtual memory areas vm.maxmapcount [65530] is too low, increase to at least [262144]

        解决方案:

            切换到root用户

                1、vi /etc/security/limits.conf 修改如下配置

                    * soft nofile 65536

                    * hard nofile 131072

                    * soft nproc 2048

                    * hard nproc 4096

                2、vi /etc/security/limits.d/90-nproc.conf 修改如下配置

                    * soft nproc 2048

                3、vi /etc/sysctl.conf 添加配置

                    vm.max_map_count=655360

                    运行命令 sysctl -p

        ⑤、system call filters failed to install;

                错误原因:Centos 不支持SecComp,而高版本ES默认bootstrap.system_call_filter为true进行检测,所以导致检测失败,失败后直接导致ES不能启动

                解决办法: 在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:

                    bootstrap.memory_lock: false

                    bootstrap.system_call_filter: false

     注意:修改完这些配置之后,记得退出elk用户在重新切换到elk用户,再次启动。

    6、浏览器访问:http://192.168.220.128:9200检查是否启动成功。

            

至此 ElasticSearch安装完成。

推荐一款插件可替代原来的head插件。https://gitee.com/farmerx/ElasticHD

Logstash(6.4.2)搭建

    1、获取官方的Logstash安装包

        wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz

    2、解压Logstash6.4.2的安装包

        tar -zxf logstash-6.4.2.tar.gz

    3、进入解压目录,修改logstash的配置文件,logstash.yml,只需要修改如下截图中的内容,其他走默认。

        

    4、和bin目录同级,创建 conf.d 文件夹,用于存放要解析的日志及其他文件的配置文件。

        

    5、在conf.d 下新建 tomcat8.conf,用于配置tomcat8的日志文件的解析:

        

    6、安装filebeat插件,用于日志文件的解析,将日志文件解析输出到logstash。

        ①、获取filebeat插件,记得一定要和logstash的版本号相对应,不然会出现意想不到的结果。

            获取地址:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.2-linux-x86_64.tar.gz

        ②、解压filebeat,tar -zxf filebeat-6.4.2-linux-x86_64.tar.gz

        ③、修改filebeat的配置文件,让其解析某个目录下的所有日志文件到logstash中,如下

            

            一定要把ElasticSearch的配置注释掉,让日志流转到logstash处理,再从logstash转发到ElasticSearch。

            

        ④、启动filebeat,执行命令:./filebeat -e -c filebeat.yml -d public

            

            注意:因为我之前启动了一个tomcat实例,所以会看到日志的解析 启动之后会有如下的warning,不要担心,那是因为我们没有启动logstash:

            

    7、启动logstash,启动之前执行命令./bin/logstash -f conf.d/* -t,检测配置文件是否ok,如下:

        

        注意:conf.d/* 表示这个目录下所有的配置文件都检测。

    8、执行命令./bin/logstash -f conf.d/* --config.reload.automatic,启动logstash:。

        启动命令说明:

             -f conf.d/* 执行配置文件位置

            --config.reload.automatic 修改后是否自动重载配置文件

            

    9、启动成功之后,浏览器访问:http://192.168.220.129:9600

        

至此logstash,搭建完成。

Kibana(6.4.2)搭建

    1、获取官方的Kibana安装包

        wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz

    2、解压Kibana6.4.2的安装包

        tar -zxf kibana-6.4.2-linux-x86_64

    3、修改logstash.yml的配置文件,并启动logstash

        

    4、执行 ./kibana ,启动kibana,然后浏览器访问:http://192.168.220.129:5601

        

至此 kibana安装完成。

ELK全部搭建完成,但是需要将ELK串起来方可起作用,按照上述步骤,串起来之后,访问kibana如下:

 

转载于:https://my.oschina.net/hunteros/blog/2960721

<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 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值