安装配置kibana+logstash

2018-05-31 12:56:27 浏览数 (1)

安装kibana

主要作用:收集数据并成图的web。

以下在主节点上执行

前面已经配置过yum源,这里就不用再配置了

代码语言:javascript复制
yum install -y kibana 

kibana同样也需要安装x-pack(可省略,看企业是否需要)

安装方法同elasticsearch的x-pack

代码语言:javascript复制
cd /usr/share/kibana/bin

./kibana-plugin install x-pack     //如果这样安装比较慢,也可以下载zip文件(可省略)

wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.0.0.zip//这个文件和前面下载的那个其实是一个(可省略)

./kibana-plugin install file:///tmp/x-pack-6.0.0.zip (可省略)
配置 kibana
代码语言:javascript复制
vim /etc/kibana/kibana.conf  //增加修改如下

server.port: 5601
server.host: 192.168.59.131 //建议配置内网IP,不要配置公网IP,为了安全。
elasticsearch.url: "http://192.168.59.131:9200"
logging.dest: /var/log/kibana.log
//当然你也可以配置user和passwd在配置文件中。

touch /var/log/kibana.log; chmod 777 /var/log/kibana.log

//kibana这个的服务器的日志产生量特别大,每点击一个页面就会产生一个日志。要注意清理日志。

重载配置:

代码语言:javascript复制
[[email protected] ~]# systemctl start kibana

[[email protected] ~]# netstat -lntp | grep 5601
tcp        0      0 192.168.59.131:5601     0.0.0.0:*               LISTEN      3680/node 

浏览器里访问 http://192.168.59.131:5601/

用户名elastic,密码为之前你设置过的密码(如果未安装x-pack,不需要用户名密码)

若无法输入用户名密码,查日志

代码语言:javascript复制
/var/log/kibana.log
出现错误:
代码语言:javascript复制
Status changed from uninitialized to red - Elasticsearch is still initializing the kibana index.

解决办法:

代码语言:javascript复制
curl -XDELETE http://192.168.59.131:9200/.kibana -uelastic
配置另外一台 logstash

同时按照起初的分配我们还需要在另外一台机器上面也需要安装logstash:

以下在138上执行(logstash这个服务特别浪费资源,尤其是刚刚启动的时候,后期稳定后还好些)

logstash目前不支持java9

直接yum安装(配置源同前面es的源)

代码语言:javascript复制
yum install -y  logstash

//如果慢,就下载rpm包

代码语言:javascript复制
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.2.2.rpm

(x-pack相关配置)

代码语言:javascript复制
cd /usr/share/logstash/bin/(可省略)

./logstash-plugin  install file:///tmp/x-pack-6.0.0.zip (可省略)

先不要启动,先编辑配置文件:(此文件就是配置收集各种报错信息和日志的。)如下我们定义收集的是系统的日志,并且指定端口为10514(可以自己指定,只要此server中没有这个端口即可)

代码语言:javascript复制
[[email protected] ~]# vim /etc/logstash/conf.d/syslog.conf
//conf.d是个子配置文件目录,养成习惯,指定特殊的名字.conf 添加如下内容:(定义数据的输入和输出)

input {
  syslog {
    type => "system-syslog"
    port => 10514  
  }
}
output {
  stdout {
    codec => rubydebug      //意为把当前输出输出在当前屏幕上
  }
}

真正的生产环境一般会以这种方式来收集:

代码语言:javascript复制
input{
    file{
        path => ["/var/log/*.log"]
    }
}
output{
    elasticsearch {
        hosts => ["192.168.15.188:9200"]
    }
}

其实配置了这一套软件我发现,所有的安装包几乎都在一个位置 /usr/share/目录中:

代码语言:javascript复制
[root@zhdy01 ~]# ls /usr/share/kibana/

[root@zhdy02 ~]# ls /usr/share/logstash/

配置文件几乎都在 /etc 目录下。

检测刚刚配置的配置文件是否有错

代码语言:javascript复制
cd /usr/share/logstash/bin

[[email protected] bin]# ./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
Sending Logstash's logs to /var/log/logstash which is now configured via log4j2.properties
Configuration OK

启动服务:

代码语言:javascript复制
systemctl enable logstash

systemctl start logstash
logstash 收集 syslog日志

配置:

代码语言:javascript复制
vi /etc/rsyslog.conf    

//在#### RULES下面增加一行(目的就是把日志输入到你的日志收集机器上)
*.* @@192.168.59.138:10514      //*.*代表所有的日志。

前台形式启动logstash

代码语言:javascript复制
./logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf  
//这样可以在屏幕上查看到日志输出,不能敲任何命令。只是一个日志输出窗口。

重启服务

代码语言:javascript复制
systemctl restart rsyslog

再开一个终端

检测是否开启10514端口:

代码语言:javascript复制
netstat -ltnp |grep 10514
tcp6       0      0 :::10514                :::*                    LISTEN      2723/java    

我们可以第三台机器安装一个vim 包,或者ssh 一下 zhdy02机器,然后在logstash前台的终端上看到ssh登录的相关日志。

如上的这种格式就是刚刚咱们自定义的日志输入和输出格式:

结束logstash,在前台的那个终端上按ctrl c

配置logstash

后台形式启动logstash

编辑配置文件

代码语言:javascript复制
vim /etc/logstash/conf.d/syslog.conf   //配置文件内容改为如下

input {
  syslog {
    type => "system-syslog"
    port => 10514  
  }
}
output {
  elasticsearch {
    hosts => ["192.168.59.131:9200"]
    index => "system-syslog-%{ YYYY.MM}"        //定义索引的
  }
}

重启服务:

代码语言:javascript复制
systemctl start logstash

//启动需要一些时间,启动完成后,可以看到9600端口和10514端口已被监听

启动后需要等待一小会,我们才可以看到自定义的 10514 端口和 9600

代码语言:javascript复制
# netstat -ltnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1254/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1912/master         
tcp6       0      0 192.168.161.162:9200    :::*                    LISTEN      2242/java           
tcp6       0      0 :::10514                :::*                    LISTEN      4305/java           
tcp6       0      0 192.168.161.162:9300    :::*                    LISTEN      2242/java           
tcp6       0      0 :::22                   :::*                    LISTEN      1254/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1912/master         
tcp6       0      0 127.0.0.1:9600          :::*                    LISTEN      4305/java   
logstash的配置文件:
代码语言:javascript复制
vim /etc/logstash/logstash.yml 

遇到的问题:

日志不可以写入:

代码语言:javascript复制
/var/log/logstash/logstash-plain.log

需要更改权限为logstash

代码语言:javascript复制
chown logstash.logstash /var/log/logstash/logstash-plain.log

chown -R logstash.logstash /var/lib/logstash

systemctl restart logstash

0 人点赞