ELK+RabbitMq搭建日志系统

Posted innocenter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ELK+RabbitMq搭建日志系统相关的知识,希望对你有一定的参考价值。

环境准备

1. 三台服务器

         10.1.34.215

         10.1.34.216

         10.1.34.217

2. 全部关闭防火墙和selinux

         systemctl stop firewalld &&  systemctl stop firewalld

         sed -i ‘s/=enforcing/=disabled/g‘ /etc/selinux/config  && setenforce 0

3. 全部配置系统环境

         vim /etc/security/limits.conf 添加以下四行 注:星号不可少

         * soft nofile 65536

         * hard nofile 131072

         * soft nproc 2048

         * hard nproc 4096

此处有可能会涉及到启动报错

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

报错的话 将数值改一下即可

          vim /etc/sysctl.conf  添加这行

          vm.max_map_count=655360

          source  /etc/profile  刷新环境

4. 全部安装java环境

          这里注意查看一下centos有没有原生的jdk

          rpm -qa | grep jdk

          yum -y remove +上面出来的两段  分别删除

技术图片

然后解压自己的java配置环境变量

        vim /etc/profile

        export JAVA_HOME=/usr/local/jdk/jdk1.8.0_251  

        export PATH=$JAVA_HOME/bin:$PATH

        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这块注意一个配置完之后  java进行一个软连接

        ln -s /usr/local/jdk/jdk1.8.0_251/bin/java   /usr/local/bin/java

5. 安装node.js

    因为head插件是用node.js开发的,所以需要此环境

    https://nodejs.org/en/download/releases/ 选择先前的版本较好注意选择xz版本的

          tar -Jxf node-v10.15.3-linux-x64.tar.xz

         vim /etc/profile

         PATH=$PATH:/usr/local/node/node-v10.15.3-linux-x64/bin

         source /etc/profile

         node -v

6. 安装head插件 10.1.34.215

         wget  https://github.com/mobz/elasticsearch-head/archive/master.zip

         unzip master.zip && mv elasticsearch-head-master/ /usr/local/elasticsearch-head

         cd /usr/local/elasticsearch-head

         npm install -g cnpm --registry=https://registry.npm.taobao.org

         cnpm install -g grunt-cli

         cnpm install -g grunt

         cnpm install grunt-contrib-clean

         cnpm install grunt-contrib-concat

         cnpm install grunt-contrib-watch

         cnpm install grunt-contrib-connect

         cnpm install grunt-contrib-copy

         cnpm install grunt-contrib-jasmine

         vim /usr/local/elasticsearch-head/Gruntfile.js

技术图片

后台启动grunt server &

         cd /usr/local/elasticsearch-head

         nohup grunt server &    /   npm run start & 或者nohup  npm run start >/dev/null 2>&1 &

打开浏览器访问10.1.34.215:9100,可以看到head页面

7. 准备安装包  自己对应版本

下载es

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

 下载kibana

https://www.elastic.co/cn/downloads/past-releases#kibana

下载logstash

https://www.elastic.co/cn/downloads/past-releases#logstash

8.  elasticsearch安装

      全部创建用户elk 

      useradd elk

      全部安装elasticsearch

      tar zxf elasticsearch-6.7.1.tar.gz

      chown -R elk:elk /usr/local/elasticsearch/elasticsearch-6.7.1  给elk用户增加es权限

全部修改配置

      vim /usr/local/elasticsearch/config/elasticsearch.yml

技术图片

        解决bootstrap.memory_lock: true报错

        vim /etc/security/limits.conf

        baoshan soft memlock unlimited

        baoshan hard memlock unlimited

        vim /etc/sysctl.conf

        vm.swappiness=0

        reboot 重启

        切换到elk用户  

        切换到es安装目录

        ./bin/elastcsearch -d  后台启动

        期间如果报error=‘Cannot allocate memory‘ (errno=12)# There is insufficient memory for the Java Runtime Environment to continue.

        或者elasticsearch启动过程中被自动killed

        到es安装目录下

        cd config 

        vim jvm.options

技术图片

9. 安装kibana

        解压安装包

        config目录下修改

        vim kibana.yml添加以下内容

        server.port: 5601               #监听端口

        server.host: "0.0.0.0"              #监听IP

        elasticsearch.hosts: ["http://10.1.34.215:9200","http://10.1.34.216:9200","http://10.1.34.217:9200"]       #     集群es地址

        logging.dest: /usr/local/kibana/logs/kibana.log                 #日志路径

        kibana.index: ".kibana"                 #默认索引

然后增加日志输出文件

       mkdir /usr/local/kibana/logs && touch /usr/local/kibana/logs/kibana.log

后台启动 ./bin/kibana & 

访问http://10.1.34.215:5601/

10. 安装logstash

      解压安装包

      切换到config下修改logstash.yml

      path.data: /usr/local/logstash/logstash-6.3.2/data

      path.logs: /usr/local/logstash/logstash-6.3.2/logs

      logstash启动时需要指定输入与输出的方式,此处要实现的效果是从Rabbitmq中获取数据输出至es中存储,因此创建rabbitmq.conf文件:

     cd ogstash-6.3.2/

     touch rabbitmq.conf

    技术图片

指定配置文件并启动:./bin/logstash -f rabbitmq.conf,访问http://ip:9600出现一些关于logstash的配置信息即表示安装成功

11.安装RabbitMQ

           下载RabbitMQ的rpm:

            wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.14/rabbitmq-server-3.6.14-1.el7.noarch.rpm

            yum -y install rabbitmq-server-3.6.14-1.el7.noarch.rpm

            注:如果报:Requires: socat则更新源

            wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo

            yum install socat

            启动rabbitmq服务:  

            后台运行:service rabbitmq-server start

安装插件 

            启动web管理界面

            rabbitmq-plugins enable rabbitmq_management

            如果提示找不到,使用查看插件名称

            rabbitmq-plugins list

            增加访问用户,默认用户guest只能本地访问。

            rabbitmqctl add_user admin admin

设置角色: 

             rabbitmqctl set_user_tags admin administrator

设置默认vhost("/")访问权限

             rabbitmqctl set_permissions -p "/" admin "." "." ".*"

              浏览器访问:http://IP:15672

              用户名admin,密码admin进行登录

              最好登录console的时候,删除默认账户guest

              rabbitmqctl delete_user guest

 注意本机用的时候关闭防火墙

登录进去rabbmq之后可以去看一下队列  应该有上面rabbitmq.conf里设置的那一个队列了

至此环境搭建完毕,可以与java后台进行关联

以上是关于ELK+RabbitMq搭建日志系统的主要内容,如果未能解决你的问题,请参考以下文章

ELK日志系统搭建实战

ELK日志分析系统搭建配置

ELK日志收集系统搭建

十分钟搭建和使用ELK日志分析系统

十分钟搭建和使用ELK日志分析系统

开源日志分析系统ELK平台搭建部署