ELK测试部署方案.docx
- 文档编号:4324034
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:25
- 大小:1.54MB
ELK测试部署方案.docx
《ELK测试部署方案.docx》由会员分享,可在线阅读,更多相关《ELK测试部署方案.docx(25页珍藏版)》请在冰豆网上搜索。
ELK测试部署方案
ELKStack测试部署方案
文档修订摘要
日期
修订号
描述
编写
审阅者
备注
2016-08-16
V1.1
起草
耿晓芳
亚联(天津)信息技术有限责任公司
2016年8月
架构流程示意图
一、安装前规划与准备
Hostname
IP
Software
OS
Identity
60.32.0.23
Elasticsearch、Logstash、Kibana、Redis、Redis-browser、Java
CentOSrelease6.5
服务端
60.32.0.24
Logstash、Java、Nginx、Rsyslog
CentOSrelease6.5
客户端
修改主机名;保证服务器通外网;yum源能使用
1.1执行服务器环境初始化脚本
#catchange_env.sh
#!
/bin/bash
##thisisinit_envscript
#Modifylimlt.conf
echo"*softnofile204800">>/etc/security/limits.conf
echo"*hardnofile204800">>/etc/security/limits.conf
#nproc
echo"*softnproc10240">>/etc/security/limits.d/90-nproc.conf
echo"rootsoftnprocunlimited">>/etc/security/limits.d/90-nproc.conf
#Addcrontab
echo"0000***/usr/sbin/ntpdate-u195.13.1.153">>/var/spool/cron/root
#ip_conntract
#echo"net.ipv4.ip_conntrack_max=1048576">>/etc/sysctl.conf
#echo"optionsip_conntrackhashsize=131072">>/etc/modprobe.conf
echo"optionsnf_conntrackhashsize=131072">>/etc/modprobe.d/nf_conntrack.conf
#Closeiptables
serviceiptablesstop
chkconfigiptablesoff
#Closeselinux
setenforce0
/bin/sed-i'7s/enforcing/disabled/'/etc/selinux/config&>/dev/mull
#Closesendmail
#servicesendmailstop
#chkconfigsendmailoff
#charset
#exportLANG=zh_CN.UTF-8
#echo"LANG=zh_CN.UTF-8">/etc/sysconfig/i18n
#Setvim
sed-i"8s/^/aliasvi='vim'/"/root/.bashrc
#echo'syntaxon'>/root/.vimrc#经验证此行没用
#AddDNSServer
#cat>>/etc/resolv.conf< #nameserver202.106.0.20 #nameserver8.8.8.8 #EOF #Closeipv6 echo"optionsipv6disable=1">/etc/modprobe.d/disable-ipv6.conf echo"IPV6INIT=no">>/etc/sysconfig/network chkconfigip6tablesoff #Modifyhistory echo'exportHISTTIMEFORMAT="%F%T`whoami`"'>>/etc/profile sed-i's/HISTSIZE\=1000/HISTSIZE\=20000/'/etc/profile #Closedefaultservice foriin`ls/etc/rc5.d/S*` do CURSRV=`echo$i|cut-c15-` echo$CURSRV case$CURSRVinlocal|crond|network|sshd|certmonger|messagebus|haldaemon|rsyslog|irqbalance|acpid|cpuspeed|rpcbind|spice-vdagentd|udev-post) echo"Baseservices,Skip! " ;; *) echo"change$CURSRVtooff" chkconfig--level235$CURSRVoff service$CURSRVstop ;; esac done #changeinit_class sed-i"s/^id: 5: init/id: 3: init/"/etc/inittab #changermto/root/.trash mkdir-p/root/.trash cat>>/root/.bashrc< aliasrm=trash aliasr=trash aliasrl='ls~/.trash' aliasur=undelfile undelfile() { mv-i~/.trash/\$@./ } trash() { mv\$@~/.trash/ } cleartrash() { read-p"clearsure? [n]"confirm [\$confirm=='y']||[\$confirm=='Y']&&/bin/rm-rf~/.trash/* } EOF Reboot 1.2软件下载 Elk官方推荐版本组合(也是最新的),注意elk软件版本不可乱搭,最好使用官方推荐的版本组合! https: //www.elastic.co/downloads 本人下载的是源码的 模块名称 使用版本 Jdk jdk-8u101-linux-x64.rpm elasticsearch elasticsearch-2.3.5.tar.gz logstash logstash-2.3.4.tar.gz redis redis-3.2.3.tar.gz kibana kibana-4.5.4-linux-x64.tar.gz 二、软件安装 2.1.服务端软件安装 #cd/opt/soft/ #ls elasticsearch-2.3.5.tar.gzjdk-8u101-linux-x64.rpmkibana-4.5.4-linux-x64.tar.gzlogstash-2.3.4.tar.gzredis-3.2.3.tar.gz 卸载系统自带java: openjdk(本人习惯) #java-version javaversion"1.7.0_45" OpenJDKRuntimeEnvironment(rhel-2.4.3.3.el6-x86_64u45-b15) OpenJDK64-BitServerVM(build24.45-b08,mixedmode) #rpm-qa|grepjdk java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 #rpm-e--nodepsjava-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 #rpm-e--nodepsjava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 2.1.1InstallJDK #rpm-ivhjdk-8u101-linux-x64.rpm #java-version//查看是否生效,生效了会显示java版本信息 javaversion"1.8.0_101" Java(TM)SERuntimeEnvironment(build1.8.0_101-b13) JavaHotSpot(TM)64-BitServerVM(build25.101-b13,mixedmode) 2.1.2InstallElasticsearch #groupadd-g92elasticsearch #useradd-g92-u92elasticsearch #tarxfelasticsearch-2.3.5.tar.gz-C/opt///解压elasticsearch至指定目录 #ln-sv/opt/elasticsearch-2.3.5/bin/elasticsearch/usr/bin///将elasticsearch可执行文件链接至/usr/bin目录,方便在任何目录下都可直接执行`elasticsearch` #chown-Relasticsearch.elasticsearch/opt/elasticsearch-2.3.5/ 2.1.3InstallLogstash #tarxflogstash-2.3.4.tar.gz-C/opt///解压logstash至指定目录 #ln-sv/opt/logstash-2.3.4/bin/logstash/usr/bin///将logstash可执行文件链接至/usr/bin目录,方便在任何目录下都可直接执行`logstash` 2.1.4InstallRedis #yum–yinstalltclgcc//安装测试依赖工具 #tarxfredis-3.2.3.tar.gz//解压至当前目录 #cdredis-3.2.3//切换至redis源码目录 #make//编译 #maketest//有可能会失败,只是看看,不用在意 #makeinstall//安装 #mkdir/opt/redis/{db,conf}-pv//创建redis安装目录 #cpredis.conf/opt/redis/conf///复制配置文件至redis安装目录 #cdsrc #cpredis-benchmarkredis-check-aofredis-cliredis-servermkreleasehdr.sh/opt/redis///复制各文件至redis安装目录 #ln-sv/opt/redis/redis-cli/usr/bin///将redis-cli可执行文件链接至/usr/bin目录,方便在任何目录下都可直接执行`redis-cli` #vim/opt/redis/conf/redis.conf//修改redis.conf中的`daemonize`为`yes`,让server以守护进程在后台执行,这一步可以不做,因为后面要执行的脚本会自动创建这个文件,且这个值会设置为`yes` daemonizeyes makeinstall仅仅在你的系统上安装了二进制文件,不会替你默认配置init脚本和配置文件,为了把它用在生产环境而安装它,在源码目录的utils目录下Redis为系统提供了 这样的一个脚本install_server.sh #cd/opt/soft/redis-3.2.3/utils # ./install_server.sh//执行sh格式的安装脚本 Welcometotheredisserviceinstaller Thisscriptwillhelpyoueasilysetuparunningredisserver Pleaseselecttheredisportforthisinstance: [6379] Selectingdefault: 6379 Pleaseselecttheredisconfigfilename[/etc/redis/6379.conf]/opt/redis/conf/redis.conf Pleaseselecttheredislogfilename[/var/log/redis_6379.log] Selecteddefault-/var/log/redis_6379.log Pleaseselectthedatadirectoryforthisinstance[/var/lib/redis/6379]/opt/redis/db/6379.db Pleaseselecttheredisexecutablepath[/usr/local/bin/redis-server] Selectedconfig: Port: 6379 Configfile: /opt/redis/conf/redis.conf Logfile: /var/log/redis_6379.log Datadir: /opt/redis/db/6379.db Executable: /usr/local/bin/redis-server CliExecutable: /usr/local/bin/redis-cli Isthisok? ThenpressENTERtogoonorCtrl-Ctoabort. Copied/tmp/6379.conf=>/etc/init.d/redis_6379 Installingservice... Successfullyaddedtochkconfig! Successfullyaddedtorunlevels345! StartingRedisserver... Installationsuccessful! #chkconfig--addredis_6379//将redis加入系统服务 #chkconfigredis_6379on//加入开机启动 #vim/opt/redis/conf/redis.conf requirepassCarsing2582#//设置密码【坑1】: 这步先不做,如果做了后面的测试连接redis的时候就需要认证) bind0.0.0.0//redis要打开远程访问允许,在redis.conf中bind这一行改成0.0.0.0(运行任何机器连接,为了测试先这样)【此为坑2】 #/etc/init.d/redis_6379restart #ss-an|grep6379//端口已经被监听,证明服务已提供 LISTEN0128127.0.0.1: 6379*: * TIME-WAIT00127.0.0.1: 6379127.0.0.1: 34506 2.1.5InstallKibana #groupadd-g56kibana #useradd-g56-u56kibana #tarxfkibana-4.5.4-linux-x64.tar.gz-C/opt///解压kibana至指定目录 #ln-sv/opt/kibana-4.5.4-linux-x64/bin/kibana/usr/bin///将kibana可执行文件链接至/usr/bin目录,方便在任何目录下都可直接执行`kibana` #chown-Rkibana.kibana/opt/kibana-4.5.4-linux-x64/ 2.2客户端软件安装 2.2.1InstallJDK 同样卸载openjdk(不再赘述) #rpm-ivhjdk-8u101-linux-x64.rpm #java-version//查看是否生效,生效了会显示java版本信息 javaversion"1.8.0_101" Java(TM)SERuntimeEnvironment(build1.8.0_101-b13) JavaHotSpot(TM)64-BitServerVM(build25.101-b13,mixedmode) 2.2.2InstallLogstash #tarxflogstash-2.3.4.tar.gz-C/opt///解压logstash至指定目录 #ln-sv/opt/logstash-2.3.4/bin/logstash/usr/bin///将logstash可执行文件链接至/usr/bin目录,方便在任何目录下都可直接执行`logstash` 三、StartService 服务端 3.1StartRedis #/etc/init.d/redis_6379start #netstat-tnlp//查看是否有6379端口 3.2StartElasticsearch #vi/opt/elasticsearch-2.3.5/config/elasticsearch.yml//在文件最后加入 cluster.name: es_cluster node.name: node0 network.host: discovery.zen.ping.unicast.hosts: [""] elasticsearch只能以普通用户运行 #su-l-c"suelasticsearch/opt/elasticsearch-2.3.5/bin/elasticsearch>/dev/null2>&1&"//启动并放至后台运行 #vim/etc/rc.local//上面命令复制,设置开机启动 #netstat-tnlp//ElasticSearch默认的对外服务的HTTP端口是9200,节点间交互的TCP端口是9300,注意打开tcp端口 #exit//退出当前用户 http: //60.32.0.23: 9200 //可以看到如下信息 #curl-XGEThttp: //60.32.0.23: 9200//获取网页内容 #curl-IGEThttp: //60.32.0.23: 9200//获取网页头部信息,200正常 3.3StartKibana #vi/opt/kibana-4.5.4-linux-x64/config/kibana.yml//找到这2行,修改为 server.host: "63.32.0.23" elasticsearch.url: "http: //63.32.0.23: 9200" 启动并放至后台运行 su-l-c"sukibana/opt/kibana-4.5.4-linux-x64/bin/kibana>/dev/null2>&1&" #vim/etc/rc.local//复制添加设置开机启动 #netstat-tnlp//启用端口为5601 http: //60.32.0.23: 5601 //可以看到网页内容 四、MonitorNginxLog 4.1只监控access日志,,从文件获取将access日志导向服务端的redis 客户端 安装一个最简单的nginx,目的是为了产生访问日志。 #wgethttp: //nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm #rpm-ivhnginx-release-centos-6-0.el6.ngx.noarch.rpm #yum–yinstallnginx #servicenginxstart Startingnginx: [OK] 用浏览器访问http: //60.32.0.24/ #tail-f/var/log/nginx/access.log 60.100.224.110--[18/Aug/2016: 23: 49: 05+0800]"GET/HTTP/1.1"200612"-""Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/46.0.2490.80Safari/537.36""-" 60.100.224.110--[18/Aug/2016: 23: 49: 06+0800]"GET/favicon.icoHTTP/1.1"404571"http: //60.32.0.24/""Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/46.0.2490.80Safari/537.36""-" OK可以产生日志,继续 #vim/opt/logstash-2.3.4/conf/log_agent_nginx_access.conf//定义一个实例配置,从access.log获取日志并存储至redis input{ file{ type=>"nginxaccesslog" path=>["/var/log/nginx/access.log"] } } output{ redis{ host=>"60.32.0.23" port=>"6379" data_type=>"list" key=>"nginx_access_24: redis" } } #/opt/logstash-2.3.4/bin/logstash-f/opt/logstash-2.3.4/conf/log_agent_nginx_access.conf//启动实例测试,正常显示如下 此时刷新访问nginx服
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ELK 测试 部署 方案