2023年7月17日发(作者:)
ELK+Logback进⾏业务⽇志分析查看
第1章 Elasticsearch安装部署
1.1 下载软件包并创建⼯作⽬录程序下载地址:下载时间过长,建议登录⾄服务器下载;‘’’# 下载官⽅新版本软件包# 解压⽂件⾄指定⽬录并重命名# 创建⽤户且将elasticsearch程序⽬录属主属组设置为elasticsearch⽤户‘’’# wget /downloads/elasticsearch/elasticsearch-7.5.0-linux-x86_# tar zxvf elasticsearch-7.5.0-linux-x86_ -C /mnt/elasticsearch# useradd elasticsearch && chown -R elasticsearch:elasticsearch /mnt/elasticsearch
1.2 安装Elasticsearch Head插件
如果不安装Head插件的话,查询索引及数据等操作不太⽅便,所以此处安装了Head插件
‘’’1.# 到官⽅下载最新版本的nodejs软件包(/en/download/)2.# 解压压缩包3.# 在/etc/profile⽂件中配置好环境变量4.# 执⾏验证5.# 下载head插件并修改配置⽂件6.# 安装服务启动命令7.# 启动命令验证8.# 安装相关程序9.# 后台启动head插件10.# 查看服务是否启动成功,端⼝是否存在‘’’1 # 下载过程省略。。2 # tar zxvf -C /usr/local/node-v11.10.0-linux-x643 # vim /etc/profile export NODE_HOME=/usr/local/node-v11.10.0-linux-x64 export NODE_PATH=$NODE_HOME/lib/node_modules export PATH=$NODE_HOME/bin:$PATH export PATH4 # node -vv11.10.05 # cd /mnt/elasticsearch && git clone5 # vim /mnt/elasticsearch/elasticsearch-head/_site/ (找到下列⾏进⾏修改)_uri = _uri || ("app-base_uri") || "ES_IP:PORT"5 # vim /mnt/elasticsearch/elasticsearch-head/ (找到下列⾏进⾏修改) hostname: '0.0.0.0', port: 9100, base: '.', keepalive: true6 # npm install -g grunt6 # npm install -g grunt-cli --registry= --no-proxy7 # grunt --versiongrunt-cli v1.2.08 # npm install9 # nohup grunt server &10 # ss -nlt | grep 9100
1.3 Elasticsearch配置⽂件修改并启动 # vim /mnt/elasticsearch/config/ : my-elasticsearch // 集群名称(单节点⽤不上,但集群的话另外的ES也要配置这个名称) : node-1 // 节点名称 : /mnt/elasticsearch/data // 数据存放路径 : /mnt/logs/elasticsearch // ⽇志存放路径 _lock: true // 防⽌es内存被交换出去,避免es使⽤swap交换分区 : IP // ES的主机IP地址 : 9200 // ES启动后监听的端⼝ l_master_nodes: ["node-1"] // 候选主节点的设备地址,来开启服务时就可以被选为主节点 r_after_nodes: 1 // 要等⼏个节点启动完成后,开始初始化数据恢复 # 使head插件可以访问d: -origin: "*"#启动LRU法则,回收⽼数据: 20%#指定节点为: true# vim /mnt/elasticsearch/config/s // 调整ES可使⽤的内存⼤⼩ -Xms512M -Xms512M# vim /etc/ #Elasticsearch设置,在ES启动时,限制ES可以拥有的VMA(虚拟内存区域)的数量ness=_map_count=262144# sysctl -p // 使配置⽣效# cd /mnt/elasticsearch/bin# ./elasticsearch // 前台启动ES⽅便发现问题并调试# nohup ./elasticsearch & (这条命令可等控制台启动ES⽆报错后使⽤)访问IP:9100(信息均为Head插件的信息)# 因为我这边已经有了索引所以我的效果如下,默认应该是空的,但ES状态为Green正常(黄⾊也不影响,与分⽚相关)
第2章 Logstash安装部署
2.1 下载软件包并创建⼯作⽬录程序下载地址:下载时间过长,建议登录⾄服务器下载;‘’’ 1. # 从官⽅地址下载程序包 2. # 解压到指定⽬录且重命名 3. # 创建运⾏⽤户并且修改程序⽬录属主属组‘’’# wget /downloads/logstash/# tar zxvf -C /mnt/logstash# useradd logstash && chown -R logstash:logstash /mnt/logstash
2.2 修改配置⽂件并启动# cd /mnt/logstash/config# cp # vim input { tcp { host => "IP" // 本机IP地址 port => "5044" // Logstash所监听端⼝号 mode => "server" // 我们为服务端,让客户端发送⽇志 codec => json_lines // 格式固定为json_lines,否则动态变量appname⽆法⽣效 }}output { elasticsearch { hosts => "IP:9200" // ES的IP+Port action => "index" // ⾏为是索引 index => "%{[appname]}-%{+}" // 索引名称为”服务名+⽇期” }}# vim s // 限制logstash使⽤内存⼤⼩ -Xms512m -Xms512m# cd /mnt/logstash/bin# ./logstash -f /mnt/logstash/config/# nohub ./logstash -f /mnt/logstash/config/ & (后台启动logstash,如果担⼼有问题也可以先前台启动调试)第3章 Logback服务配置
说明:我们的部署流程使⽤的是Jenkins+Gitlab+Ansible+Python来实现的,所以打包也是由Jenkins直接打包,服务较多,⽤的基本都是Spring boot框架,但⽇志⽅⾯使⽤的是Logback,所以以下配置使⽤的是Logback+Logstash这种⽅式;
3.1 修改服务配置并且重新编译⾸先在Jenkins的⼯作空间中找到服务⽬录,临时修改各配置 # cd .jenkins/workspace/$service_name/# vim // 新增下列⾏
...... # mvn clean package // 重新打⼀个服务jar包上测试环境替换
3.2 登录ES-Head插件验证
访问IP:9100,查看索引位置是否存在⾃⼰以服务名命名的索引,如果存在则可以进⾏下⼀步操作啦,如果没有的话可以调整⼀下logstash的配置⽂件
# vim input { tcp { host => "IP" // 本机IP地址 port => "5044" // Logstash所监听端⼝号 mode => "server" // 我们为服务端,让客户端发送⽇志 codec => json_lines // 格式固定为json_lines,否则动态变量appname⽆法⽣效 }}output { stdout { codec => json_lines
}}# cd /mnt/logstash/bin# ./logstash -f /mnt/logstash/config/# 然后在测试环境重启⼀下服务,查看⼀下logstash前台是否有⽇志收集过来,如果没有的话,查看logback配置的logstash的地址及端⼝与服务所在的服务器之间是否能够正常通讯;
第4章 Kibana安装配置及使⽤ 4.1 下载软件包并创建⼯作⽬录下载时间过长,建议登录⾄服务器下载;‘’’ 1. # 从官⽅地址下载程序包 2. # 解压到指定⽬录且重命名 3. # 创建运⾏⽤户并且修改程序⽬录属主属组‘’’# wget /downloads/kibana/kibana-7.5.0-linux-x86_# tar zxvf kibana-7.5.0-linux-x86_ -C /mnt/kibana# useradd kibana && chown -R kibana:kibana /mnt/kibana4.2
修改配置⽂件并启动# cd /mnt/kibana/config# vim : 5601 // kibana监听的端⼝号 : "IP" // kibana所在的服务器IP地址 loadBytes: 1048576 // 最⼤请求负载(单位Byte) : ["IP:Port"] // ES的⽹络地址 : ".kibana" // kibana默认创建的索引 tTimeout: 30000 // 请求连接ES的最⼤超时时间(单位 ms) : /mnt/kibana/ // pid存放位置 : "zh-CN" // 配置为中⽂界⾯# cd /mnt/kibana/bin# ./kibana // 前台启动⽅便发现问题# nohub ./kibana & // 调试完成后可直接后台运⾏4.3 验证是否启动成功1.如果访问IP:5601出现如下界⾯的话,则说明Kibana启动成功
2. 创建索引模式⽤来匹配ES上的索引名称
3. 红框中填⼊你要匹配的规则,类似正则表达式;
4.默认以@timestamp作为筛选字段即可
5. 选中左边的第⼀个则代表查看匹配到的数据,第⼆个红框代表只看message这个字段的内容
⾄此,ES+Logstash+logback+Kibana就完成啦!
发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1689545460a265008.html
评论列表(0条)