一、准备工作
架构图
1、准备三台虚拟机,系统版本:CentOS Linux release 7.5.1804
master 192.168.133.128
node1 192.168.133.129
node2 192.168.133.130
2、系统初始化操作
a.关闭seLinux
setenforce 0
修改/etc/selinux/config将SELINUX=enforcing改为SELINUX=disabled
b.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
c.配置hostname
hostname master
echo 'master' > /etc/hostname
分别修改node1和node2的hostname
d.配置hosts,三台主机分别执行
cat <<EOF >> /etc/hosts
192.168.133.128 master
192.168.133.129 node1
192.168.133.130 node2
EOF
3、配置yum源
a.配置centos7阿里云yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
b.配置ES官方源
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat <<EOF > /etc/yum.repos.d/elastic.repo
[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
二、通用软件安装
1、三台主机分别安装jdk1.8
yum install -y java-1.8.0-openjdk
2、三台主机分别安装elasticsearch (当前最新版本6.3.2)
yum install -y elasticsearch
3、配置elasticsearch
[[email protected] ~]#vim /etc/elasticsearch/elasticsearch.yml # 增加或更改以下内容
cluster.name: master #集群中的名称
node.name: master #该节点名称
node.master: true #意思是该节点为主节点
node.data: false #表示这不是数据节点
network.host: 0.0.0.0 #监听全部ip,在实际环境中应设置为一个安全的ip
http.port: 9200 #es服务的端口号
discovery.zen.ping.unicast.hosts: ["master", "node1", "node2"] # 配置自动发现
将配置文件分别复制到node1和node2
[[email protected] ~]#scp /etc/elasticsearch/elasticsearch.yml node1:/etc/elasticsearch/
[[email protected] ~]#scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/
修改node1配置文件
[[email protected] ~]# vim /etc/elasticsearch/elasticsearch.yml
node.name: node1
node.master: false
node.data: true
修改node2配置文件
[[email protected] ~]# vim /etc/elasticsearch/elasticsearch.yml
node.name: node2
node.master: false
node.data: true
4、三台主机启动elasticsearch服务
systemctl start elasticsearch && systemctl enable elasticsearch
启动成功查看9200端口和9300端口是否监听 ss -tnl
5、curl查看ES集群情况
集群的健康检查:
[[email protected] ~]# curl http://master:9200/_cluster/health?pretty
{
"cluster_name" : "master",
"status" : "green", # 为green则代表健康没问题,如果是yellow或者red则是集群有问题
"timed_out" : false, # 是否有超时
"number_of_nodes" : 3, # 集群中的节点数量
"number_of_data_nodes" : 2, # 集群中data节点的数量
"active_primary_shards" : 0,
"active_shards" : 0,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}
查看集群详细信息
curl http://master:9200/_cluster/state?pretty
三、Master安装kibana(当前最新版本6.3.2)
1、yum安装
[[email protected] ~]#yum install -y kibana
2、配置kibana
[[email protected] ~]#vim /etc/kibana/kibana.yml # 增加以下内容
server.port: 5601 # 配置kibana的端口
server.host: master # 配置监听ip
elasticsearch.url: "http://master:9200" # 配置es服务器的ip,如果是集群则配置该集群中主节点的ip
logging.dest: /var/log/kibana.log # 配置kibana的日志文件路径,不然默认是messages里记录日志
3、启动kibana服务
systemctl start kibana && systemctl enable kibana
启动成功ss -tnl查看5601端口是否监听
通过浏览器访问masterIP 192.168.133.128:5601可以查看web页面。
四、node所有节点安装logstash(当前最新版本1:6.3.2-1)
1、node1和node2分别安装
[[email protected] ~]# yum install -y logstash
[[email protected] ~]# yum install -y logstash
2、创建一个软连接,每次执行命令的时候不用在写安装路径(默认安装在/usr/share下)
ln -s /usr/share/logstash/bin/logstash /bin/
3、配置logstash收集syslog日志进行测试
[[email protected] ~]# vim /etc/logstash/conf.d/syslog.conf # 加入如下内容
input { # 定义日志源
syslog {
type => "system-syslog" # 定义类型
port => 10514 # 定义监听端口
}
}
output { # 定义日志输出
stdout {
codec => rubydebug # 将日志输出到当前的终端上显示
}
}
4、检测配置文件是否有错
ogstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
--path.settings 用于指定logstash的配置文件所在的目录
-f 指定需要被检测的配置文件的路径
--config.test_and_exit 指定检测完之后就退出,不然就会直接启动了
或者运行 logstash -e 'input { stdin { } } output { stdout {} }'
如果报错:
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
需要vim /etc/logstash/jvm.options 添加 -XX:ParallelGCThreads=1 ,原因是我的虚拟机只设置了单核CPU。
-XX:ParallelGCThreads=n 默认值:随JVM运行平台不同而异 配置并行收集器的线程数,即:同时多少个线程一起进行垃圾回收。此值最好配置与处理器数目相等。
5、配置kibana服务器的ip以及配置的监听端口:
vim /etc/rsyslog.conf
*.* @@node1:10514
6、指定配置文件,启动logstash:
logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf
7、然后在别的机器ssh登录到这台机器上,测试一下有没有日志输出:
8、配置logstash
a.配置让收集的日志信息输出到es服务器中
[[email protected] ~]# vim /etc/logstash/conf.d/syslog.conf # 更改为如下内容
input {
syslog {
type => "system-syslog"
port => 10514
}
}
output {
elasticsearch {
hosts => ["master:9200"] # 定义ES服务器的IP
index => "system-syslog-%{+YYYY.MM}" # 定义索引
}
}
b.更改目录权限:
chown -R logstash:logstash /var/lib/logstash/
chown -R logstash:logstash /var/log/logstash/
c.配置logstash本地监听IP
vim /etc/logstash/logstash.yml
http.host: "node1"
d.检测配置文件有没有错:
logstash --path.setings /etc/logstash/ -f /etc/logstash/conf.d/syslog.conf --config.test_and_exit
如果没有报错,启动logstash
systemctl start logstash && systemctl enable logstash
五、kibana上查看日志
1、kibana服务器上查看日志,执行以下命令可以获取索引信息:
2、获取指定索引详细信息:
curl -XGET 'master:9200/system-syslog-2018.03?pretty'
3、kibana页面上配置索引:
浏览器直接输入masterIP:5601,然后使用通配符,进行批量匹配:
下一步
4、配置成功后点击 “Discover” 就可以查看系统日志。
EFK日志管理搭建参考:
相关推荐: