Zabbix监控

zabbix:

Zabbix is the ultimate enterprise-level software designed for real-time monitoring of millions of metrics collected from tens of thousands of servers, virtual machines and network devices. Zabbix is Open Source and comes at no cost.

监控系统:硬件、软件、业务指标
    sensor:数据指标
        采样:             
        存储:
            数据:历史数据、趋势数据
        报警:
            脚本:
            媒介:
        展示:Visual

    监控数据采集通道
        SNMP:Simple Network Management Protocol
        ssh/telnet
        IPMI:
        agent:
            master/agent
        JMX:Java Management eXtensions

    NMS:
        网络监控系统      

        开监控工具:
            cacti, nagios, zabbix, ganglia
                cacti, nagios
                zabbix
                ganglia

        数据:
            历史数据:NVPS
            趋势数据

            存储系统:
                关系型数据库:MySQL
                rrd:roundrobin database
                NoSQL:redis/mongodb
                    时间序列存储

    SNMP协议:
        nms/agent
            nms: cli/gui
            agent: service

        v1
        v2c: community,public
        v3

        MIB, OID, ...

ZABBIX:
    LTS:2.2, 3.0
        long time support

    特性:
        数据采样:
            数据采集通道:snmp, ssh/telnet, agent, ipmi, jmx(java Management eXtensions)
            自定义采样机制:UserPrameter(基于agent实现)
        告警:
            升级:
                script
                notification
        数据存储:
            数据存储:mysql/pgsql
        展示:
            实时绘图:graph, screen, slide show, map

        支持模板:
        网络自动发现:
        分布式监控:
            Server <--> Proxy <--> agent/ssh/ipmi 
        API

    zabbix程序的组件:
        zabbix_server:服务端守护进程;
        zabbix_agentd:agent守护进程;
        zabbix_proxy:代理服务器,可选组件;
        zabbix_get:命令行工具,手动测试向agent发起数据采集请求;
        zabbix_sender:命令行工具,运行于agent端,手动向server端发送数据;
        zabbix_java_gateway: java网关;
        zabbix_database:MySQL或PostgreSQL;
        zabbix_web:Web GUI

    zabbix逻辑组件:
        主机组
        主机 
        监控项(item)
            key:实现获取监控的目标上的数据的命令或脚本的名称;
        应用(application):同一类监控项的集合;
        触发器(trigger):表达式;PROBLEM, OK;
        事件(event):
        动作(action):由条件(condition)和操作(operation)组件;
        媒介(media):发送通知的通道;
        通知(notification):
        远程命令(remote command):
        报警升级():
        模板(template):快速定义被监控主机的各监控项的预设项目集合;
        图形(graph):用于展示历史数据或趋势数据的图像;
        屏幕(screen):由多个graph组成;

    zabbix安装:
        设置ZBX DB:
            mysql> CREATE DATABASE zabbix CHARSET 'utf8';
            mysql> GRANT ALL ON zabbix.* TO ...;

        安装服务端:
            ~]# yum install zabbix-server-mysql-3.0.2-1.el7.x86_64.rpm zabbix-get-3.0.2-1.el7.x86_64.rpm

            注意:CentOS 7.0和7.1需要升级trousers程序包;

        安装web GUI:
            ~]# yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml
            ~]# yum install zabbix-web-3.0.2-1.el7.noarch.rpm zabbix-web-mysql-3.0.2-1.el7.noarch.rpm 

        安装agent端:
             ~]# yum install zabbix-agent-3.0.2-1.el7.x86_64.rpm zabbix-sender-3.0.2-1.el7.x86_64.rpm

    服务端数据库初始化:
        2.x:三个sql脚本;
        3.x:一个sql脚本;
            ~]# gzip  -d  create.sql.gz 
            ~]# mysql -uzbxuser -h127.0.0.1 -p zabbix < create.sql 

    zabbix server配置启动:
        配置文件:/etc/zabbix/zabbix_server.conf
        配置段:
            ~]# grep "^#####" zabbix_server.conf
            ############ GENERAL PARAMETERS #################
            ############ ADVANCED PARAMETERS ################
            ####### LOADABLE MODULES #######
            ####### TLS-RELATED PARAMETERS #######  

        通用参数:
            ListenPort=10051
            SourceIP=
            LogType=file
            LogFile=/var/log/zabbix/zabbix_server.log
            LogFileSize=0
            DebugLevel=3

            DBHost=localhost
            DBName=zabbix
            DBUser=zabbix
            DBPassword=
            DBSocket=/tmp/mysql.sock
            DBPort=3306

    配置zabbix-web:
        配置php的时区设定:
            (1) /etc/php.ini 
            (2) /etc/httpd/conf.d/zabbix.conf 
                php_value date.timezone 

        访问URL
            http://HOST/zabbix 

        安装生成的配置文件:/etc/zabbix/web/zabbix.conf.php

        登录:
            admin/zabbix 

        Monitoring
        Inventory
        Reports
        Configuration
        Administration

