作者:
出处: 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
第1章 zabbix监控
1.1 为什么要监控
在需要的时刻,提前提醒我们服务器出问题了
当出问题之后,可以找到问题的根源
网站/服务器 的可用性
1.1.1 网站可用性
在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3~5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比,我们通过下面的计算来感受下X个9在不同级别的可靠性差异。
1个9:(1-90%)*365=36.5天,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是36.5天 2个9:(1-99%)*365=3.65天 , 表示该软件系统在连续运行1年时间里最多可能的业务中断时间是3.65天 3个9:(1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小时。 4个9:(1-99.99%)*365*24=0.876小时=52.6分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是52.6分钟。 5个9:(1-99.999%)*365*24*60=5.26分钟,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是5.26分钟。 6个9:(1-99.9999%)*365*24*60*60=31秒, 示该软件系统在连续运行1年时间里最多可能的业务中断时间是31秒
1.2 监控什么东西
监控一切需要监控的东西,只要能够想到,能够用命令实现的都能用来监控
1.2.1 监控范畴
1.3 怎么来监控
1.3.1 远程管理服务器
如果想远程管理服务器就有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
1.3.2 监控硬件
查看硬件的温度/风扇转速,电脑有鲁大师,服务器就有ipmitool。
使用ipmitool实现对服务器的命令行远程管理
yum -y install OpenIPMI ipmitool #->IPMI在物理机可以成功,虚拟机不行[root@KVM ~]# ipmitool sdr type TemperatureTemp | 01h | ns | 3.1 | DisabledTemp | 02h | ns | 3.2 | DisabledTemp | 05h | ns | 10.1 | DisabledTemp | 06h | ns | 10.2 | DisabledAmbient Temp | 0Eh | ok | 7.1 | 22 degrees CPlanar Temp | 0Fh | ns | 7.1 | DisabledIOH THERMTRIP | 5Dh | ns | 7.1 | DisabledCPU Temp Interf | 76h | ns | 7.1 | DisabledTemp | 0Ah | ns | 8.1 | DisabledTemp | 0Bh | ns | 8.1 | DisabledTemp | 0Ch | ns | 8.1 | Disabled
1.3.3 查看cpu相关
lscpu、uptime、top、htop vmstat mpstat
其中htop需要安装,安装依赖与epel源。
[znix@clsn ~]$lscpuArchitecture: x86_64CPU op-mode(s): 32-bit, 64-bitByte Order: Little EndianCPU(s): 1On-line CPU(s) list: 0Thread(s) per core: 1Core(s) per socket: 1Socket(s): 1NUMA node(s): 1Vendor ID: GenuineIntelCPU family: 6Model: 85Model name: Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHzStepping: 4CPU MHz: 2494.150BogoMIPS: 4988.30Hypervisor vendor: KVMVirtualization type: fullL1d cache: 32KL1i cache: 32KL2 cache: 1024KL3 cache: 33792KNUMA node0 CPU(s): 0
1.3.4 内存够不够可以用
free
[znix@clsn ~]$free -h total used free shared buffers cachedMem: 996M 867M 128M 712K 145M 450M-/+ buffers/cache: 271M 725MSwap: 1.0G 0B 1.0G
1.3.5 磁盘剩多少写的快不快可以用
df、dd、iotop
[znix@clsn ~]$df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 24G 15G 62% /tmpfs 499M 20K 499M 1% /dev/shm/dev/vdb1 20G 4.4G 15G 24% /data
1.3.6 监控网络
iftop nethogs
iftop 监控主机间流量 -i 指定监控网卡nethogs 监控进程流量
1.4 监控工具总览
mrtg 流量监控出图
nagios 监控
cacti 流量监控出图
zabbix 监控+出图
1.5 zabbix介绍
Zabbix 是由 Alexei Vladishev 开发的一种网络监视、管理系统,基于 Server-Client 架构。可用于监视各种网络服务、服务器和网络机器等状态。
使用各种 Database-end 如 MySQL, PostgreSQL, SQLite, Oracle 或 IBM DB2 储存资料。Server 端基于 C语言、Web 管理端 frontend 则是基于 PHP 所制作的。Zabbix 可以使用多种方式监视。可以只使用 Simple Check 不需要安装 Client 端,亦可基于 SMTP 或 HTTP ... 各种协定做死活监视。
在客户端如 UNIX, Windows 中安装 Zabbix Agent 之后,可监视 CPU Load、网络使用状况、硬盘容量等各种状态。而就算没有安装 Agent 在监视对象中,Zabbix 也可以经由 SNMP、TCP、ICMP、利用 IPMI、SSH、telnet 对目标进行监视。
另外,Zabbix 包含 XMPP 等各种 Item 警示功能。
1.5.1 zabbix的组成
zabbix官网: https://www.zabbix.com
zabbix 主要由2部分构成 zabbix server和 zabbix agent
zabbix proxy是用来管理其他的agent,作为代理
1.5.2 zabbix监控范畴
² 硬件监控 :Zabbix IPMI Interface
² 系统监控 :Zabbix Agent Interface
² Java 监控:ZabbixJMX Interface
² 网络设备监抟:Zabbix SNMP Interface
² 应用服务监控:Zabbix Agent UserParameter
² MySQL 数据库监控:percona-monitoring-pldlgins
² URL监控:Zabbix Web监控
第2章 安装zabbix
2.1 环境检查
[root@m01 ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core)[root@m01 ~]# uname -r3.10.0-693.el7.x86_64[root@m01 ~]# getenforceDisabled[root@m01 ~]# systemctl status firewalld.service● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
2.2 安装zabbix过程
2.2.1 安装方式选择
编译安装 (服务较多,环境复杂)
yum安装(干净环境)
使用yum 需要镜像yum源 http://www.cnblogs.com/clsn/p/7866643.html
2.2.2 服务端快速安装脚本
#!/bin/bash#clsn#设置解析 注意:网络条件较好时,可以不用自建yum源# echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts#安装zabbix源、aliyun YUM源curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.reporpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm#安装zabbix yum install -y zabbix-server-mysql zabbix-web-mysql#安装启动 mariadb数据库yum install -y mariadb-serversystemctl start mariadb.service#创建数据库mysql -e 'create database zabbix character set utf8 collate utf8_bin;'mysql -e 'grant all privileges on zabbix.* to zabbix@localhost identified by "zabbix";'#导入数据zcat /usr/share/doc/zabbix-server-mysql-4.0.1/create.sql.gz|mysql -uzabbix -pzabbix zabbix#配置zabbixserver连接mysqlsed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf#添加时区sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf#解决中文乱码yum -y install wqy-microhei-fonts\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf#启动服务systemctl start zabbix-serversystemctl start httpd#写入开机自启动chmod +x /etc/rc.d/rc.localcat >>/etc/rc.d/rc.local<
2.2.3 客户端快速部署脚本
#!/bin/bash#clsn#设置解析#echo '10.0.0.1 mirrors.aliyuncs.com mirrors.aliyun.com repo.zabbix.com' >> /etc/hosts#安装zabbix源、aliyu nYUM源curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.reporpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm#安装zabbix客户端 server为服务端的ipyum install zabbix-agent -ysed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.confsystemctl start zabbix-agent.service#写入开机自启动chmod +x /etc/rc.d/rc.localcat >>/etc/rc.d/rc.local<
手动修改
#zabbix_agentd.conf內修改ServerIP,後面填入自己之前建的Server外部IP
Server=啟動agent
systemctl restart zabbix-agentsystemctl enable zabbix-agent
2.3 检测连通性
2.3.1 服务端安装zabbix-get检测工具
yum install zabbix-get
2.3.2 在服务端进行测试
注意:只能在服务端进行测试
zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"
测试结果
[root@m01 ~]# zabbix_get -s 172.16.1.61 -p 10050 -k "system.cpu.load[all,avg1]"0.000000[root@m01 ~]# zabbix_get -s 172.16.1.21 -p 10050 -k "system.cpu.load[all,avg1]"0.000000
第3章 web界面操作
3.1 zabbix的web安装
3.1.1 使用浏览器访问
http://10.0.0.61/zabbix/setup.php
在检测信息时,可查看具体的报错信息进行不同的解决
选择mysql数据库,输入密码即可
host与port不需要修改,name自定义
确认信息,正确点击下一步
安装完成、点击finsh
进入登陆界面 账号Admin密码zabbix 注意A大写
3.2 添加监控信息
3.2.1 修改监控管理机zabbix server
配置 >> 主机
主机名称: 要与主机名相同,这是zabbix server程序用的
可见名称: 显示在zabbix网页上的,给我们看的
修改后,要将下面的已启用要勾上
添加完成就有了管理机的监控主机
3.2.2 添加新的主机
配置 >> 主机 >> 创建主机
注意勾选以启用
然后添加模板,选择linux OS ,先点小添加,再点大添加。
添加完成,将会又两条监控主机信息
3.2.3 查看监控内容
检测中 >> 最新数据
在最新数据中需要筛选,
输入ip或者名字都能够搜索出来
在下面就会列出所有的监控项
3.2.4 查看图像
检测中 >> 图形
选择正确的主机。选择要查看的图形即可出图