zabbix全网监控
面试题:你公司监控什么?
利用OSI/IOS7层协议进行回答应用层:监控协议http/https/ssh 如nginx mysql rsync tomcat(进程,URL地址、服务是否正常使用)表示层:表示层会话层:会话层传输层:监控TCP/UDP端口网络层:IP地址,一般监控带宽的延迟数据链路层:MAC地址,一般监控交换机,路由器等,一般都是基于SNMP协议进行监控的物理层:监控设备中的CPU温度、内存、硬盘容量、磁盘IO、RAID、负载等
常用监控命令:
CPU监控命令:top,vmstat,cat /pro/cpuinfo内存监控命令:top,free,iotop磁盘IO:iotop,iostat(软件包名称sysstat)查看raid信息:megacli查看硬件信息:ipmitools带宽监控命令:iftop,nethogs常见端口监控命令:teltnt,ss,netstat,lsof,nc,nmap
监控用户访问网站的流程:
DNS解析流程:查看世界各地访问你网站的的情况,可以说通过http://ping.chinaz.com 进行测试TCP/IP三次握手:监控服务器的连接状态HTTP请求:会话层HTTP响应:TCP/UDP端口,主要用来分析日志TCP/IP四次挥手:监控服务器的连接状态
zabbix之前所用到的监控工具
mrtg 流量监控出图nagios 监控cacti 流量监控出图zabbix 监控+出图,所有监控范畴,都可以整合到Zabbix中。 硬件监控:Zabbix IPMI Interface 系统监控:Zabbix Agent Interface Java监控:Zabbix JMX Interface 网络设备监控:Zabbix SNMP Interface 应用服务监控:Zabbix Agent UserParameter MySQL数据库监控:percona-monitoring-plulgins URL监控:Zabbix Web 监控
zabbix介绍
官网:http://www.zabbix.com/zabbix(音同 zæbix)是一个基于WEB界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix部署
第一个里程:安装服务端
#安装官方源rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm#安装mysq httpd php yum install zabbix-server-mysql zabbix-web-mysql httpd php -y
第二个里程:安装数据库
# 安装mariadbyum -y install mariadb-serversystemctl start mariadb.service# 创建数据库,权限mysqlcreate database zabbix character set utf8 collate utf8_bin;grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';exit# 导入数据库sql文件zcat /usr/share/doc/zabbix-server-mysql-3.0.13/create.sql.gz|mysql -uzabbix -pzabbix zabbix
第三个里程:配置zabbix server
#修改配置文件,将DBPassword=修改成DBPassword=zabbix[root@zabbix ~]# grep -n "DBPassword=" /etc/zabbix/zabbix_server.conf 124:DBPassword=zabbix#修改apache-php配置文件,在配置文件中添加php_value date.timezone Asia/Shanghai'sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
第四个里程:启动zabbix服务
systemctl start zabbix-serversystemctl start httpd
第五个里程:访问网页进行配置
http://10.0.0.22/zabbix/
第六个里程:配置中文显示
第七个里程:部署客户端
#安装官方源rpm -ivh https://repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm#安装客户端yum install zabbix-agent#修改配置文件sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf#启动服务systemctl start zabbix-agent.service
第八个里程:测试客户端是否可用
#只能在服务端使用,安装zabbix-getyum -y install zabbix-get#使用命令进行测试zabbix_get -s 172.16.1.7 -p 10050 -k "system.cpu.load[all,avg1]"-s:指定IP-p:指定端口-k:指定键值(执行命令)
第九个里程:使用web页面进行监控
第十个里程:解决中文乱码问题在服务端安装
yum -y install wqy-microhei-fonts\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
自定义监控(制作模板)
第一步:在agent注册key
语法:key名字要唯一,多个key以行为分割UserParameter=, UserParameter=login-user,who|wc -lUserParameter=login-user,/bin/sh /server/scripts/login.sh# cd /etc/zabbix/zabbix_agentd.d/# vim userparameter_login.conf UserParameter=login-user,who|wc -l# 修改配置文件要重启# systemctl restart zabbix-agent.service # 在server检测# zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
第二步:在server注册
1.创建模板2.创建应用集:给监控项分类3.创建监控项:监控的内容4.创建触发器:当监控项获取到的值 达到一定条件时 就触发报警5.创建图形6.主机关联模板
第三步:使用第三方平台处理报警信息,并测试
登陆网站:http://www.onealert.com/index.html1.新建应用2.在server端中安装应用3.在通知策略中新建策略4.进行测试
自动发现与自动注册
自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,缺点zabbix server压力山大(网段大,客户端多),时间消耗多。自动注册:zabbix agent主动到zabbix Server上报到,登记;缺点agent有可能找不到Server(配置出错)被动模式:默认,都是站在agent的立场上说话,agent被server抓取数据主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server两种模式都是在agent上的配置文件配置的
自动发现部署
第一步:安装zabbix服务端(略)
第二步:安装zabbix客户端
#安装官方源rpm -ivh https://repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm#安装客户端yum install zabbix-agent#修改配置文件sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.22#' /etc/zabbix/zabbix_agentd.conf
第三步:在网页上配置自动发现规则
自动注册部署(主动模式)
第一步:安装zabbix服务端(略)
第二步:安装zabbix客户端
#安装官方源rpm -ivh https://repo.zabbix.com/zabbix/4.1/rhel/7/x86_64/zabbix-release-4.1-1.el7.noarch.rpm#安装客户端yum install zabbix-agent#修改配置文件vim /etc/zabbix/zabbix_agentd.confServer=172.16.1.21ServerActive=172.16.1.21Hostname=web01(主机的名称)#HostnameItem=system.hostname#重启服务systemctl restart zabbix-agent.service #查看服务是否运行netstat -tunlp|grep zabbix在server端上进行hosts解析echo "172.16.1.7 web01" >> /etc/hosts ֲ
第三步:在网页上配置自动注册,注册完后成进行等待即可
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">