zabbix监控

zabbix监控服务

一、综合架构监控服务概念说明

  1. 对系统不间断实时监控 实现报警通知 邮件/微信/短信/电话 --手环(学员)

  2. 实时反馈系统当前状态

  3. 保证服务可靠性安全性

  4. 保证业务持续稳定运行

a 掌握架构服务的运行情况 b 用于分析公司网站运行情况

  1. 综合架构监控服务器常用命令 CPU: top htop glances 监控什么: us: user state 用户态信息 40% sy: system state 内核态信息 40% MySQL进程 id: idle 空闲状态 20% 内存: top htop free 监控什么: 内存可用率: swap空间使用情况: 磁盘: df iotop(检查磁盘io消耗) glances 监控什么: 磁盘使用情况 磁盘的IO消耗 网络: iftop glances 监控什么: 网络带宽使用情况 进程: top htop ps glances 监控什么: 占用内存情况 tomcat(java)---内存占满(内存溢出)--服务出现僵死(重启服务) 占用CPU情况: MySQL 负载: w top uptime glances 监控什么: 10分钟负载 <CPU内核数 15分钟负载

二、综合架构监控服务器编写脚本(shell python)

练习题:

  1. 如何监控内存使用情况: 正常使用情况: 内存使用率高于80% 异常使用情况: 内存使用率低于20% 发送报警 取出利用率:free|awk ‘NR==2{print ($NF/$2*100)"%"}’

  2. 如何监控服务运行状态: ps -ef|grep -c [n]ginx netstat -lntup|grep xxx PS: tomcat服务---僵死

三、综合架构监控服务体系结构:

  1. 硬件监控 服务器 路由器 交换机 防火墙(SNMP)

  2. 系统监控 CPU 内存 磁盘 网络 进程 TCP(十一种状态)

  3. 服务监控 nginx php tomcat redis memcache mysql

  4. 网站监控 请求时间 响应时间 加载时间 页面监控

  5. 日志监控 ELK(收集 存储 分析 展示) 日志易 access --- 用户源IP地址 北京1000 上海100 深圳500

  6. 安全监控 Firewalld(4层和4层以上) WAF(Nginx+lua)(应用层面) 安全宝 牛盾云 安全狗

  7. 网络监控 smokeping 监控宝 站长工具 奇云测 多机房

  8. 业务监控 (数据库信息)活动产生多少流量 产生多少注册量 带来多少价值

四、zabbix监控服务说明

a zabbix软件结构组成 zabbix-server: 监控服务端 zabbix-agent: 监控客户端 zabbix-web: 监控网站服务 php: 处理动态请求 mysql: 数据库存储监控数据 zabbix-proxy: 负责收集agent信息汇总告知zabbix-server

软件选择: 4.0 LTS(long time support 长期支持版)

五、 zabbix服务端软件安装部署过程

 

zabbix服务端部署软件流程: 第一个里程: 下载安装zabbix yum 源文件 LTS long time support

  1. aliyun zabbix yum 源

  2. 清华源 rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm -- 老版本

第二个里程: 下载安装zabbix服务端相关软件 zabbix服务程序软件: zabbix-server-mysql zabbix服务web软件: zabbix-web-mysql httpd php 数据库服务软件: mariadb-server yum install -y zabbix-server-mysql zabbix-web-mysql httpd php mariadb-server

第三个里程: 软件配置 vim /etc/zabbix/zabbix_server.conf 126 DBPassword=zabbix vim /etc/httpd/conf.d/zabbix.conf 21 php_value date.timezone Asia/Shanghai

第四个里程: 编写配置数据库服务 systemctl start mariadb.service systemctl status mariadb.service 创建zabbix数据库--zabbix create database zabbix character set utf8 collate utf8_bin; 创建数据库管理用户 grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix'; 在zabbix数据库中导入相应的表信息 zcat /usr/share/doc/zabbix-server-mysql-4.0.35/create.sql.gz|mysql -uzabbix -pzabbix zabbix

zgrep

第五个里程: 启动zabbix程序相关服务 数据库服务 zabbix服务 httpd服务 systemctl start zabbix-server.service httpd mariadb.service systemctl enable zabbix-server.service httpd mariadb.service 说明: 至此zabbix-server命令行操作结束 LNMP: nginx php mysql LAMP: apache(php模块) mysql