agent端的配置:
    ~]# yum  install zabbix-agent-3.0.2-1.el7.x86_64.rpm  zabbix-sender-3.0.2-1.el7.x86_64.rpm

    Unit file: zabbix-agent.service 
    配置文件:/etc/zabbix/zabbix_agentd.conf 
        ############ GENERAL PARAMETERS #################
        ##### Passive checks related
            被动监控相关配置
        ##### Active checks related
            主动监控相关配置,agent端主动向server周期性发送数据;
        ############ ADVANCED PARAMETERS #################
        ####### USER-DEFINED MONITORED PARAMETERS #######
            用户自定义参数
        ####### LOADABLE MODULES #######
        ####### TLS-RELATED PARAMETERS #######          

    ##### Passive checks related
        Server=IP1, IP2, ...
        ListenPort=10050
        ListenIP=0.0.0.0
        StartAgents=3

    ##### Active checks related
        ServerActive=IP1[:port], IP2[:port], ...
        Hostname=Unique_HOSTNAME
            必须与服务器配置的监控主机的主机名称保持一致;

    启动服务:
        systemctl start zabbix-agent.service 

回顾:zabbix快速入门
监控系统:
采集 --> 存储(MySQL/PGSQL/Sqlite) --> 报警 --> 可视化

zabbix:
    采集:
        agent/snmp/IPMI/jmx 

    设备:主机(hosts) --> 主机组(hostgroups)
         监控项(items) --> 应用组(applications)
         触发器(triggers, 表达式) --> trigger events
         动作(actions, CONDITIONS, OPERATIONS, RECOVERY OPERATIONS)
            OPERATIONS:
                remote command
                send message --> USERS (media)
            Media Type:

    可视化:
        graph, slide show, map 

        grafana:

Zabbix(2)

