zabbix监控
一、综合架构监控服务概念说明
-
对系统不间断实时监控 实现报警通知 邮件/微信/短信/电话 --手环(学员)
-
实时反馈系统当前状态
-
保证服务可靠性安全性
-
保证业务持续稳定运行
a 掌握架构服务的运行情况 b 用于分析公司网站运行情况
-
综合架构监控服务器常用命令 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)
练习题:
-
如何监控内存使用情况: 正常使用情况: 内存使用率高于80% 异常使用情况: 内存使用率低于20% 发送报警 取出利用率:free|awk ‘NR==2{print ($NF/$2*100)"%"}’
-
如何监控服务运行状态: ps -ef|grep -c [n]ginx netstat -lntup|grep xxx PS: tomcat服务---僵死
三、综合架构监控服务体系结构:
-
硬件监控 服务器 路由器 交换机 防火墙(SNMP)
-
系统监控 CPU 内存 磁盘 网络 进程 TCP(十一种状态)
-
服务监控 nginx php tomcat redis memcache mysql
-
网站监控 请求时间 响应时间 加载时间 页面监控
-
日志监控 ELK(收集 存储 分析 展示) 日志易 access --- 用户源IP地址 北京1000 上海100 深圳500
-
安全监控 Firewalld(4层和4层以上) WAF(Nginx+lua)(应用层面) 安全宝 牛盾云 安全狗
-
网络监控 smokeping 监控宝 站长工具 奇云测 多机房
-
业务监控 (数据库信息)活动产生多少流量 产生多少注册量 带来多少价值
四、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
-
aliyun zabbix yum 源
-
清华源 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
-
aliyun zabbix yum 源
-
清华源 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
-
课程知识总结:
-
架构监控服务概念说明
-
架构监控服务命令说明
-
架构监控服务脚本编写
-
架构监控服务体系结构(面试)
-
架构监控服务组成部分
-
架构监控服务部署安装 zabbix-server端部署
-
七、实现zabbix默认第一台主机的监控
第一步: 配置---主机---创建主机(创建要监控的主机) 第二步: 配置监控的主机 主机信息中: 名称 主机组 监控的主机地址 模板信息中: 指定需要链接的模板信息 第三步: 保存退出,进行监控检查 检查主机有没有变绿 监测--最新数据
-
实现zabbix自定义配置监控 监控项: 可以自定义监控收集主机的信息 应用集: 将多个类似的监控项进行整合 便于查看检查 模板: 将多个监控项 触发器 图形都配置在模板中, 方便多个监控的主机进行调用 动作: 指定将报警信息发送给谁OK/定义报警的信息ok/定义报警的类型OK(邮件 微信 短信电话) PS: 宏信息定义方法: https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location 触发器: 可以实现报警提示(条件表达式),默认页面提示报警 图形: 将多个图整合成一张,便于分析数据 报警媒介: 定义报警的方式
-
实现zabbix自定义监控---监控项作用 简单的自定义监控配置(单一服务状态) 需求: 监控nginx服务是否启动d
-
在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
-
在zabbix-server命令行进行操作(监控服务器) 第一个历程: 检测自定义监控信息是否正确 yum install -y zabbix-get zabbix_get -s 172.16.1.7 -k 'web_state'
-
在zabbix-server网站页面进行配置 第一个历程: 进入到创建监控项页面: 配置---主机---选择相应主机的监控项 第二个历程: 监控项页面如何配置 名称 键值 更新间隔时间 应用集 第三个历程: 检查是否收集到监控信息
自行研究: 监控远程服务是否正常启动
复杂的自定义监控配置(多个服务状态) 方法一:
-
在zabbix-agent端编写配置文件 vim server_state.conf UserParameter=server_state[*],netstat -lntup|grep -c $1
-
在zabbix-server命令测试 zabbix_get -s 172.16.1.7 -k 'server_state[22]'
-
修改配置页面 键值: server_state[22] 方法二:
-
在zabbix-agent端编写配置文件 vim server_state.conf UserParameter=server_state[*],ps -ef|grep -c $1
-
在zabbix-server命令测试 zabbix_get -s 172.16.1.7 -k 'server_state[nginx]'
-
修改配置页面 键值: server_state[nginx]
-
-
实现zabbix报警功能---触发器/动作 报警方式:
-
页面提示信息报警(值班运维) OK
-
页面声音提示报警 OK
-
邮件信息报警 OK
-
微信功能报警 OK
-
短信报警/电话报警 OK
页面提示和声音报警实践: 第一个历程: 创建触发器 配置---主机---选择相应监控主机触发器---创建触发器 设置好表达式 {web01:server_state[nginx].last()}<=2 {监控主机名称:键值名称.调用的表达式函数}<=2
表达式总结:
企业工作遇见告警信息处理思路步骤: 第一步: 看到告警提示信息,定位主机信息 第二步: 看到主机信息之后,定位报警原因 获得监控项Key值 第三步: 根据key值信息,最终获得报警原因
至此: 已经看到提示报警
第二个历程: 修改网页配置,有提升声音报警 小人头---正在发送消息---前端信息勾选 PS: 如何修改报警铃声:
-
找到文件所在目录(在站点目录中找) find /usr/share/zabbix -type f -name "alarm_disaster.wav"
-
将原有声音文件做替换 替换成指定声音文件
-
需要清除浏览器缓存,进行测试
邮件信息报警 第一个历程: 创建触发器 配置---主机---选择相应监控主机触发器---创建触发器 设置好表达式 {web01:server_state[nginx].last()}<=2 {监控主机名称:键值名称.调用的表达式函数}<=2
第二个历程: 修改动作配置 配置---动作---将默认动作进行开启
第三个历程: 建立和163邮箱服务关系 管理---报警媒介类型---创建报警媒介
第四个历程: 定义接收报警的邮件地址 小人头--报警媒介--设置收件人信息
微信报警 第一个历程: 需要注册企业微信,并进行配置 我的企业:
-
获取企业id: ww32d68104ab5f51b0
-
获取企业二维码: 允许员工加入 管理工具:
-
成员加入---进行审核通过 应用小程序:
-
进行创建
-
收集程序信息 AgentId: 1000006 Secret: RvQYpaCjWbYMCcwhnPqg1ZYcEGB9cOQCvvlkn-ft6j4
第二个历程: 编写脚本(python) cat /etc/zabbix/zabbix-server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts --- 放置告警脚本
执行脚本报错问题解决:
-
问题: No module named requests yum install -y python-pip pip install requests
-
问题: 脚本执行语法
第三个历程: 修改添加报警媒介---定义了发微信配置
第四个历程: 配置接收微信的人员
短信和电话: 利用第三方短信电话报警平台
-
利用阿里大鱼(收费) https://yq.aliyun.com/articles/658524?spm=a2c4e.11155472.0.0.d821153fAjrH3q --- 自行研究
-
利用onealert发送告警
第一个历程: 配置报警平台
-
配置--应用--选择zabbix报警
-
配置--通知策略
-
配置--分派策略
-
-
实现zabbix图形配置---图形 配置--主机--图形--(监控项)
=============================================
综合架构需求: 低级标准: 负载均衡 web服务器 存储 数据库 备份 中级标准: 高可用服务 负载均衡 web服务 存储 数据库 备份 高级标准: 基础完成项: 高可用服务 负载均衡 web服务 存储 数据库 备份 监控服务 批量管理服务 进阶完成项: 简单: yum本地仓库 jumpserver跳板机 pptpvpn 时间同步服务器 cobbler批量部署系统 扩展: mysql高可用 nfs高可用 tomcat服务 实现防火墙配置(主机没有外网如何进行上网) 实现nginx缓存功能 HTTPS访问网站 如何实现session会话功能(memcache) 高级: 如何利用ansible一键化部署