五 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

第四步:网页上配置自动注册

配置---动作---[自动注册]创建自动注册  编辑动作和操作

 

主机没有添加上,等候时间

 

posted @ 2018-06-28 18:01  寂静深林丶  阅读(318)  评论(0编辑  收藏  举报