#安装docker
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
yum install -y yum-utils
cd /etc/yum.repos.d/
rm -f mirrors.aliyun.com_docker-ce_linux_centos_docker-ce.repo
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
sed -i 's/$releasever/7/g' /etc/yum.repos.d/docker-ce.repo
yum clean all
yum makecache fast
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
systemctl start docker
systemctl enable docker
#创捷一个网络
docker network create elk
#安装elk
docker run -d \
--name=elasticsearch \
-v es-data:/usr/share/elasticsearch/data \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
--net elk \
-p 9200:9200 -p 9300:9300 \
#安装kibana
docker run -d \
--name=kibana \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e I18N_LOCALE=zh-CN \
--net elk \
-p 5601:5601 \
#收集日志端下载filebeat
rpm -ivh filebeat-8.6.2-x86_64.rpm
#修改配置文件
vi /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
/var/log/*.log
/var/log/massage
setup.ilm.enabled: false
setup.template.name: "test"
setup.template.pattern: "test-*"
output.elasticsearch:
hosts: "http://192.168.255.93:9200"
index: "test-%{+yyyy.MM.dd}"
#启动filebeat
systemctl start filebeat
systemctl status filebeat
#索引管理查看索引
#数据视图
#搜集不同日志文件通过索引分类
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
fields_under_root: true
fields:
type: system
project: ms
app: system
- type: log
enabled: true
paths:
- /mysql40/log/mysql.log
fields_under_root: true
fields:
type: mysql
project: ms
app: mysql
setup.ilm.enabled: false
setup.template.name: "ms"
setup.template.pattern: "ms-*"
output.elasticsearch:
hosts: "http://192.168.255.93:9200"
indices:
- index: "ms-system-%{+yyyy.MM.dd}"
when.contains:
type: "system"
- index: "ms-mysql-%{+yyyy.MM.dd}"
when.contains:
type: "mysql"
~
#es集群
#配置域名(三节点)
vi /etc/hosts
work1 192.168.255.20
work2 192.168.255.21
work3 192.168.255.22
#终端显色
cat <<EOF >> ~/.bashrc PS1='\\\e\[34;1m\\\u@\\\e\[0m\\\\\e\[32;1m\\\H\\\e\[0m\\\\\e\[31;1m\\ \W\\\e\[0m\\# ' EOF source ~/.bashrc
#ssh服务优化
sed -ri 's@^#UseDNS yes@UseDNS no@g' /etc/ssh/sshd_config sed -ri 's#^GSSAPIAuthentication yes#GSSAPIAuthentication no#g' /etc/ssh/sshd_config grep ^UseDNS /etc/ssh/sshd_config grep ^GSSAPIAuthentication /etc/ssh/sshd_config
UseDNS no:关闭 ssh 连接反向 DNS 解析,大幅缩短登录等待时间GSSAPIAuthentication no:关闭 GSSAPI 认证,消除连接卡顿#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0
#生成密钥对单节点运行
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa -q
#传递密钥
for((i=2;i<=3;i++));do ssh-copy-id work${i};done
#测试远程登录
ssh work1
ssh work2
ssh work3
#安装rsync(三节点)
yum install -y rsync
#设置同步脚本
vi /usr/local/sbin/data-rsync.sh
#!/bin/bash
Auther: Jason Yin
校验传入参数数量,必须传1个参数
if $# -ne 1 ;then
echo "Usage: $0 /path/to/file(绝对路径)"
exit
fi
判断传入的文件/目录是否存在,不存在直接退出
if ! -e $1 ;then
echo " $1 dir or file not find!"
exit
fi
提取文件/目录的父目录路径
fullpath=`dirname $1`
提取文件/目录自身名称
basename=`basename $1`
切换工作目录到父目录
cd $fullpath
循环遍历主机ID:102、103,对应两台elk节点
for ((host_id=2;host_id<=3;host_id++))
do
设置终端输出文字为绿色
tput setaf 2
echo "===== rsyncing work{host_id}: basename ====="
恢复终端默认白色文字
tput setaf 7
rsync核心同步命令:本地文件推送到远端同路径
rsync -az basename \`whoami\`@work{host_id}:$fullpath
判断上一条rsync命令执行结果
if $? -eq 0 ;then
echo "命令执行成功!"
fi
done
#使用脚本传文件
sh data-rsync.sh /path
#集群时间同步(三节点)
yum install -y net-tools
yum install -y ntpdate chrony
#修改配置文件
vi /etc/chrony
#注释官方的
#添加国内的
server ntp.aliyun.com iburst
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst
server ntp4.aliyun.com iburst
server ntp5.aliyun.com iburst
#重启chronyd
systemctl restart chronyd
systemctl enable chronyd
#安装es(单点部署)
#安装rpm包
yum -y localinstall elasticsearch-7.17.3-x86_64.rpm
#可以systemctl cat elasticsearch.service查看脚本文件(看看那些目录都在那)
#启动es (启动了9200,9300)------9200对集群外部提供服务http,9300是tcp
systemctl start elasticsearch.service
#修改配置es.yml
cd /etc/elasticsearch
vi elasticsearch.yml
#修改集群名称
#节点名称和路径
#配置网络暴露地址------否则只能 localhost 访问
#集群发现
#重启配置生效
systemctl restart elasticsearch
#es集群部署
scp elasticsearch-7.17.3-x86_64.rpm work2:~
scp elasticsearch-7.17.3-x86_64.rpm work2:~
#yum 安装完后
#将配置文件同步到集群
将discover 写成三个节点
data-rsync.sh /etc/elasticsearch/elasticsearch.yml
#然后修改集群节点的配置文件的node.name(不重复即可)
xg1,xg2,xg3
#查看配置文件
egrep -v "^$|^#" /etc/elasticsearch/elasticsearch.yml
#通过端口是否监听来判断集群是否启动成功不一定准确
ss -tnlp
#需要curl一下,出现截图内容视为成功
curl work1:9200/_cat/nodes
#安装kibana
yum -y localhostinstall kibana-7.17.3-x86_64.rpm
#修改配置文件
cd /etc/kibana/
vi kibana.yml