监控配置:
    术语:host groups --> host --> application --> item --> trigger --> action (conditions, operations)
            graph: 
            simple: 每个item定义完成后自动生成 
            customed:用于将多个item的数据整合于一个图形中展示             

    items: key+parameter
        key: 
            zabbix内建:
                type: 
                    agent (server:pull)
                    agent(active) (agent:push)
                    snmp v1
                    ...
            用户自定义(UserParameter)

        采集到的数据的类型:
            数值:
                整数
                浮点数 
            字符串:
                字符串
                文本

        存储的值:
            As is:不对数据做任何处理
            Delta:(simple change),本次采样减去前一次采样的值的结果
            Delta:(speed per second),本次采样减去前一次采样的值,再除以经过的时长;

    trigger:
        界定某特定的item采集到的数据的非合理区间或非合理状态:逻辑表达式 

        逻辑表达式,阈值;通常用于定义数据的不合理区间;
            OK:正常 状态 --> 较老的zabbix版本,其为FALSE;
            PROBLEM:非正常 状态 --> 较老的zabbix版本,其为TRUE;

            OK --> PROBLEM 
            Recovery:PROBLEM --> OK 

        触发器存在可调用的函数:
            nodata()
            last()
            date()
            time() 
            now()
            dayofmonth()
            ...

        Severity:严重等级
            Not classified
            Information
            Warning
            Average
            High
            Disaster

        触发器表达式:
            {hostname:key[paramters].function(arguments) 
                >, <, =, #(not equal)...
                +, -, *, /
                &, |

            {n1.magedu.com:net.if.in[eno16777736,packets].last(#1)}>15

        trigger间存在依赖关系:
            zabbix server <--> Router1 <--> Host1

     事件机制:
        四种事件源:trigger, discovery, auto registration, internal

    Media:媒介
        告警信息的传递通道;
        类型:
            Email:邮件
            Script:自定义脚本
            SMS:短信
            Jabber:
            Ez Texting:

        接收信息的目标为zabbix用户:
            需要用户上定义对应各种媒介通道的接收方式;

    Action:
        conditions: 
            多个条件之间存在逻辑关系;
        operations:
            条件满足时触发的操作;

            send message:
                (1) Media type:传递信息的通道;
                    (a) Email
                    (b) Script:报警脚本;
                        脚本放置路径:zabbix_server.conf配置文件中AlertScriptsPath参数定义的路径下;并给脚本以执行权限;
                            /usr/lib/zabbix/alertscripts/
                        zabbix服务器在调用脚本时,会向其传递三个参数:
                            $1:经由此信道接收信息的目标;即接收者
                            $2:subject
                            $3:body
                            zabbix 3.0之后的版本,此三个变量定义为内部宏:
                            {ALERT.SENDTO}
                            {ALERT.SUBJECT}
                            {ALERT.MESSAGE}

                (2) 信息接收人:
                    (a) User Groups
                    (b) Users
                        admin: 

                    Python报警脚本示例:

                        #!/usr/bin/python
                        #coding:utf-8

                        import smtplib
                        from email.mime.text import MIMEText
                        from email.header import Header
                        from email.utils import parseaddr, formataddr
                        import sys

                        def formatAddr(s):
                            name, addr = parseaddr(s)
                            return formataddr((Header(name, 'utf-8').encode(), addr))

                        def send_mail(to_list,subject,content):
                            mail_host = 'smtp.exmail.qq.com'
                            mail_user = 'USERNAME@DOMAIN.TLD'
                            mail_pass = 'YOUR_PASSWORD'
                            #以上内容根据你的实际情况进行修改
                            msg = MIMEText(content,'','utf-8')
                            msg['Subject'] = Header(subject, 'utf-8').encode()
                            msg['From'] = formatAddr('zabbix监控 <%s>' % mail_user).encode()
                            msg['to'] = to_list

                            try:
                                s = smtplib.SMTP()
                                s.connect(mail_host)
                                s.login(mail_user,mail_pass)
                                s.sendmail(mail_user,to_list,msg.as_string())
                                s.close()
                                return True
                            except Exception,e:
                                print str(e)
                                return False

                        if __name__ == "__main__":
                            send_mail(sys.argv[1], sys.argv[2], sys.argv[3])

            remote command
                功能:
                    在agent所在的主机上运行用户指定的命令或脚本;例如:
                        重启服务;
                        通过IPMI重启服务器;
                        任何用户自定义脚本中定义的操作; 

                可执行的命令类型:
                    IPMI
                    ssh 
                    telnet 
                    Custom Script
                    Global Script

                前提:
                    在agent需要完成的配置:
                        (1) zabbix用户拥有所需要的管理权限;
                            编辑/etc/sudoers文件,直接用visudo命令,注释如下行;
                            Defaults requiretty zabbix是后台执行,不能再终端执行
                            添加如下行:
                            zabbix  ALL=(ALL)  NOPASSWD: ALL

                        (2) agent进程要允许执行远程命令; 
                            编辑/etc/zabbix/zabbix_agentd.conf,设置如下配置:
                            EnableRemoteCommands=1

                            重启服务生效;

    总结:
        host groups --> host --> application --> item (key) --> trigger --> action

            (1) media type
            (2) user group/user

        action operations: 可定义为升级方式;
            send message 
            remote command

展示接口:
    graph: simple, custom
    screen:把多个graph整合于同一屏幕进行展示;
    slide show:把多个screen以slide show的方式进行展示
    map:

模板:
    主机配置模板:用于链接至目标主机实现快速监控管理;
        link, unlink, unlink and clear 

    模板可继承;

宏:macro,预设的文本替换模式;
    级别:
        全局:Administration --> General --> Macros 
        模板:编辑模板 --> Macros
        主机:编辑主机 --> Macros 
        生效的顺序为:主机-->模板-->全局
    类型:
        内建:{MACRO_NAME}
            文档:
                https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

        自定义:{$MACRO_NAME}
            命名方式:大写字母、数字和下划线;

回顾:
zabbix监控:
(1) host groups <--> hosts
(2) items:监控项 <--> applications
(3) triggers --> trigger events
OK <--> PROBLEM

    (4) actions:
        CONDITIONS:操作执行的前提条件
            非维护期间;
            由trigger定义;
        OPERATIONS:OK --> PROBLEM
            remote command:
                ssh/telnet/script/...
            send message:
                Email, SMS, Jabber, EZ Texting, Script

        RECOVERY OPERATIONS: PROBLEM --> OK

    展示方式:
        graph, screen, slide show
        map 

配置主机监控的方法:
    (a) 手工添加; 
    (b) 链接模板;
模板网址:

https://share.zabbix.com/databases/db_redis
https://github.com/adubkov/zbx_redis_template
宏:
全局宏、模板宏、主机宏;
内建宏({MACRO_NAME})、自定义宏({$MACRO_NAME})

Zabbix(3)

网络发现:
    zabbix server扫描指定网络范围内的主机;

        发现方式:
            ip地址范围;
                可用服务(ftp, ssh, http, ...)
                zabbix_agent的响应;
                snmp_agent的响应; 

        分两个阶段:
            discovery 
            actions:把discvery events当作前提条件; 

        发现:--> discovery events 
            Service, Host 

            UP/DOWN, DICOVERED/LOST 

        可采取的动作:
            send message, remote command
            add/remove host 
            enable/disable host 
            add host to group
            link  template to host
            ...

自定义key:

    item type: 不同的类型适用的接口有可能不同;有些key仅能用在指定的接口之上;
        agent
        agent(active)
        simple
        snmpv1
        snmpv2
        snmpv3
        ssh 
        ...

    接口类型:agent, ipmi, snmp, jmx

    自定义key:在zabbix agent端的配置文件上由用户通过UserParameter指令定义的key;
        zabbix_agentd.conf文件中
            UserParameter=<key>,<command>
    例子:

vim /etc/zabbix/zabbix_agentd.d/UserParameter.conf
UserParameter=memory.free,free|awk '/^Mem/{print $4}'
UserParameter=memory.used,free|awk '/^Mem/{print $3}'
UserParameter=memory.share,free|awk '/^Mem/{print $5}'
systemctl restart zabbix-agent
在server上进行测试:
zabbix_get -s 172.18.62.62 -k 'memory.free'
zabbix_get -s 172.18.62.62 -k 'memory.used'
zabbix_get -s 172.18.62.62 -k 'memory.share'
定义一次调用多个key
vim UserParameter2.conf
UserParameter=memory.usage[*],awk '/^$1/{print $$2}' /proc/meminfo
systemctl restart zabbix-agent
zabbix_get -s 172.18.62.62 -k 'memory.usage[MemFree]'
zabbix_get -s 172.18.62.62 -k 'memory.usage[MemTotal]'
课外练习:监控nginx服务的各状态信息(status)
监控php-fpm的各状态信息
监控redis的各状态信息

Web监控:
    监控指定的站点的资源下载速度,及页面响应时间,还有响应代码;

        web Scenario
            web page:

    内建key:
        web.test.in[Scenario,Step,bps]:传输速率
        web.test.time[Scenario,Step]:响应时长
        web.test.rspcode[Scenario,Step]:响应码

主动/被动 检测:
    被动检测:相对于agent而言;agent,  server向agent请求获取配置的各监控项相关的数据,agent接收请求、获取数据并响应给server;
    主动检测:相对于agent而言;agent(active),agent向server请求与自己相关监控项配置,主动地将server配置的监控项相关的数据发送给server;
        agent端所需要基本配置:
            ServerActive=
            Hostname=       将主机名写死
            HostnameItem=   监控项获取动态主机名

zabbix_sender发送数据:
    zabbix server上的某主机上,直接定义Item时随便定义一个不与其它已有key冲突的key即可,即item type为“zabbix trapper";

    zabbix_sender
        -z zabbix_server_ip
        -p zabbix_server_port
        -s zabbix_agent_hostname
        -k key
        -o value

基于SNMP监控:

    SNMP:简单网络管理协议;
        agent/nms

        读(get, getnext)、写(set)、trap(陷阱);

        161/udp
        162/udp

    SNMP:
        v1: 1989
        v2c: 1993
        v3: 1998 

    MIB:Management Information Base
    OID:Object ID

    Linux启用snmp的方法:
        # yum install net-snmp net-snmp-utils 
        配置文件:
            /etc/snmp/snmpd.conf
            定义ACL 

            .1.3.6.1.2.1.
                1.1.0:系统描述信息,SysDesc
                1.3.0:监控时间, SysUptime
                1.5.0:主机名,SysName
                1.7.0:主机提供的服务,SysService

                2.1.0:网络接口数目
                2.2.1.2:网络接口的描述信息
                2.2.1.3:网络接口类型
                ……

            view    systemview    included   .1.3.6.1.2.1.1 #分支
            view    systemview    included   .1.3.6.1.2.1.2  # 网络接口的相关数据
            view    systemview    included   .1.3.6.1.4.1.2021  # 系统资料负载,memory, disk io, cpu load 
            view    systemview    included   .1.3.6.1.2.1.25.1.1                

        启动服务:
            systemctl  start  snmpd.service 

    测试工具:
        # snmpget -v 2c  -c  public  HOST  OID
        # snmpwalk  -v 2c -c public  HOST  OID 

    Key <Unique string to be used as reference to triggers> For example, “my_param”.

JMX:
    tomcat主机设置:
        监控tomcat:
            /etc/sysconfig/tomcat或/etc/tomcat/tomcat.conf,添加

        CATALINA_OPTS="-Djava.rmi.server.hostname=TOMCAT_SERVER_IP -Djavax.management.builder.initial= -Dcom.sun.management.jmxremote=true   -Dcom.sun.management.jmxremote.port=12345  -Dcom.sun.management.jmxremote.ssl=false  -Dcom.sun.management.jmxremote.authenticate=false"

    zabbix-java-gateway主机设置:
        安装 zabbix-java-gateway程序包,启动服务;

    zabbix-server端设置(需要重启服务):
        JavaGateway=172.16.0.70
        JavaGatewayPort=10052
        StartJavaPollers=5

    添加监控项:
        jmx[object_name,attribute_name]
            object name - 它代表MBean的对象名称
            attribute name - 一个MBean属性名称,可选的复合数据字段名称以点分隔

        示例:
            jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

    jmx的详细文档:
        https://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html

Zabbix Proxy的配置:
    server-node-agent 
    server-proxy-agent

    1、配置proxy主机:
        (1) 安装程序包 
            zabbix-proxy-mysql zabbix-get 
            zabbix-agent zabbix-sender 

        (2) 准备数据库
            创建、授权用户、导入schema.sql;
            create database zabbix_proxy character set 'utf8';
grant all on zabbix_proxy.* to zabbix@localhost identified by 'zabbix';
grant all on zabbix_proxy.* to zabbix@127.0.0.1 identified by 'zabbix';
        (3) 修改配置文件
            Server=
                zabbix server主机地址;#注意不能写2个以上
            Hostname=
                当前代理服务器的名称;在server添加proxy时,必须使用此处指定的名称;
                需要事先确保server能解析此名称;
            DBHost=
            DBName=
            DBUser=
            DBPassword=

            ConfigFrequency=10
            DataSenderFrequency=1
        在代理到的服务器添加配置:

vim /etc/zabbix/zabbix_agentd.conf
Server=172.18.62.61,172.18.62.62
ServerActive=172.18.62.61,172.18.62.62
systemctl restart zabbix-agent
2、在server端添加此Porxy
Administration --> Proxies

    3、在Server端配置通过此Proxy监控的主机;

    注意:zabbix agent端要允许zabbix proxy主机执行数据采集操作: 
        Server=

zabbix performace tuning:
    nvps:new values per second 
        100w/m, 15000/s

    调优:
        Database:
            历史数据不要保存太长时长;
            尽量让数据缓存在数据库服务器的内存中;
        触发器表达式:减少使用min(), max(), avg();尽量使用last(),nodata();
        数据收集:polling较慢(减少使用SNMP/agentless/agent);尽量使用trapping(agent(active));
        数据类型:文本型数据处理速度较慢;尽量少收集类型为text或string类型的数据;多使用类型为numeric的;

    zabbix服务器的进程:
        (1) 服务器组件的数量;
            alerter, discoverer, escalator, http poller, hourekeeper, icmp pinger, ipmi polller, poller, trapper, configration syncer, ...

            StartPollers=60
            StartPingers=10
            ...
            StartDBSyncer=5
            ...

        (2) 设定合理的缓存大小 
            CacheSize=8M
            HistoryCacheSize=16M
            HistoryIndexCacheSize=4M
            TrendCacheSize=4M
            ValueCacheSize=4M

        (3) 数据库优化
            分表:
                history_*
                trends*
                events*

其它解决方案:

grafana:展示
collectd:收集
influxdb:存储

grafana+collectd+influxdb

prometheus:
    exporter:收集
    alertmanager:
grafana:展示

openfalcon  

听课总结:
1、信息系统可以分为4个层:
基础支撑层:运维系统,硬件
数据管理层:DBA工作,数据存储系统
应用层:如web服务前端、发短信的服务器
业务层:设计业务流程以进行程序的相互调用
监控系统是尽可能对所有层每个参数状态的变化有监控功能,不间断的获取业务指标数据

2、监控系统应该有如下功能:
数据指标采集:每隔一定时间进行
数据存储:历史数据、聚合数据(将历史数据进行处理如取一天的平均值等);前者很快删
除,后者保存时间长,以方便进行数据分析;
数据可视化:直观显示数据趋势
告警:数据指标不能超出某个阈值区间,超出就报警

3、最早的监控系统
snmp:简单网络管理协议,是上个世纪的监控系统,是依靠Agent/NMS进行数据的获取
的;由于版本很老,故而很是通用,即使在路由器和交换机中也嵌入了此协议,以方便获取
数据;
数据采集:
Agent/NMS
Agent:可以看做是一个远程的数据管理平台
Agentless(ssh,telnet..) 直接通过协议访问
JMX:java 管理扩展,是用来采集jvm的相关指标
数据存储:SQL Databases、NoSQL
数据可视化:Grafana通用可视化组件
告警:系统的功能,不能依赖外部组件实现

4、监控系统的介绍
cacti(rrd存储数据,mysql配置要存储哪些指标)+nagios(告警系统,很难使用)
zabbix:独立完整的监控系统
数据采集:Agent、ssh/telnet、snmp、ipmi、jmx
数据存储:mysql进行分表,隔一段时间保存一张
可视化界面:graph、screen、slideshow 是将graph组件显示各个指标的图形界面
拼在一个屏幕上,而slideshow组件是切屏显示;界面很水,但是可以使用Grafana插
件;
告警:alert组件、告警升级;
Prometheus:此监控系统处理数据能力强大,但可视化界面不好看;
数据采集:cAdvisor,heapster(如何采集数据)
数据存储:influxed
可视化:grafana

5、zabbix的介绍
Agent/Server
被监控主机:Agent 有passive和active2种模式,相对于此。
服务器:Server
存储:MYSQL/PGSQL
web GUI:php
AMP,NMP
管理、展示
网络发现机制,定期扫描添加设备;之后根据是什么应用服务来用指标模板添加要
监控的指标;模板还可以通过变量替换来实现更大的适用性;
测试使用包
zabbix-sender-3.4.9-1.el7.x86_64.rpm agent主动发监控数据给server
zabbix-get-3.4.9-1.el7.x86_64.rpm server主动从客户端拉数据
zabbix-proxy-mysql-3.4.9-1.el7.x86_64.rpm 通过代理分开收集数据

6、Zabbix architecture

7、Zabbix Architecture

8、实验:实现zabbix的server的安装 不太懂
yum install mariadb-server
vim /etc/my.cnf.d/server.cnf
skip_name_resolve = ON
innodb_file_per_table = ON
systemctl restart mariadb
mysql_secure_installation
mysql -uroot -p123789
rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-
2.el7.noarch.rpm 创建zabbix的yum仓库
ls /etc/yum.repos.d/
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
ls /usr/share/doc/zabbix-server-mysql-3.4.9/
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
初始化zabbix数据库;
mysql -uzabbix -p -zabbix
cd /etc/zabbix/
ls
vim zabbix_server.conf
DBPassword=123789
ss -ntl
systemctl start zabbix-server
ss -ntl
cd /etc/httpd/conf.d/
ls
vim zabbix.conf
php_value date.timezone Asia/Shanghai 修改时区
ss -ntl
systemctl start httpd
ss -ntl
http://172.18.62.61/zabbix 访问页面进行zabbix设置
The default user name is Admin, password zabbix.

9、查看内存的命令
vmstat
free
cat /proc/meminfo

10、实验:实现zabbix的agent的配置
195 rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-
2.el7.noarch.rpm 配置zabbix仓库
ls /etc/yum.repos.d/
yum install zabbix-agent zabbix-sender
cd /etc/zabbix/
ls
grep "^####" zabbix_agentd.conf
vim zabbix_agentd.conf
Server=172.18.62.61 zabbix的server地址
ServerActive=172.18.62.61
Hostname=master.magedu.com
ss -ntl
systemctl start zabbix-agent
ss -ntl
ifconfig
http://172.18.62.61/zabbix 之后在浏览器进行配置
先创建主机,并建立一个新的主机组
之后点击item,进行item的创建,并新建应用,进行预处理

11、监控流程

item监控项有2个模式active和passive,进行数据推送到服务端。

item进行监控的选择要和主机选择的信道相关,如agent接口、snmp接口
item监控项要定义key,key直接和数据获取的命令相关联;
ssh或telent方式获取数据和信道无关,不用定义监控接口;
触发器之间具有相互依赖关系。如果将一个触发器定义为监控主机状态,那么另一个依
赖它的触发器在主机故障引起的数据变化时不会进行触发操作;

12、snmp的文件程序的说明
rpm -ql net-snmp
/usr/lib/systemd/system/snmpd.service 运行在被监控端
/usr/lib/systemd/system/snmptrapd.service 运行在监控端
rpm -ql net-snmp-utils
/usr/bin/snmpbulkget 获取多个分支的信息
/usr/bin/snmpbulkwalk 获取多个分支的分支下的信息
/usr/bin/snmpget 获取单个分支信息
/usr/bin/snmpgetnext 获取分支的下一个分支信息
/usr/bin/snmpwalk 如果一个分支下还有信息,就进行此分支下信息的遍历

转载于:https://blog.51cto.com/angwoyufengtian/2126384

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值