第六个里程: 登录zabbix服务端web界面, 进行初始化配置 http://10.0.0.71/zabbix/setup.php

10051 zabbix-server 服务端端口号 10050 zabbix-agent 客户端端口号 /etc/zabbix/web/zabbix.conf.php -- 记录web页面初始化信息

第七个里程: 登录zabbix服务web页面 用户名Admin 密码zabbix

六、监控客户端部署流程

第一个里程: 下载安装zabbix yum 源文件 LTS long time support

  1. aliyun zabbix yum 源

  2. 清华源 rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

第二个里程: 下载安装zabbix客户端软件 yum install -y zabbix-agent 或者 rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.0-2.el7.x86_64.rpm

第三个里程: 编写zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 98 Server=172.16.1.71

第四个里程: 启动zabbix-agent服务 [root@web01 ~]# systemctl start zabbix-agent [root@web01 ~]# netstat -lntup|grep 10050 tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 4509/zabbix_agentd tcp 0 0 :::10050 :::* LISTEN 4509/zabbix_agentd

  1. 课程知识总结:

    1. 架构监控服务概念说明

    2. 架构监控服务命令说明

    3. 架构监控服务脚本编写

    4. 架构监控服务体系结构(面试)

    5. 架构监控服务组成部分

    6. 架构监控服务部署安装 zabbix-server端部署

七、实现zabbix默认第一台主机的监控

