关闭SELinux 这个玩意不关,Docker对挂载的目录没有读取权限
查看SELinux状态
getenforce
命令临时生效:
setenforce 0 (临时生效可以直接用setenforce 0 )
1 启用
0 告警,不启用
永久关闭
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
// ElasticSearch 需要调整这个参数
/etc/sysctl.conf
vm.max_map_count=262144
// 安装网络工具
yum install net-tools -y
// 安装openssl
yum install openssl -y
// 安装vim
yum install vim -y
// 安装docker
yum install docker -y
// Docker自启动
systemctl enable docker
// Docker加速, 去阿里云获取个镜像地址, 不然下载慢的要死
/etc/docker/daemon.json
{
"registry-mirrors": ["https://1rxscrs2.mirror.aliyuncs.com"]
}
// 拉取镜像,版本统一
docker pull elasticsearch:7.7.0
docker pull kibana:7.7.0
docker pull logstash:7.7.0
docker pull nginx
// 软链接ELK目录,修改权限
ln -s /home/ELK /ELK
chmod 777 /ELK -R
// 创建ElasticSearch容器
docker create --net=host --name es -v /ELK/es/data:/usr/share/elasticsearch/data -e "discovery.type=single-node" elasticsearch:7.7.0
// 创建Kibana容器
docker create --net=host --name kibana -v /ELK/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.7.0
// 创建logstash容器, 注意时区
docker create --net=host --name logstash-common -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /ELK/logstash/common/logstash.yml:/usr/share/logstash/config/logstash.yml -v /ELK/logstash/common/logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash:7.7.0
// 创建nginx容器
docker create --net=host --name nginx -v /ELK/nginx/nginx.conf:/etc/nginx/conf.d/default.conf -v /ELK/nginx/ssl:/ssl nginx:latest
// 创建ZooKeeper容器
docker create --net=host --name zookeeper wurstmeister/zookeeper
// 创建Kafka容器
docker create --net=host --name kafka -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=127.0.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
// 创建Redis容器
docker create --net=host --name redis redis:latest
// 创建SSL证书
openssl req -new -x509 -nodes -out server.crt -keyout server.key
// 进入Docker shell
docker exec -it {id or name} /bin/bash
// 启动所有Docker
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
// 停止所有Docker
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
// Kibana没有鉴权, 使用nginx进行用户认证
yum install -y httpd-tools
htpasswd -bc htpasswd.users admin 123 # 创建验证文件,并添加用户
htpasswd -b htpasswd.users admin 123 # 增加用户,更改密码
htpasswd -D htpasswd.users admin #删除用户
// 添加防火墙端口 nginx 9999 logstash 9900
firewall-cmd --zone=public --add-port=9999/tcp --permanent
firewall-cmd --zone=public --add-port=9900/tcp --permanent
firewall-cmd --reload
// 根据进程ID查找容器
docker inspect -f "{{.Id}}" $(docker ps -q) |grep <PID>
// 清空容器logs
echo "" > $(docker inspect --format='{{.LogPath}}' id)