返回顶部

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 收到的邮件 

posted @ 2019-12-15 17:04  Crazymagic  阅读(380)  评论(0编辑  收藏  举报