五 Zabbix全网监控
监控的作用
我们的职责
1.保障企业数据的安全可靠。
2.为客户提供7*24小时服务。
3.不断提升用户的体验。
在关键时刻,提前提醒我们服务器要出问题了
当出问题之后,可以便于找到问题的根源
远程管理服务器有远程管理卡,比如Dell idRAC,HP ILO,IBM IMM
查看硬件的温度/风扇转速,电脑有撸大师,服务器就有ipmitool。使用ipmitool实现对服务器的命令行远程管理
yum -y install OpenIPMI ipmitool IPMI在物理机可以成功,虚拟机不行
CPU性能好不好、忙不忙可以用lscpu、uptime、top、htop。
内存够不够可以用free
磁盘剩多少写的快不快可以用df、dd、iotop
网络太卡找iftop, nethogs
yum install iftop htop iotop -y
监控工具总览
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界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
环境检查
从CentOS7模板机全新克隆一台新主机
IP规划为10.0.0.61/172.16.1.61,主机名为m01
注册账号:http://c.onealert.com/console//ucid/regist.jsp (用来接收报警信息)
安装zabbix服务端
# 安装Zabbix官方源
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
# rpm -vih http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum makecache fast
# 安装zabbix,httpd,php
yum install zabbix-server-mysql zabbix-web-mysql httpd php -y
安装yum数据库
# 安装mariadb
yum -y install mariadb-server
systemctl start mariadb.service
# 创建数据库,权限
mysql
create 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.4.11/create.sql.gz|mysql -uzabbix -pzabbix zabbix
查看
mysql
use zabbix;
show tables;
======================================================
配置zabiix server
# 配置zabbix Server连接mysql
sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
# 修改apache-php配置
sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf
或用vim # vim /etc/zabbix/zabbix_server.conf
# vim /etc/httpd/conf.d/zabbix.conf
启动Zabbix Server
systemctl start zabbix-server
systemctl start httpd
一次多个# systemctl start httpd.service zabbix-server.service
开机启动# systemctl enable httpd.service zabbix-server.service
检查# systemctl status httpd.service zabbix-server.service
网页配置
输入 http://10.0.0.61/zabbix
默认端口服务端10050 客户端10051
标签名字
填入的信息
完成 服务创建了一个/etc/zabbix/web/zabbix.conf.php
以后修改配置的文件 登陆的默认账户和密码Admin zabbix
修改中文和登陆密码 主题等
============================================================
客户端安装 zabbix agent 监控自己
所有需要被监控的服务器都要执行下面步骤,下面以在m01和cache01安装客户端为例:
rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
安装阿里云的zabiix源# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
yum install zabbix-agent
sed修改配置文件sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
或# vim /etc/zabbix/zabbix_agentd.conf
确认
启动systemctl start zabbix-agent.service
=============================================================
查看web页面
仪表盘 和 最新数据 图形
最新数据选择主机 默认创建有zabbix server 应用
测试现在还没有数据是因为还没有启动
# 只能在服务端m01操作,需要使用-s执行相应客户端IP
先确认m01主机能够找到客户的数据使用命令zabbix-get 默认没有yum安装
yum install zabbix-get
# zabbix_get -s 172.16.1.61 -p10050 -k 'agent.ping'
查看客户端是否可用
-p指定端口 默认客户端为10050
-k指定模块 agent.ping 看客户端是否活着 1 就是活着
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]"
===================================================
默认的zabbix server 点击启用等待 让等待加快-让系统的主机名解析
以后其他服务器的主机名也在服务端做解析
zabbix日志文件# tail -f /var/log/zabbix/zabbix_server.log
可用性ZBX为红色
点击zabbix server 修改代理为172.16.1.61 自己监控自己
现在有数据了
但有些图形会出现乱码 字体 原因
解决中文乱码
单独安装字体
yum -y install wqy-microhei-fonts
复制替换新的字体到原字体文件夹中
\cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
======================================================
在zabbix中添加新的主机
新装的服务器加入到zabbix监控中
先添加web01 zabbix镜像
# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
# yum install zabbix-agent -y
修改97行 地址为服务端ip 172.16.1.61
# vim /etc/zabbix/zabbix_agentd.conf
设置开机启动 这是 6 系统
# chkconfig zabbix-agent on
# /etc/init.d/zabbix-agent restart 重启
服务端检查 服务运行状态
# systemctl is-active httpd.service mariadb.service zabbix-server.service zabbix-agent.service
服务端设置开机启动 7 系统
# systemctl enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service
再检查服务能否接通客户端 172.16.1.7 值为1 正常
# zabbix_get -s 172.16.1.7 -p10050 -k "agent.ping"
========================================
在web添加
配置 主机 创建主机
主机
模板
搜索里输入linux 选择Template OS Linux
先点击下面的添加 再点击最下面的添加
要监控的最好在服务端添加解析
添加成功
====================================================
动手添加cache mysql
服务端配置好解析
=============================================================
自定义监控(制作模板)
zabbix 监控的数据来源是模板里的键值 相当于命令来实现的
# zabbix_get -s 172.16.1.7 -p10050 -k "system.hostname"
web01
# zabbix_get -s 172.16.1.7 -p10050 -k "agent.ping"
1
zabbix自带模板Template OS Linux (Template App Zabbix Agent)提供CPU、内存、磁盘、网卡等常规监控,
只要新加主机关联此模板,就可自动添加这些监控项。
需求:服务器登录人数不超过3人,超过3人报警
who命令显示登录用户
who|wc -l 得到登录数
userparameter_mysql.conf 文件就是用户自定义key的文件
# ll /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
自定义key能被server和agent认可
在web01的agent中注册key 键值
语法:key名字要唯一,多个key以行为分割
UserParameter=<key>,<shell command> key相当于变量 后面的就是命令或者脚本
UserParameter=login-user,who|wc -l 逗号两边没有空格
UserParameter=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上注册 (web操作)
1 创建模板
2 创建应用集:给监控项分类
3 创建监控项(item):监控的内容 -----核心
4 创建触发器:当监控项获取到的值 达到一定条件时 就触发报警
5 创建图形
6 主机关联模板
配置---模板---创建模板
配置 应用集、监控项、触发器、图形
应用集---创建应用集 相当于分类
监控项---创建监控项 键值是在客户端创建
触发器---创建触发器
图形---创建图形
测试 登录超过3个用户,收到提示报警
=========================================================
添加报警
登陆网站:http://www.onealert.com/index.html 注册
在网站菜单栏 配置---应用---创建key
查找安装目录
# grep -i alertscripts /etc/zabbix/zabbix_server.conf
# cd /usr/lib/zabbix/alertscripts
# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz
# cd oneitsm/bin/
# bash install.sh 710e4dbd-f519-8526-0176-825f8d1b3820 网站创建的key
提示输入地址 账号 密码
安装完成 配置消息 web zabbix
点击 管理---报警媒介类型
默认安装过后就配置好了
配置动作
默认发送消息给用户 一般不用配置
在http://c.onealert.com网站 配置策略
分配策略 消息就分配给自己
通知策略 微信需要绑定公众号
测试 邮件和微信都能收到系统报警!!!
=====================================================
监控图形可视化
聚合图形--创建聚合图形--编辑聚合图形
创建完成
先有聚合图形然后 幻灯片演示--创建幻灯片播放
完成!
查找别人做好的模板
https://share.zabbix.com/
==========================================================
模板的共享: https://github.com/zhangyao8/zabbix-community-repos
主机的共享
==========================================================
全网监控方案
考试目标:使用zabbix将期中架构所有集群监控
具体内容:
一、硬件、系统、网络监控
所有集群节点(所有虚拟机)都监控上
二、应用服务监控
1. 监控备份服务器,简单方法是监控rsync端口,如果有其他更佳方案可以说明;
2. 监控NFS服务器,使用监控NFS进程来判断NFS服务器正常,如果有其他更佳方案可以说明;
3. 监控MySQL服务器,简单方法监控mysql的3306端口,或者使用zabbix提供的Mysql模板,如果有其他更佳方案可以说明;
4. 监控2台web服务器,简单方法监控80端口,如果有其他更佳方案可以说明;
5. 监控URL地址来更精确的监控我们的网站运行正常;
6. 监控反向代理服务器,PPTP服务器等你在期中架构部署的服务。
7. 监控Nginx的7种连接状态。
========================================================
监控端口和进程 zabbix里自带就有
配置--模板--监控项--选择下面的键值--[键值]选择
监控端口连接情况 < > 内的内容可以省略
# zabbix_get -s 172.16.1.7 -p10050 -k "net.tcp.port[,80]"
1
监控进程 不写参数默认返回所有进程数
# zabbix_get -s 172.16.1.7 -p10050 -k "proc.num[]"
89
监控nginx 进程
# zabbix_get -s 172.16.1.7 -p10050 -k "proc.num[nginx]"
2
监控定时任务crond
# zabbix_get -s 172.16.1.7 -p10050 -k "proc.num[crond]"
1
==============================================================
监控网站
====================================================
自动发现与自动注册
自动发现:zabbix Server主动发现所有客户端,然后将客户端登记自己的小本本上,
缺点zabbix server压力山大(网段大,客户端多),时间消耗多。服务器少使用
自动注册:zabbix agent主动到zabbix Server上报到,登记;
缺点agent有可能找不到Server(配置出错)服务器多使用
被动模式:默认,都是站在agent的立场上说话,agent被server抓取数据
主动模式:都是站在agent的立场上说话,agent主动的将数据发送给Server
两种模式都是在agent上的配置文件配置的
自动发现
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,Server=172.16.1.61 (完毕)
第三步:网页上配置自动发现规则
自动发现
配置---自动发现---编辑已有的或者创建新的
[查看] 监控中---自动发现
=========================================================
找到了主机 还要 配置动作
配置---动作---[事件源]选自动发现---修改默认 或 创建新动作+操作
克隆默认 然后修改默认,新的触发条件不需要修改自动注册有条件
编辑操作
做好主机解析
========================================================
测试 已添加进来 web02
========================================================
自动注册
使用自动注册前先关掉 自动发现和动作
第一步:zabbix Server安装完毕 (完成)
第二步:zabbix agent安装完毕,需要额外增加的配置
vim /etc/zabbix/zabbix_agentd.conf
ServerActive=172.16.1.61 修改自动注册服务端的ip
# Hostname=Zabbix server 和HostnameItem 配置其一就可以了
HostnameItem=system.hostname 作用是服务端用来获取主机名的
HostMetadata=system.uname 源数据 数据的属性
6的系统重启
# /etc/init.d/zabbix-agent restart
7系统systemctl restart zabbix-agent.service
netstat -tunlp|grep zabbix
第三步:Server上做hosts解析
echo "172.16.1.21 cache01" >> /etc/hosts
第四步:网页上配置自动注册
配置---动作---[自动注册]创建自动注册 编辑动作和操作
主机没有添加上,等候时间