第一步: 配置---主机---创建主机(创建要监控的主机) 第二步: 配置监控的主机 主机信息中: 名称 主机组 监控的主机地址 模板信息中: 指定需要链接的模板信息 第三步: 保存退出,进行监控检查 检查主机有没有变绿 监测--最新数据

  1. 实现zabbix自定义配置监控 监控项: 可以自定义监控收集主机的信息 应用集: 将多个类似的监控项进行整合 便于查看检查 模板: 将多个监控项 触发器 图形都配置在模板中, 方便多个监控的主机进行调用 动作: 指定将报警信息发送给谁OK/定义报警的信息ok/定义报警的类型OK(邮件 微信 短信电话) PS: 宏信息定义方法: https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location 触发器: 可以实现报警提示(条件表达式),默认页面提示报警 图形: 将多个图整合成一张,便于分析数据 报警媒介: 定义报警的方式

  2. 实现zabbix自定义监控---监控项作用 简单的自定义监控配置(单一服务状态) 需求: 监控nginx服务是否启动d

    1. 在zabbix-agent进行配置文件编写 第一个历程: 编写自定义监控命令 ps -ef|grep -c [n]ginx

    第二个历程: 编写zabbix-agent配置文件 第一种方法: 直接修改zabbix-agent配置文件参数 UserParameter= 第二种方法: 在zabbix_agentd.d/目录中编写自定义监控文件 vim web_server.conf UserParameter=键(变量名),值(变量信息) UserParameter=web_state,ps -ef|grep -c [n]ginx

    第三个历程: 重启zabbix-agent服务 systemctl restart zabbix-agent

    1. 在zabbix-server命令行进行操作(监控服务器) 第一个历程: 检测自定义监控信息是否正确 yum install -y zabbix-get zabbix_get -s 172.16.1.7 -k 'web_state'

    1. 在zabbix-server网站页面进行配置 第一个历程: 进入到创建监控项页面: 配置---主机---选择相应主机的监控项 第二个历程: 监控项页面如何配置 名称 键值 更新间隔时间 应用集 第三个历程: 检查是否收集到监控信息

    自行研究: 监控远程服务是否正常启动

    复杂的自定义监控配置(多个服务状态) 方法一:

    1. 在zabbix-agent端编写配置文件 vim server_state.conf UserParameter=server_state[*],netstat -lntup|grep -c $1

    2. 在zabbix-server命令测试 zabbix_get -s 172.16.1.7 -k 'server_state[22]'

    3. 修改配置页面 键值: server_state[22] 方法二:

    4. 在zabbix-agent端编写配置文件 vim server_state.conf UserParameter=server_state[*],ps -ef|grep -c $1

    5. 在zabbix-server命令测试 zabbix_get -s 172.16.1.7 -k 'server_state[nginx]'

    6. 修改配置页面 键值: server_state[nginx]

  3. 实现zabbix报警功能---触发器/动作 报警方式:

    1. 页面提示信息报警(值班运维) OK

    2. 页面声音提示报警 OK

    3. 邮件信息报警 OK

    4. 微信功能报警 OK

    5. 短信报警/电话报警 OK

    页面提示和声音报警实践: 第一个历程: 创建触发器 配置---主机---选择相应监控主机触发器---创建触发器 设置好表达式 {web01:server_state[nginx].last()}<=2 {监控主机名称:键值名称.调用的表达式函数}<=2

    表达式总结: last() 收集到最新信息(数值) * max() 在一定周期内,收集到的最大值 min() 在一定周期内,收集到的最小值 diff() 在一定时间内,判断收集的信息是否不同 change() 在一定时间内,判断收集的信息是否不同 avg() 取一段时间的平均值

    企业工作遇见告警信息处理思路步骤: 第一步: 看到告警提示信息,定位主机信息 第二步: 看到主机信息之后,定位报警原因 获得监控项Key值 第三步: 根据key值信息,最终获得报警原因

    至此: 已经看到提示报警

    第二个历程: 修改网页配置,有提升声音报警 小人头---正在发送消息---前端信息勾选 PS: 如何修改报警铃声:

    1. 找到文件所在目录(在站点目录中找) find /usr/share/zabbix -type f -name "alarm_disaster.wav"

    2. 将原有声音文件做替换 替换成指定声音文件

    3. 需要清除浏览器缓存,进行测试

    邮件信息报警 第一个历程: 创建触发器 配置---主机---选择相应监控主机触发器---创建触发器 设置好表达式 {web01:server_state[nginx].last()}<=2 {监控主机名称:键值名称.调用的表达式函数}<=2

    第二个历程: 修改动作配置 配置---动作---将默认动作进行开启

    第三个历程: 建立和163邮箱服务关系 管理---报警媒介类型---创建报警媒介

    第四个历程: 定义接收报警的邮件地址 小人头--报警媒介--设置收件人信息

    微信报警 第一个历程: 需要注册企业微信,并进行配置 我的企业:

    1. 获取企业id: ww32d68104ab5f51b0

    2. 获取企业二维码: 允许员工加入 管理工具:

    3. 成员加入---进行审核通过 应用小程序:

    4. 进行创建

    5. 收集程序信息 AgentId: 1000006 Secret: RvQYpaCjWbYMCcwhnPqg1ZYcEGB9cOQCvvlkn-ft6j4

    第二个历程: 编写脚本(python) cat /etc/zabbix/zabbix-server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts --- 放置告警脚本

    执行脚本报错问题解决:

    1. 问题: No module named requests yum install -y python-pip pip install requests

    2. 问题: 脚本执行语法

    第三个历程: 修改添加报警媒介---定义了发微信配置

    第四个历程: 配置接收微信的人员

    短信和电话: 利用第三方短信电话报警平台

    1. 利用阿里大鱼(收费) https://yq.aliyun.com/articles/658524?spm=a2c4e.11155472.0.0.d821153fAjrH3q --- 自行研究

    2. 利用onealert发送告警

    第一个历程: 配置报警平台

    1. 配置--应用--选择zabbix报警

    2. 配置--通知策略

    3. 配置--分派策略

  4. 实现zabbix图形配置---图形 配置--主机--图形--(监控项)

=============================================

综合架构需求: 低级标准: 负载均衡 web服务器 存储 数据库 备份 中级标准: 高可用服务 负载均衡 web服务 存储 数据库 备份 高级标准: 基础完成项: 高可用服务 负载均衡 web服务 存储 数据库 备份 监控服务 批量管理服务 进阶完成项: 简单: yum本地仓库 jumpserver跳板机 pptpvpn 时间同步服务器 cobbler批量部署系统 扩展: mysql高可用 nfs高可用 tomcat服务 实现防火墙配置(主机没有外网如何进行上网) 实现nginx缓存功能 HTTPS访问网站 如何实现session会话功能(memcache) 高级: 如何利用ansible一键化部署

 

posted @ 2022-01-08 16:54  Yusir-SRE  阅读(124)  评论(0编辑  收藏  举报