极客时间运维进阶训练营第六周作业
1.基于 logstash filter 功能将 nginx 默认的访问日志及 error log 转换为 json 格式并写入 elasticsearch
https://github.com/jianywu/cloud_learn/blob/main/ELK/logstash/basic_examples/nginxlog_to_es.conf
其中 nginx 的 log 中的 grok 是正则表达式。
2.基于 logstash 收集 json 格式的 nginx 访问日志
3.基于 logstash 收集 java 日志并实现多行合并
https://github.com/jianywu/cloud_learn/blob/main/ELK/logstash/basic_examples/es-log-to-es.conf
先安装 jdbc 的插件:
/usr/share/logstash/bin/logstash-plugin --help
/usr/share/logstash/bin/logstash-plugin list
/usr/share/logstash/bin/logstash-plugin install logstash-output-jdbc
此例子的 java 程序,直接使用 elastic search 的 log 即可。
需要用到 logstash 自带的 multiline 插件,因为 java 的错误 log 是分多行的。
multiline 可以识别,并合并成一行。pattern 是年-月-日。negate 是 true,表示匹配成功 pattern。what 是 prev 表示和之前的合并。
4.基于 logstash 收集 syslog 类型日志(以 haproxy 替代网络设备)
https://github.com/jianywu/cloud_learn/tree/main/ELK/examples/haproxy
先安装 haproxy,从而产生 syslog,供 logstash 读取。
一般网络设备会产生 syslog。
选择 syslog,然后监听某个端口。
syslog { port => "514" },就会收集到 log。
5.logstash 收集日志并写入 Redis、再通过其它 logstash 消费至 elasticsearch 并保持 json 格式日志的解析
https://github.com/jianywu/cloud_learn/blob/main/ELK/examples/redis/magedu-log-to-redis.conf
安装 Redis
apt install redis -y
修改/etc/redis/redis.conf 文件,bind 0.0.0.0,requirepass 的密码修改一下,示例为 123456,实际使用建议 4 选 3(大写,小写,数字,特殊字符)。
本地登录使用 redis-cli 很方便,命令会有提示。
要先输入 AUTH $password,否则没法查看内部数据。
KEYS *可以显示详细的内容。
远程登录还可以通过 telnet $ip 6379,也支持本地登录。
telnet 退出是 ctrl + ]按钮,其中^表示 ctrl 键。
写入 Redis
日志可以用 grok 正则表达式匹配一下,然后再 logstash 写入数据库。
再写入 es 即可。
6.基于 docker-compose 部署单机版本 ELK
https://github.com/jianywu/cloud_learn/tree/main/ELK/docker-compose
部署后,输入 elastic 用户名和密码,就可以进入 ELK 的 elasticsearch。
和 kibana 系统。
评论