安装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