当前位置: 首页>后端>正文

elk登陆500 elk 7

ELK是目前最流行的日志分析套件,基于lucene,提供全文检索功能,ES是目前最快的索引型数据库并提供RESTful接口,对开发人员很友好,横向扩展,Logstash提供多种插件,支持各类日志格式的定制和插件并实时将日志内容写入ES或其他目标源,Kibana提供对ES数据的展示功能,多用于日志检索,实时报表。

已经是大名鼎鼎的产品了,不多废话,直接上干货,这里就使用目前最新的7.7.0版本。


下载

全部下载: https://www.elastic.co/cn/downloads

ES: https://www.elastic.co/cn/downloads/elasticsearch

Kibana: https://www.elastic.co/cn/downloads/kibana

Logstash: https://www.elastic.co/cn/downloads/logstash

Filebeat: https://www.elastic.co/cn/downloads/beats/filebeat

这里下载tar.gz版。

-------------------------------------安装----------------------------------

JDK

ES是基于JVM的,所以需要安装1.8的JDK。

rpm -ivh jdk-8u192-linux-x64.rpm

vi /etc/profile
export JAVA_HOME=/usr/java/latest

vi ~/.bash_profile
export PATH=$JAVA_HOME/bin:$PATH

#刷新环境变量
source /etc/profile
source ~/.bash_profile

查看java版本:
java -version

2020-07-10 更新: 下面的代码中用到的如$ES_HOME,$LS_HOME等环境变量也是使用这种方式来配置,在使用sudo命令执行shell时,实际执行脚本的是sudo后的用户,因此需要先切换到那个用户之后刷新环境变量,再执行sudo命令;否则会报错找不到该环境变量;

ElasticSearch

解压tar包

tar zxvf elasticsearch-7.7.0-linux-x86_64.tar.gz -C /opt/app/

创建data和logs目录

mkdir /opt/app/elasticsearch-7.7.0/data
mkdir /opt/app/elasticsearch-7.7.0/logs

配置文件

vim /opt/app/elasticsearch-7.7.0/config/elasticsearch.yml

cluster.name: MyES  #集群名称
node.name: node01    #本节点名称
path.data: /opt/app/elasticsearch-7.7.0/data    #数据存储目录
path.logs: /opt/app/elasticsearch-7.7.0/logs    #日志存储目录
network.host: 0.0.0.0     #所有机器都可监听
http.port: 9200        #默认端口
cluster.initial_master_nodes: ["node01"]  #主节点名称,与上面配置的保持一致

JVM配置

因为ES是基于Java开发的,所以依赖于JVM,有需求可以修改JVM属性:

vim /opt/app/elasticsearch-7.7.0/config/jvm.options

-Xms4g
-Xmx4g

创建elk用户

ES不允许使用root用户启动,所以我们创建一个elk用户:

useradd elk

chown -R elk:elk elasticsearch-7.7.0

 

启动:

su elk

$ES_HOME/bin/elasticsearch

报错:

ERROR: [3] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
ERROR: Elasticsearch did not exit normally - check the logs at /opt/app/elasticsearch-7.7.0/logs/MyES.log

查看机器限制:

ulimit -Sn
ulimit -Hn

 

 

elk登陆500 elk 7,elk登陆500 elk 7_logstash,第1张

修改限制:

vim /etc/security/limits.conf

*       soft    nofile           65535
*       hard    nofile           65535
elk       soft    nproc           4096
elk       hard    nproc           4096

elk登陆500 elk 7,elk登陆500 elk 7_elasticsearch_02,第2张

vim /etc/sysctl.conf

vm.swappiness = 0
vm.max_map_count=262144

elk登陆500 elk 7,elk登陆500 elk 7_elk登陆500_03,第3张

执行命令sysctl -p另其生效:

elk登陆500 elk 7,elk登陆500 elk 7_logstash_04,第4张

切换elk用户再次启动ES,在浏览器中输入node01:9200验证,出现下面的结果说明已正常安装并启动:

elk登陆500 elk 7,elk登陆500 elk 7_elk登陆500_05,第5张

编写启停脚本 start-es.sh以及stop-es.sh,编写后记得切换到elk用户刷新一下环境变量,否则会找不到$ES_HOME:

start-es.sh

sudo -u elk nohup $ES_HOME/bin/elasticsearch >> $ES_HOME/output.log 2>&1 &

stop-es.sh

#!/bin/bash
PROCESS=`ps -ef | grep 'elasticsearch-7.7.0' |grep -v grep | grep -v PPID | awk '{ print }'`
echo $PROCESS
for i in $PROCESS
do
  echo "Kill the elasticsearch process [ $i ]"
  kill -9 $i
done

Logstash

解压

tar -zxvf /home/wyk/logstash-7.7.0.tar.gz -C /opt/app/

解压即是安装结束,下面是个小例子:

新增一个配置文件: 读取日志文件打印到窗口中

vim $LS_HOME/config/logstash-csdn.yml

input {
  # 从文件读取日志信息
 file {
      path => "/var/log/messages"
      type => "system"
      start_position => "beginning"
      }
}
filter {

}
output {
  # 标准输出
  stdout {}
}

执行配置文件:

cd $LS_HOME
bin/logstash -f config/logstash-csdn.yml

 

elk登陆500 elk 7,elk登陆500 elk 7_logstash_06,第6张

 

Kibana

解压

tar -zxvf /home/wyk/kibana-7.7.0-linux-x86_64.tar.gz -C /opt/app/

 

 配置

vim config/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"] #ES所在的ip
#elasticsearch.username: "kibana"  #如果ES有配置用户则这里需要配置用户密码
#elasticsearch.password: "123456"

chown -R elk:elk /opt/app/kibana-7.7.0-linux-x86_64

启动:

$KB_HOME/bin/kibana

浏览器登录node01:5601 ,出现下面的界面即成功

elk登陆500 elk 7,elk登陆500 elk 7_logstash_07,第7张

编写启停脚本start-kb.sh 和stop-kb.sh

start-kb.sh

#!/bin/bash
sudo -u elk  nohup $KB_HOME/bin/kibana > $KB_HOME/output.log 2>&1 &

stop-kb.sh

#!/bin/bash
PROCESS=`ps -ef | grep 'kibana' |grep -v grep | grep -v PPID | awk '{ print }'`
echo $PROCESS
for i in $PROCESS
do
  echo "Kill the kibana process [ $i ]"
  kill -9 $i
done

 


https://www.xamrdz.com/backend/3h91939793.html

相关文章: