1.对系统不间断实时监控
实现报警通知,邮件/微信/短信/电话
2.实时反馈系统当前状态
3.保证服务可靠性安全性
4.保证业务持续稳定运行
a.掌握架构服务的运行情况
b.用于分析公司网站的运行情况
1 服务器监控常用命令:
CPU:top htop glances
us: user state 用户态信息
sy: system state 内核态信息
id: idle 空闲状态
内存:top htop free
内存可用率:
swap空间使用情况:
磁盘: df iotop(检查磁盘IO消耗) glances
磁盘使用情况
磁盘的IO消耗
网络带宽使用情况
进程: top htop ps glances
占用内存情况 tomcat(java)—-内存占满(内存溢出)—-服务出现僵死(重启服务)
占用CPU情况:mysql
负载: w top uptime glances
10分钟负载
2 服务器监控脚本编写
如:
1.如何监控内存使用情况
正常使用情况:内存使用率低于80%
异常使用情况: 内存使用率高于80%,发送报警
2.如何监控服务运行状态:
ps -ef | grep -c [n]ginx
netstat -luntp| grep xxx
3 综合架构监控服务体系结构
1.硬件监控 服务器 路由器 交换机 防火墙(SNMP)
2.系统监控 CPU 内存 磁盘 网络 进程 TCP(是一种状态)
3.服务监控 nginx php tomcat redis memcache mysql
4.网站监控 请求时间 响应时间 加载时间 页面监控
5.日志监控 ELK(收集,存储,分析,展示)
6.安全监控 Firewalld(4层和4层以上) WAF(Nginx+lua)(应用层面)安全宝 牛盾云 安全狗
7.网络监控 smokeping 监控宝 站长工具 奇云测 多机房
8.业务监控 数据库信息,活动产生多少流量,产生多少注册量,带来多少价值
4 zabbix服务说明
4.1 zabbix软件结构组成
zabbix-server: 监控服务端
zabbix-agent: 监控客户端
zabbix-web: 监控网站服务
php: 处理动态请求
mysql: 数据库存储监控数据
zabbix-proxy 负责手机agent信息汇总告知zabbix-server
4.2 zabbix软件安装部署过程
4.2.1 zabbix服务端部署流程
1.下载安装zabbix yum源文件
阿里源或者清华源或zabbix官网下载源www.zabbix.org
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2.下载安装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
3.软件配置
vim /etc/zabbix/zabbix_server.conf
126 DBPasswor=zabbix
vim /etc/httpd/conf.d/zabbix.conf
21 php_value date.timezone Asia/Shanghai
4.编写配置数据库服务
systemctl start mariadb && systemctl enable mariadb
创建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.27/create.sql.gz | mysql -uzabbix -pzabbix zabbix
5.启动zabbix程序相关的服务
数据库服务 zabbix服务 http服务
systemctl start zabbix-server httpd mariadb
systemctl enable zabbox-server httpd mariadb
说明:至此zabbix-server命令行操作结束
6.登录zabbix服务端web界面,进行初始化配置
http://10.00.71/zabbix/setup.php
10051 zabbix-server 服务端端口号
10050 zabbix-agent 客户端端口号
/etc/zabbix/web/zabbix.conf.php —记录web页面初始化信息
*7.登录服务web页面
用户名Admin 密码zabbix
4.2.2 客户端软件安装部署
1.下载好yum源文件
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2.安装zabbix客户端
yum install -y zabbix-agent
3.编写zabbix客户端配置文件
vim /etc/zabbix/zabbix_agentd.conf
98 Server=172.16.1.71
4.启动zabbix-agent服务
systemctl start zabbix-agent
systemctl enable zabbix-agent
5 主机监控实操
5.1 通过监控模板实现监控
第一步:配置—-主机—-创建主机(创建要监控的主机)
第二步:配置监控的主机
主机信息中:名称 主机组 监控的主机地址
模板信息中:指定需要连接的模板信息
第三步:保存退出,进行监控检查
检查主机连接状态(绿色)
5.2 通过自定义配置监控
监控项: 可以自定义监控收集主机的信息
应用集: 将多个类似的监控项进行整合,便于查看检查
模板: 将多个监控项 触发器 图形 等都配置在模板中,方便后面添加的主机可以直接调用
动作: 指定将报警信息发送给谁/定义报警的信息/定义报警的类型(邮件 微信 短信电话)
触发器: 可以实现报警提示(条件表达式),默认页面提示报警
图形: 将多张图做一个整合,便于后期分析数据
报警媒介: 定义报警的方式
5.2.1 实现zabbix自定义监控—监控项的作用
需求:监控nginx服务是否启动
简单的自定义监控配置(一个服务状态)
1)在zabbix-agent进行配置文件编写
第一步:编写自定义监控命令
ps -ef | grep -c [n]ginx
第二步:编写zabbix-agent配置文件
方法1:直接修改zabbix-agent配置文件参数
UserParameter=
方法2:在zabbix_agent.d/目录中编写自定义监控文件
vim web_server.conf
UserParameter=键,值
UserParameter=web_status,ps -ef | grep -c [n]ginx
第三步:重启zabbix-agent服务
systemctl restart zabbix-agent
2)在zabbix-server命令行进行操作
第一步:检查自定义监控信息是否正确
yum install -y zabbix-get
zabbix_get -s 172.16.1.7 -k ‘web_state’
3)在zabbix-server网站页面进行配置
第一步:进入到创建监控项页面
配置-主机-选择相应主机的监控项
第二步:监控项页面如何配置
名称 键值 更新间隔时间 应用集
第三步:查看是否收集到监控信息
复杂的自定义监控配置(多个服务状态)
1)在zabbix-agent端编写配置文件
vim server_status.conf
UserParameter=service_status[*],netstat -lntup|grep -c $1
2)在zabbix-server命令行测试
zabbix_get -s 172.16.1.7 -k ‘server_status[22]’
3)修改配置页面
键值:server_status[22]
5.2.2 实现zabbix报警功能—触发器/动作
报警方式:
1.页面提示信息报警(值班运维)
2.页面声音提示报警
3.邮件信息报警
4.微信功能报警
5.短信报警/电话报警
5.2.2.1 页面提示和声音提示报警实践
- 第一步:创建触发器
配置—主机—-选择相应的监控主机触发器—-创建触发器
设置好表达式
{web01:server_status[nginx].last()}<=2
{监控主机名称:键值名称.调用的表达式函数}<=2
表达式总结:
last() 收集到最新信息(数值)
max() 在一定周期内,收集到的最大值
min() 在一定周期内,收集到的最小值
diff() 在一定时间内,判断收集的信息是否不同
change() 在一定时间内,判断收集的信息是否不同
avg() 取一段时间的平均值
企业工作中遇见告警信息处理思路步骤
第一步:看到告警提示信息,定位主机信息
第二步:看到主机信息之后,定位报警原因,获取监控项的key值
第三步:根据key值信息,最终获得报警原因
- 第二步:修改网页配置,有提示声音报警
小人头—正在发送信息—-前端信息勾选
PS:如何修改报警铃声:
1)找到文件所在目录(在站点目录中找)
find /usr/share/zabbix -type f -name “alarm_disater.mp3”
2)将原有声音文件做替换
替换成指定的声音文件
3)需要清楚浏览器缓存,进行测试
5.2.2.2 邮件信息报警
- 第一步:创建触发器
配置—主机—-选择相应的监控主机触发器—-创建触发器
设置好表达式
{web01:server_status[nginx].last()}<=2
{监控主机名称:键值名称.调用的表达式函数}<=2
- 第二步:修改动作配置
配置——动作—-将默认动作进行开启
- 第三步:建立和163邮箱服务关系
管理—-报警媒介类型—-创建报警媒介
- 第四步:定义接收报警的邮件地址
5.2.2.3 微信报警
- 第一步:需要注册企业微信,并进行配置
我的企业:
01:获取企业ID
02:获取企业二维码:允许员工加入
管理工具:
01:成员加入——进行审核通过
应用小程序:
01:进行创建
02:收集程序信息
AgentId:
Secret:
- 第二步:编写脚本(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:脚本执行语法