• zabbix全网监控


    为什么要监控

    • 运维的职责
      1.保障企业数据的安全可靠。
      2.为客户提供7*24小时服务。
      3.不断提升用户的体验。
    • 在关键时刻,提前提醒我们服务器要出问题了
    • 当出问题之后,可以便于找到问题的根源

    拿到公司服务器的管理权之后,

    第一件事,备份

    第二件事,监控

    数据有故障了,服务有问题了,一些内容挂掉了,比如web服务器,或者是硬件的服务器,raid,磁盘有故障了也会报警,用户访问网站,感觉慢了,也可以获得相应的提示

    这是一个非常重要的部分

    你们公司监控是怎么做的-面试题

    • OSI/ISO7层协议进行回答
    • 业务流程、用户访问网站的流程进行补充

     

    监控工具

    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简介

    zabbix是一个基于WEB界面的,提供分布式系统监视以及网络监视功能的企业级的开源解决方案

    官网:http://www.zabbix.com

    已经有20年历史,

    web界面是基于PHP的,所以需要准备LNMP或者LAMP的环境

    软件是c语言的

    zabbix的架构图

     zabbix_proxy 在大型架构中作为代理使用,将分部服务器的情况汇总发送到总部

    zabbix安装以及部署

    先做环境检查

    从CentOS7模板机全新克隆一台新主机
    IP规划为10.0.0.61/172.16.1.61,主机名为m01
    注册账号:http://c.onealert.com/console//ucid/regist.jsp

    账号用于接受报警

    安装zabbix服务端

    本次使用yum安装,编译安装留为作业

    官网---download

    官方安装说明中可以找到下面这些信息和安装步骤

    版本号中的LTS指的是长时间维护版本

    或者找zabbix官方源repo.zabbix.com----找到有release的,复制链接地址

    # 安装Zabbix官方源
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    yum makecahe fast  # 快点缓存
    # 安装zabbix,httpd,php
    yum install zabbix-server-mysql zabbix-web-mysql httpd php -y

     yum安装数据库

    数据库因为用的是centos7,MySQL是正常装不上的,需要配置MySQL源或者二进制安装

    所以,偷懒安装mariadb(本质上基本和mysql是一样的)

    # 安装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';
    创建用户的时候,不用flush跟新信息,跟新只在修改用户信息的时候 exit
    # 导入数据库sql文件,官方安装说明中可以找到这些信息和安装步骤 zcat /usr/share/doc/zabbix-server-mysql-3.0.25/create.sql.gz|mysql -uzabbix -pzabbix zabbix

     zcat 命令是显示gz压缩包内容的软件

    请根据自己的zabbix软件版本 修改zcat的文件目录

    配置zabbix server

    # 配置zabbix Server连接mysql
    sed -i.ori '115a DBPassword=zabbix' /etc/zabbix/zabbix_server.conf
    # 修改apache-php配置,因为我们是自动安装,他会自动创建一个虚拟主机
    # 我们修改下配置文件,添加时区,否则后面打开web页面安装zabbix的时候会报错
    sed -i.ori '18a php_value date.timezone Asia/Shanghai' /etc/httpd/conf.d/zabbix.conf

    启动zabbix server

    systemctl start zabbix-server  # 启动zabbix
    systemctl start httpd  # 启动apache

    网页配置

    浏览器中访问10.0.0.61/zabbix 。记得用自己的IP

    进入页面按照指令操作。

    默认的账号Admin密码zabbix

    进入主页,单击右上角的小人,修改显示语言和密码

    zabbix开始监控状态-安装配置zabbix-agent

    zabbix客户端就是zabbix agent

    国内源:搜索

    选择yum源的时候注意版本号,有的是centos6有的是7

    可以直接安装agent,但是有一些依赖可能装不上

    选择release最为稳妥

    所有需要被监控的服务器都要执行下面步骤,下面以在m01和cache01安装客户端为例:
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-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

    客户端测试

    此时,还不能在web页面张查看监控状态

    需要先在客户端测试确认一下数据,需要用到zabbix-get

    # 只能在服务端m01操作,需要使用-s执行相应客户端IP
    yum install zabbix-get -y
    # agent.ping 表示是否在线 1表示在线
    [root@m01 doc]# zabbix_get -s 172.16.1.61 -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]"

    web页面上怎么看?

    配置----主机----将 zabbix server 启用--- 当可用性 都变成绿色,就表名监控上线

    等待......如何加快(ping 主机名 可以解析)

    等了很久,看一下日志吧...(/var/log/zabbix/zabbix_server.log)

    我们等来了一个错误,意思是,客户端无法访问服务端,是监控IP设置的问题

    点击Zabbix server 将 agent代理程序的接口 这一项下面的 ip地址改为172.16.1.61,跟新保存

    过一会就变成绿色了,就可以查看监控中---最新数据、图形等

    因为中文字体的原因,有些地方会乱码,改成英文就行了

    解决乱码问题,单独安装字体就可以了,不断地尝试,发现某个字体可用

    yum -y install wqy-microhei-fonts
    将可用字体,复制到zabbix下 cp
    /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

    添加一台被监控服务器主机

    现在web01服务器上安装zabbix agent 客户端

    清华或者阿里软件镜像站------找到zabbix----找到版本-----选择rhel----选择6(web01是centos6的系统)----选择64位----找到release----复制链接地址

    在Linux中加入yum源

    [root@web01 ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/3.4/rhel/6/x86_64/zabbix-release-3.4-1.el6.noarch.rpm
    
    [root@web01 ~]# yum install zabbix-agent -y
    
    以后这些操作要交给kickstart和cobbler,装完系统就装上zabbix-agent
    #修改一下服务端的IP地址
    第97行 Server = 172.16.1.61
    或者使用sed -i.ori ''
    sed -i.ori 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_agentd.conf
    #将zabbix 设置为 开机自启动,并重启
    [root@web01 ~]# chkconfig zabbix-agent on
    [root@web01 ~]# /etc/init.d/zabbix-agent restart
    Shutting down Zabbix agent:                                [FAILED] 
    Starting Zabbix agent:                                     [  OK  ]

    在m01 zabbix的服务端上检查,这些服务都是要启动的,而且要开机自启动

    [root@m01 doc]# systemctl is-active httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
    active
    active
    active
    active
    [root@m01 doc]# systemctl is-enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
    Unknown operation 'is-enable'.
    [root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
    disabled
    disabled
    disabled
    enabled
    [root@m01 doc]# systemctl enable httpd.service mariadb.service zabbix-server.service zabbix-agent.service 
    [root@m01 doc]# systemctl is-enabled httpd.service mariadb.service zabbix-server.service zabbix-agent.service
    enabled
    enabled
    enabled
    enabled

    在服务端检查一下是不是在线,可以连接

    [root@m01 doc]# zabbix_get -s 172.16.1.7 -p 10050 -k 'agent.ping'
    1

    在web界面中  配置----主机----创建主机

    主机名称:      主机名
    
    可见名称:      随意设置,知道意思就行,
    
    群组:         最好设置一个群组,方便批量管理
    
    agent代理程序的接口:     172.16.1.7 端口号不用改
    
    下面的SNMP、JMX、IPMI暂时不用管

    接下来 点击 模板选项卡

    不用点击选择,在搜索框中输入linux ,选择Template OS linux-----点击小的添加----点击添加

    保证在m01上能够解析web01 的名字   -----   172.16.1.7 web01

    注:实际做的时候,我没有在host中解析web01 也连上了....后面有问题再说吧,

    继续添加一台服务器cache01

    都连接上了

    如何快速添加主机及键值

    随便选择一个,然后最下面有一个克隆,修改一下主机名和IP

    模板中有什么呢?

    可以查看监控项中的键值,就是zabbix_get 命令中的-k参数 中的k值,是获取数据的本质

    自定义创建键值

    也叫作自定义监控,在模板提供的键值中没有我们需要的数据时,我们要自己做键值

    zabbix自带模板Template OS Linux (Template App Zabbix Agent)
    提供CPU、内存、磁盘、网卡等常规监控,只要新加主机关联此模板,就可自动添加这些监控项。 需求:服务器登录人数不超过3人,超过3人报警 1、获取登陆服务器人数
    [root@web01 ~]# who
    root     pts/0        2019-03-16 15:49 (10.0.0.253)
    2、统计
    [root@web01 ~]# who|wc -l
    1
    3、将命令放在/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 中
    这是用来放置用户自定义监控项的,用户可以在这个目录中写自己的.conf文件
    4、在agent注册key
    # 语法:key名字要唯一,多个key以行为分割
    UserParameter=<key>,<shell command>
    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 
    centos6中重启
    /etc/init.d/zabbix-agent restart
    # 在server检测 # zabbix_get -s 172.16.1.21 -p 10050 -k "login-user"
    自定义key能被server和agent认可

    WEB页面中操作

    1. 创建模板:填好名称、群组,就可以保存了
    2. 创建应用集:给监控项(item)分类
      1. 添加一个user,表示用户相关的
    3. 创建监控项:监控的内容
      1. 点击监控项---创建监控项---填写内容(历史时长短一点,趋势时长可以长到365d)
    4. 创建触发器:当监控项获取到的值 达到一定条件时 就触发报警
      1. 名称要表达清楚报警内容  login.user bigger than 3
      2. 表达式要 选择好 {fist_model_web:login.user.last()}>3 这是选择后自动生成的
      3. 点击添加
    5. 创建图形
      1. 在选中监控项后,的功能下拉框选最大值
      2. 绘图风格选先
      3. 其他随意
    6. 主机关联模板
      1. 配置---主机---web01---模板---添加之前做好的模板

    处理报警:在设置的触发器中有一项允许手动关闭,在收到报警后,我们可以在确认事件中关闭报警

    添加报警

    报警也可以在web中设置,就在主页小人处

    我们还可以通过网站设置报警,然后等着报警信息,就不用一直盯着页面了

    登陆网站:http://www.onealert.com/index.html 注册账号
    
    报警的本质:
    什么时候发邮件:当状态改变的时候才会发邮件
    好--坏
    坏--好

    如何查找安装报警脚本的路径?

    [root@m01 doc]# grep -i alertscript /etc/zabbix/zabbix_server.conf
    ### Option: AlertScriptsPath
    # AlertScriptsPath=${datadir}/zabbix/alertscripts
    AlertScriptsPath=/usr/lib/zabbix/alertscript

    安装报警插件,下载地址和安装命令都是报警网站提供的

    [root@m01 alertscripts]# wget http://www.onealert.com/agent/release/oneitsm_zabbix_release-1.2.0.tar.gz
    ...下载过程略...
    [root@m01 alertscripts]# tar -zxf oneitsm_zabbix_release-1.2.0.tar.gz
    [root@m01 alertscripts]# cd oneitsm/bin
    [root@m01 bin]# bash install.sh 42dd9ef9-cc1c-8def-e95a-d20526a5341f
    ./log.sh: line 6: /usr/lib/zabbix/alertscripts/oneitsm/bin/oneitsm.conf: No such file or directory
    start to create config file...
    Zabbix管理地址: 172.16.1.61
    Zabbix访问失败,请重新输入.
    Zabbix管理地址: 10.0.0.61
    Zabbix访问失败,请重新输入.
    Zabbix管理地址: 10.0.0.61/zabbix   # 地址 zabbix的WEB页面的地址
    Zabbix管理员账号: Admin
    Zabbix管理员密码: 
    start to auth by zabbix admin user and password...
    ...安装过程略...
    create action success!
    安装成功.

    登陆zabbix的WEB界面配置

    管理---报警媒介类型---已经配置好了!!

    在onealert的配置下中有一个分配策略---就是报警了分配给谁

    聚合图形

    同时看几个数据的图形

    聚合图形中还有幻灯片演示

    现有聚合图形,才能创建幻灯片

    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种连接状态。

    项目一的模板都有

    项目二中的端口、进程。可以进入任意模板查看,都有

    项目二中的第5个检测URL,自定义web检测

      创建web场景

    项目二中的第6个检测端口+进程

    项目二中的第7个Nginx的7中链接状态,用状态模块进行配置,

      1、写7行(简单粗暴的方法)

      2、写脚本

    自动发现与自动注册

    自动发现: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  (完毕)
    第三步:网页上配置自动发现规则

    配置---自动发现---新建或者使用已经有的

    修改IP范围---172.16.1.1-10,172.16.1.45多个用,号分割

    默认本质上使用的是system.uname,也可以添加新的

    设置唯一性

    更新或者保存,启用

    ------------------------------------------------------------------------------

    配置---动作---事件源选择‘自动发现’---创建或者修改原有的,也可以克隆

    其中,新的触发条件可以不写,因为在自动发现中已经设置了

    在操作选项卡里面,添加新的动作操作(添加主机和启用主机)

    完成后,跟新启用

    什么时候算是完成自动发现了呢,在自动发现中显示主机名就算成功了,然后会出现在主机列表中

    自动注册(主动模式)

    把之前的自动发现关闭

    第一步:zabbix Server安装完毕 (完成)
    第二步:zabbix agent安装完毕,需要额外增加的配置
        vim /etc/zabbix/zabbix_agentd.conf
        ServerActive=172.16.1.61
        # Hostname=Zabbix server  和下面的HostnameItem配置一个就行
        HostnameItem=system.hostname # 定义获取服务器主机名的方式
      HostMetadataItem=system.uname # 主机的源数据
       systemctl restart zabbix
    -agent.service
       重启centos6的方式/etc/init.d/zabbix-agent restart
    netstat
    -tunlp|grep zabbix 第三步:Server上做hosts解析,解析是在这里发挥作用的 echo "172.16.1.21 cache01" >> /etc/hosts 第四步:网页上配置自动注册   配置----动作---自动注册(事件源)
      动作-触发条件 设置 成 主机元数据 似 Linux(手打的)
      操作-添加主机---添加到群组---链接到模板
      添加
    主机没有添加上,等候时间

    分布式监控

    Zabbix Server -------->Zabbix agent (只能同一个局域网监控)
    
    分布式监控:
    a. 分担压力,降低负载
    b. 多机房监控

    等于是给各个分区的服务器安排了一个领导,层层汇总

    环境准备

    做好快照
    
    机器准备:
    Zabbix Server m01            监控中心
    Zabbix Proxy  web01         分中心领导
    Zabbix Agent  web01 web02     客户端

    开始操作,将之前的自动发现和自动注册都关闭

    第一步:在代理机web01安装zabbix proxy  
    rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
        
    yum -y install zabbix-proxy-mysql 
    
    第二步:安装数据库
    zabbix  proxy也需要数据库,这个数据库不是用于存储监控数据的 只是用于存储配置信息
    # 安装数据库
    yum -y install mariadb-server
    systemctl start mariadb.service
    
    #建库 创建用户授权
    mysql
    
    create database zabbix_proxy character set utf8 collate utf8_bin;
    grant all privileges on zabbix_proxy.* to zabbix@'localhost' identified by 'zabbix';
    # 将多余的空的用户删除
    drop user “‘@’localhost”;
    drop user “‘@’web01”;
    # 跟新
    flush privileges;
    exit
    # 导入数据库文件 zcat /usr/share/doc/zabbix-proxy-mysql-3.0.13/schema.sql.gz |mysql -uzabbix -pzabbix zabbix_proxy 第三步: 配置zabbix proxy,并在zabbix网页登记 # 配置zabbix proxy连接数据库 sed -i.ori '162a DBPassword=zabbix' /etc/zabbix/zabbix_proxy.conf systemctl start zabbix-proxy.service # 修改Server sed -i 's#Server=127.0.0.1#Server=172.16.1.61#' /etc/zabbix/zabbix_proxy.conf # 修改hostname,确保这个名字是唯一的,不用web01是因为,web01要给下面的客户端使用
    # 这个hostname,一定要能在m01中解析,即最顶端的老大
    sed
    -i 's#Hostname=Zabbix proxy#Hostname=proxy-web01#' /etc/zabbix/zabbix_proxy.conf
    将172.16.1.7      web01  proxy-web01 添加在m01的 host文件中 systemctl start zabbix
    -proxy.service Centos6中的重启方法/etc/init.d/zabbix-proxy start(第一次启动所以使用的start
    ### 问题 ###
    # 查看zabbix-proxy日志发现,一只连接不上数据库,它连接的的是/var/lib/mysql/mysql.sock
      # 在/etc/zabbix/zabbix_proxy.conf中的默认的是/tmp/mysql.sock
      # 我们需要将它启动,把配置文件中DBSocket前面的# 删掉
    继续重启
    第四步:web页面设置
    管理---agent代理程序---创建代理
    agent代理程序名称:要和 Hostname=proxy-web01 一样
    把客户机加上
    添加 第五步:客户端agent 指向 proxy [root@web01
    ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.61 ServerActive=172.16.1.61 [root@web01 ~]# sed -i 's#172.16.1.61#172.16.1.7#g' /etc/zabbix/zabbix_agentd.conf [root@web01 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf Server=172.16.1.7 ServerActive=172.16.1.7
    # 文件中的Hostname 要和 页面上的一致,即本服务器的hostname
    [root@web01 ~]# systemctl restart zabbix-agent.service

    把客户端服务器hosts中的解析本机的去掉??

    主机的名字只需要在proxy和m01上解析就可以了

    SNMP监控

    主要用来监控网络设备,也可以用来监控服务器

    只需要在网络设备中开启SNMP监控即可

    小结:前面所讲内容全部属于zabbix agent方式监控
    
    当前场景:无法安装agent,通过snmp监控
    
    snmp :simple network manager protocol 简单网络管理协议
    # 在m01下,安装软件 yum
    -y install net-snmp net-snmp-utils 配置snmp sed -i.ori '57a view systemview included .1' /etc/snmp/snmpd.conf
    意思是开启被读取的权限
    systemctl start snmpd.service 默认的端口是161 使用SNMP [root@db01
    ~]# snmpwalk -v 2c -c public 127.0.0.1 sysname # snmpwalk 类似 zabbix_get # -v 2c 指定使用snmp协议的版本 snmp分为v1 v2 v3 # -c public 指定暗号 # sysname 类似zabbix的key 键值中的键,还有很多其他的 OID

    怎么通过snmp协议来监控呢?

    在web页面中选择主机。在设置中的SNMP接口处添加

    它和agent的区别是不支持自定义监控

    模板也要改,把原来的linux os 取消链接。添加Template SNMP OS Linux

    还是不行的话,点击原来的先添加再取消并清理,然后保存

    补充:web监测的时候,要把SNMP的模板删除,换成之前用的普通的

    最核心的部分是监控的体系部分,一定要作为自己的必杀技,搞定

      

  • 相关阅读:
    sql 修改表名、列名、列类型
    .Net WinForm下配置Log4Net(总结不输出原因)
    ubuntu20.04 搭建门罗币节点
    python2 和 python3里StringIO和BytesIO的区别
    java.lang.IllegalArgumentException: java.lang.ClassCastException
    iphoneX安全边界
    ios中禁用回弹效果
    将nodejs回调方法变为promise
    实现trim方法
    flex实现三个div上中下布局
  • 原文地址:https://www.cnblogs.com/yxiaodao/p/10540099.html
Copyright © 2020-2023  润新知