日志收集系统ELK+kafka部署
文章目录
一、系统准备
1.1 部署简介
说明:由于没有单独的日志收集系统用于收集公司内部linux平台和Windows平台的测试App日志、Mysql数据库日志和华为防火墙日志,因此搭建了此套日志收集系统。另外考虑到运行Elasticsearch主机(此主机磁盘阵列用的是4块SSD组的RIAD 0 【生产环境用此模式可能有磁盘损坏的风险,不过目前我们允许偶尔停机维护,而且日志存到辅助存储里了,万一系统崩了,我可以重新部署-.-,因此就追求性能了】 )的存储容量有限,特外挂了ISCSI作为辅助存储使用(ISCIS组建单独的数据网络)。[主机容量够的情况,不推荐使用ISCSI作为外挂存储,这种方式性能不是很满意]
部署示意图:
1.2 升级内核
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache && yum update -y
rpm -Uvh https://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install kernel-ml -y
grubby --default-kernel
grub2-set-default 0
grub2-mkconfig -o /boot/grub2/grub.cfg
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
reboot
yum update -y && yum makecache
注:如果内核升级失败,需要到BIOS里面将securt boot 设置为disable
注:曾遇到过DELL服务器由于BIOS版本过低,升级Linux内核至最新版本后,启动异常的情况,需要更新DELL服务器BIOS版本。
1.3 内核优化
cat >> /etc/sysctl.d/elk.conf << EOF
net.ipv4.tcp_fin_timeout = 10
net.ipv4.ip_forward = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 30000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 1048576
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 32768
net.core.netdev_max_backlog = 16384
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.optmem_max=16777216
net.netfilter.nf_conntrack_max=2097152
net.nf_conntrack_max=2097152
net.netfilter.nf_conntrack_tcp_timeout_fin_wait=30
net.netfilter.nf_conntrack_tcp_timeout_time_wait=30
net.netfilter.nf_conntrack_tcp_timeout_close_wait=15
net.netfilter.nf_conntrack_tcp_timeout_established=300
net.ipv4.tcp_max_orphans = 524288
fs.file-max=2097152
fs.nr_open=2097152
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/elk.conf
sysctl --system
cat >> /etc/systemd/system.conf << EOF
DefaultLimitNOFILE=2097152
DefaultLimitNPROC=2097152
EOF
cat /etc/systemd/system.conf
cat >> /etc/security/limits.conf << EOF
* soft nofile 2097152
* hard nofile 2097152
* soft nproc 2097152
* hard nproc 2097152
EOF
cat /etc/security/limits.conf
reboot
最好重启检查
注:内存比较小的情况下,请注意soft nofile 的值,设置太大会启动不了系统
1.4 安装NTP服务
vim /etc/chrony.conf
修改
server 192.168.20.4 iburst
server time4.aliyun.com iburst
systemctl enable chronyd
systemctl start chronyd
chronyc sources
1.5 关闭swap分区
swapoff -a
vim /etc/fstab文件中注释掉 swap一行
注:物理服务器内存够用了,因此我这里关闭了,具体是否要关,可以根据实际情况而定
二、部署ISCSI
IP-SAN以C/S模式运行,默认端口3260
2.1 配置数据网络-iscsi服务端
[root@iscsi:/etc/sysconfig/network-scripts]# vim ifcfg-em2
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
UUID=d5e88453-1701-4b15-91c1-125eae09b260
DEVICE=em2
ONBOOT=yes
IPADDR=192.168.13.101
PREFIX=24
GATEWAY=192.168.13.1
DNS1=223.5.5.5
IPV4_ROUTE_METRIC=105
:X 保存 并重启网络systemctl restart network
2.2 配置数据网络-iscsi客户端
[root@elk:/etc/sysconfig/network-scripts]# vim ifcfg-em2
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=em2
UUID=f84b0810-5a08-4f7d-9b78-74610707b315
DEVICE=em2
ONBOOT=yes
IPADDR=192.168.13.100
PREFIX=24
GATEWAY=192.168.13.1
DNS1=223.5.5.5
IPV4_ROUTE_METRIC=105
:X 保存 并重启网络systemctl restart network
2.3 安装target-iscsi服务端
考虑到数据用于日志(已有备份)存储,因此安全性其次,使用性能为主的RAID 0阵列模式
[root@iscsi:/root]# yum install targetcli -y
[root@iscsi:/root]# systemctl enable target.
[root@iscsi:/root]# systemctl start target
[root@iscsi:/root]# systemctl status target
注://进入交互界面进行配置
[root@iscsi:/root]# targetcli
Warning: Could not load preferences file /root/.targetcli/prefs.bin.
targetcli shell version 2.1.51
Copyright 2011-2013 by Datera, Inc and others.
For help on commands, type 'help'.
/> backstores/block create iscsi /dev/sdb
Created block storage object iscsi using /dev/sdb.
/> iscsi/
/iscsi> create iqn.2020-12.com.lowan:iscsi //命名格式:iqn.yyyy.mm.<主机名(域名)反写>:自定义名称
Created target iqn.2020-12.com.lowan:iscsi.
Created TPG 1.
Global pref auto_add_default_portal=true
Created default portal listening on all IPs (0.0.0.0), port 3260. //可以看到监听的IP地址和端口号
注://创建ACL列表,客户端只能使用列表内的用户才能连接target存储
/iscsi> iqn.2020-12.com.lowan:iscsi/tpg1/acls create iqn.2020-12.com.lowan:elk
Created Node ACL for iqn.2020-12.com.lowan:elk
注://指定块存储对象iscsi为target的逻辑单元,逻辑单元号LUN0
/iscsi> iqn.2020-12.com.lowan:iscsi/tpg1/luns create /backstores/block/iscsi
Created LUN 0.
Created LUN 0->0 mapping in node ACL iqn.2020-12.com.lowan:elk
注://删除原本监听的IP地址和端口号
/> iscsi/iqn.2020-12.com.lowan:iscsi/tpg1/portals/ delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
注://添加一个新的监听IP地址和端口号
/> iscsi/iqn.2020-12.com.lowan:iscsi/tpg1/portals create 192.168.13.101 3260
Using default IP port 3260
Created network portal 192.168.13.101:3260. //注意:监控服务器端的数据网络IP地址和端口
/> ls
o- / ....................................................................................... [...]
o- backstores ............................................................................ [...]
| o- block ................................................................ [Storage Objects: 1]
| | o- iscsi ....................。。。。。。。。。。..... [/dev/sdb (10.9TiB) write-thru activated]
| | o- alua .......。......................................................... [ALUA Groups: 1]
| | o- default_tg_pt_gp ..................................... [ALUA state: Active/optimized]
| o- fileio ............................................................. [Storage Objects: 0]
| o- pscsi ................................................................. [Storage Objects: 0]
| o- ramdisk ............................................................... [Storage Objects: 0]
o- iscsi ........................................................................... [Targets: 1]
| o- iqn.2020-12.com.lowan:iscsi ...................................................... [TPGs: 1]
| o- tpg1 ...........