请简述ELK的架构组成和工作原理?
组成:
- ElasticSearch、Logstash 和 Kiabana
ELK工作原理:
- 在所有需要收集日志的服务器上部署 Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。
- Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
- Elasticsearch 对格式化后的数据进行索引和存储。
- Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。
请简述 zabbix 监控主动模式和被动模式的区别?
主动模式
- zabbix agent 主动向 zabbix server 请求监控项列表,并返回监控项所需要采集的监控指标数据给 zabbix server
被动模式
- zabbix agent 被动接收 zabbix server 请求的监控指令,zabbix agent 再返回监控项所需要的监控指标数据给 zabbix server
请简述如何创建zabbix自定义监控项?
- 先明确获取监控指标数据的命令或脚本
- 在被监控主机的配置文件目录中(/etc/zabbix/zabbix_agent2.d/)创建以 .conf 为结尾的监控项配置文件,在配置文件文件里自定义监控项的键值,再重载zabbix-agent2服务
- 键值配置格式:UserParameter=<键名>,<获取值的命令/脚本路径>
- 在zabbix服务端Web管理页面中依次添加 模板 - 监控项 - 触发器 - 图形
- 将监控模板和被监控主机相关联
请简述你用 zabbix 监控了哪些指标数据?
MySQL授权 user1 用户管理 test 库的所有表,192.168.1.6 访问,密码是 123456,请给出详细命令?
- CREATE USER 'user1'@'192.168.1.6' IDENTIFIED BY '123456';
- GRANT ALL PRIVILEGES ON test.* TO 'user1'@'192.168.1.6';
- FLUSH PRIVILEGES;
MySQL主从复制集群中的从库宕机导致主从数据不一致,如何手工恢复?
请描述查询MySQL主从复制状态和判断主从复制延迟的方法?
请描述Redis哨兵模式和集群模式的区别及其原因?
- 主从复制可以实现数据的备份,读的负载均衡,但是无法自动故障恢复
- 哨兵可以实现主节点故障的自动恢复;哨兵无法解决写的负载均衡
- 而集群模式可以解决(集群是多个组,可以相互跳转进行负载均衡的写入)
- 为什么能解决单机存储的问题,集群通过数据分片的方式,将数据分散存储在各个节点充分利用每个节点的空间
请描述Redis集群的工作过程?
- 集群有多组节点,每组节点负责一部分哈希,
- 读写数据时,先针对key根据crc16的算法得出一个结果,然后把结果对 16384 取余。通过这个值去找到对应的哈希槽的节点,进行数据读写。
- 集群每组节点内做主从复制,当主节点宕机的时候,就会启用从节点。主节点负责读写请求和集群信息的维护:从节点负责主节点数据和状态信息的复制
请简述Redis有哪些持久化方式,以及它们的工作方式有什么区别?
RDB持久化
定时的将redis在内存中的数据进行快照并压缩保存到硬盘里
- 手动触发:bgsave命令
- 自动触发:满足配置文件中 save n m 的规则(在n秒内发生了m次数据更新就会自动触发);主从复制在做全量复制时;执行shutdown命令关闭数据库时
- 工作流程:redis父进程会fork子进程来进行RDB持久化快照保存内存数据到硬盘里,文件名:dump.rdb
- 优缺点:RDB持久化保存的文件占用空间较小,网络传输快,恢复速度比AOF更快,性能影响比AOF更小;
- 实时性不如AOF,兼容性较差,持久化期间在fork子进程时会阻塞redis父进
AOF持久化
实时的以追加的方式将redis写操作的命令记录到aof文件中
- 工作流程:命令追加(将写操作命令追到aof_buf缓冲区)
- 文件写入和同步(文件名:appendonly.aof,同步策略:appendfsync everysec|always|no)
- 文件重写(减少aof文件占用空间的大小和加快恢复速度,定期执行bgrewriteaof命令触发)
- 优缺点:实时性比RDB更好,支持秒级持久化,兼容性较好;
- 持久化保存的文件占用空间更大,恢复速度更慢,性能影响更大,AOF文件重写期间在fork子进程时也会阻塞redis父进程,且IO压力更大