linux 综合架构监控服务 zabbix
综合架构监控服务概念说明
监控服务用途
01. 对系统不间断实时监控
- 实现报警通知 邮件/微信/短信/电话 --手环
02. 实时反馈系统当前状态
03. 保证服务可靠性安全性
04. 保证业务持续稳定运行
综合架构监控服务器常用命令
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
yum install iptop iotop
监控磁盘使用情况
df -h
监控什么:
-
磁盘使用情况
-
磁盘的IO消耗
网络: iftop glances
iftop
监控什么:
- 网络带宽使用情况
进程: top htop ps glances
top
监控什么:
-
占用内存情况 tomcat(java)---内存占满(内存溢出)--服务出现僵死(重启服务)
-
占用CPU情况: MySQL
负载: w top uptime glances
监控什么:
-
10分钟负载 <CPU内核数
-
15分钟负载
使用shell脚本来监控服务器
内存:每隔1分钟监控一次内存,当你的可用内存低于100m,发邮件报警,要求显示剩余内存值
#!/bin/bash while true do Free=`free -m | awk 'NR==2{print $NF}'` if [ $Free -lt 100 ] then echo $Free | mail -s "当前内存" y3967z@163.com fi sleep 60 done ab -n 10000 -c 3 http://10.0.0.100/zabbix/index.php
zabbix 监控服务部署
官方文档
https://www.zabbix.com/manuals
zabbix 软件结构组成
-
zabbix-server: 监控服务端
-
zabbix-agent: 监控客户端
-
zabbix-web: 监控网站服务
-
php: 处理动态请求
-
mysql: 数据库存储监控数据
-
zabbix-proxy: 负责收集agent信息汇总告知zabbix-server
zabbix 软件安装部署选择
- 软件选择: 4.0 LTS(long time support 长期支持版)
第一个历程:配置 yum 仓库
使用清华源
http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/
wget http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm rpm -ivh zabbix-release-4.0-1.el7.noarch.rpm cat /etc/yum.repos.d/zabbix.repo
第二个历程:下载安装zabbix服务端相关软件
yum install deltarpm -y yum install -y zabbix-server-mysql zabbix-web-mysql httpd php mariadb-server
第三个里程: 软件配置
修改 /etc/zabbix/zabbix_server.conf
DBPassword=zabbix
/etc/httpd/conf.d/zabbix.conf 设置时区
php_value date.timezone Asia/Shanghai
第四个里程: 编写配置数据库服务
设置mysql root 密码
systemctl start mariadb.service systemctl status mariadb.service mysql_secure_installation
创建zabbix数据库--zabbix和管理用户
创建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.15/create.sql.gz|mysql -uzabbix -pzabbix zabbix
第五个里程: 启动zabbix程序相关服务
systemctl start zabbix-server systemctl enable zabbix-server systemctl start httpd systemctl enable httpd
第六个里程: 登录zabbix服务端web界面, 进行初始化配置
http://10.0.0.7/zabbix/setup.php
第七个里程: 登录zabbix服务web页面
用户名Admin 密码zabbix
设置中文
监控一台服务器主机
可以发现下面有一个报警提示没有监控的主机
添加要监控的主机
第一种方法 把自己添加监控
yum install -y zabbix-agent systemctl start zabbix-agent.service systemctl enable zabbix-agent.service
查看监控的主机
第二种方法 把别的机器添加监控
安装zabbix-agent
rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-agent-4.0.11-1.el7.x86_64.rpm
配置zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf Server=10.0.0.7
启动zabbix-agent
systemctl start zabbix-agent systemctl enable zabbix-agent
查看zabbix 监控的链接
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-web界面,添加主机
实现zabbix自定义配置监控
监控项: 可以自定义监控收集主机的信息
应用集: 将多个类似的监控项进行整合 便于查看检查
模板: 将多个监控项 触发器 图形都配置在模板中, 方便多个监控的主机进行调用
动作: 指定将报警信息发送给谁OK/定义报警的信息ok/定义报警的类型OK(邮件 微信 短信电话)
宏信息定义方法:
https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location
触发器: 可以实现报警提示(条件表达式),默认页面提示报警
图形: 将多个图整合成一张,便于分析数据
报警媒介: 定义报警的方式
简单的自定义监控配置
需求: 监控nginx服务是否启动
在zabbix-agent进行配置文件编写
第一个历程: 编写自定义监控命令
ps -ef|grep -c [n]ginx
第二个历程: 编写zabbix-agent配置文件
语法格式
- UserParameter=键(变量名),值(变量信息)
第一种方法: 直接修改zabbix-agent配置文件参数 /etc/zabbixzabbix_agentd.conf
UserParameter=web_state,ps -ef|grep -c [n]ginx
第二种方法: 在 /etc/zabbix/zabbix_agentd.d 目录下创建 web_server.conf (推荐的方法)
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 10.104.204.21 -k 'web_state'
在zabbix-server网站页面进行配置
第一个历程: 进入到创建监控项页面
第二个历程: 监控项页面配置
- 名称 键值 更新间隔时间 应用集
第三个历程: 检查是否收集到监控信息
复杂的自定义监控配置(多个服务状态)
(1)在zabbix-agent端编写配置文件 /etc/zabbix/zabbix_agentd.d/server_state.conf
UserParameter=server_state[*],netstat -lntup|grep -c $1
(2)重启agent
systemctl restart zabbix-agent
(3)在zabbix-server命令测试
zabbix_get -s 10.104.204.21 -k 'server_state[22]'
(4)修改配置页面
键值: server_state[22]
实现zabbix报警功能---触发器/动作
页面提示和声音报警
第一个历程: 创建触发器
表达式总结:
-
last() 收集到最新信息(数值) *****
-
max() 在一定周期内,收集到的最大值
-
min() 在一定周期内,收集到的最小值
-
diff() 在一定时间内,判断收集的信息是否不同
-
change() 在一定时间内,判断收集的信息是否不同
-
avg() 取一段时间的平均值
第二个历程: 修改网页配置,有提升声音报警
小人头---正在发送消息---前端信息勾选
测试 agent 停止 nginx 查看页面
systemctl stop nginx
邮件信息报警
第一个历程: 创建触发器
同页面提示和声音报警中第一个历程
第二个历程: 修改动作配置
- 将默认动作进行开启
第三个历程: 建立和163邮箱服务关系
第四个历程: 定义接收报警的邮件地址
关闭 nginx 收到的邮件
开启nginx 收到的邮件