Linux-Zabbix3.4详解

zabbix:
    Version:
        LTS:Long Time Support(下载LTS版本,本例为zabbix3.4)

zabbix程序组件:
    zabbix_server:服务端守护进程
    zabbix_agent:agent守护进程
    zabbix_proxy:代理服务器,可选(分布式监控)
    zabbix_database:存储系统,Mysql/PGSQL
    zabbix_web:WEB GUI
    zabbix_get:命令行工具,测试向agent端发起数据采集请求
    zabbix_sender:命令行工具,测试向server端发送数据
    zabbix_java_gateway:java网关(JMX Java Management eXtension)

zabbix逻辑组件:(或者称为zabbix术语)
    主机组(host groups)
    主机(hosts)
    应用(applications)
    监控项(items)
    触发器(triggers)
    事件(events)
    动作(action):条件(conditions)和操作(operations)
    媒介(media):发送通知的通道
    通知(notifications)
    远程命令(remote command)
    报警升级(escalation)
    模板(templates)
    图形(graph)
    屏幕(screens)
    幻灯(slide show)


zabbix安装配置:
    zabbix server安装配置:
        1.安装mariadb数据库:
            创建zabbix数据库并创建授权用户:
                CREATE DATABASE zabbix CHARSET 'UTF8';
                创建本地和远程授权用户:
                    GARANT ALL ON zabbix.* TO 'zbxuser'@'192.168.1.%' identified by 'zbxpass';
                    GRANT ALL ON zabbix.* TO 'zbxuser'@'localhost' IDENTIFIED BY 'zaxpass';
                    FLUSH PRIVILEGES;
        2.安装server端:
            上传对应的软件包到server端,设置本地yum源
            此处安装的zabbix版本为3.4.8-1(注:server端安装agent方便监控本机,未安装zabbix-get)
            yum -y install zabbix-server-mysql zabbix-server-web zabbix-agent
            rpm -ql zabbix-server-mysql #需要用的的文件有下面三个
                /etc/zabbix/zabbix_server.conf      #配置文件
                /usr/lib/systemd/system/zabbix-server.service       #服务文件
                /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz       #数据库脚本,zabbix3.0的脚本只有一个
            导入数据库脚本:
                解压脚本文件:
                    gzip -d /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql.gz
                导入脚本文件:
                    mysql -uzbxuser -pzbxpass zabbix < /usr/share/doc/zabbix-server-mysql-3.4.8/create.sql
        3.zabbix server配置启动:
            备份配置文件:
                cp zabbix_server.conf zabbix_server.conf.bak
            配置段:
                grep "^######" /etc/zabbix/zabbix_server.conf
                    ############ GENERAL PARAMETERS #################       # 全局(通用)配置
                    ############ ADVANCED PARAMETERS ################       # 高级配置
                    ####### LOADABLE MODULES #######                        # 可装载模块
                    ####### TLS-RELATED PARAMETERS #######                  # ssl加密

                通用配置项:
                    ListenPort=10051    # 默认端口10051
                    SourceIP=       # 如果服务器只有一个IP不需要设定,若有多个,填写对客户端授权认证的IP
                    LogType=file        # 日志格式
                    LogFile=/var/log/zabbix/zabbix_server.log       # 服务端日志文件位置
                    LogFileSize=0           # 是否一直使用/var/log/zabbix/zabbix_server.log记录日志,0表示一直使用
                    DebugLevel=3        # 日志等级
                    PidFile=/var/run/zabbix/zabbix_server.pid       # zabbix server进程文件
                    DBHost=localhost        # 数据库IP
                    DBName=zabbix           # 数据库名称
                    DBUser=zabbix           # 连接数据库用户
                    DBPassword=             # 密码
                    DBSocket=/tmp/mysql.sock        # 数据库socket文件
                    DBPort=3306             # 数据库端口
            服务启动:
                查看trousers包的版本是否大于0.3.12,如果不大于,可能无法启动,需要升级trousers
        4.zabbix web配置:
            (1)解决依赖:
                yum install httpd php php-mysql php-mbstring php-gd php-bcmath php-ldap php-xml -y
            (2)安装Web GUI:
                yum install zabbix-web zabbix-web-mysql -y
            (3)配置php时区参数:
                vim /etc/httpd/conf.d/zabbix.conf
                    改:php_value date.timezone Europe/Riga
                    为:php_value date.timezone Asia/Shanghai     # 修改时区为亚洲/上海
            (4)启动web服务:
                systemctl start httpd
            (5)访问zabbix web:
                http://localhost/zabbix
                安装完的配置文件:/etc/zabbix/web/zabbix.conf.php
                登录的管理员:
                    用户名:admin
                    密码:zabbix
            (6)菜单:
                    Monitoring
                    Inventory
                    Reports
                    Configuration
                    Administration
        5.zabbix agent配置:
            (1)安装:
                yum install zabbix-agent zabbix-sender -y
                rpm -ql zabbix-agent
                    /etc/zabbix/zabbix_agentd.conf          # 配置文件
                    /usr/lib/systemd/system/zabbix-agent.service        # 服务文件
            (2)配置:
                grep -i "^#####" /etc/zabbix/zabbix_agentd.conf
                    ############ GENERAL PARAMETERS #################
                    ##### Passive checks related    # 被动模式:即客户端为被动,服务器端为主动
                    ##### Active checks related         # 主动模式,反之
                    ############ ADVANCED PARAMETERS #################
                    ####### USER-DEFINED MONITORED PARAMETERS #######   # 用户自定义的监控参数,UserParameter
                    ####### LOADABLE MODULES #######
                    ####### TLS-RELATED PARAMETERS #######

                    Passive checks related
                        Server=IP1,IP2.....     # 此处的IP为允许进行数据采集请求的SERVER-IP
                        ListenPort=10050
                        ListenIP=0.0.0.0    # 监听所有IP
                        StartAgent=3        # 设置pre-forked(预生成子进程)的数量为3

                    Active checks related
                        ServerActive=IP1,IP2....    # 服务器的IP
                        Hostname=HOST-ID    # 客户端的主机名
            (3)启动服务:
                systemctl start zabbix-agent.service
配置监控:
    快速配置一个监控项:
        host groups --> host --> applications --> item --> triggers(events) --> action(conditions,operations)
            operations:remote command(远程命令),alert(报警)
            item --> simple graph       # 一个监控项默认有一个简单图形
            items --> graph     # 多个监控项可以放在一个图像当中
            graphs --> screen       # 多个图像可以组成一个屏幕
            screens --> slide show      # 多个屏幕又可以组成一个幻灯

        item key:简单来说就是server端向agent端发送查询请求所执行的唯一命令
            key与之对应的唯一命令      
    item(监控项):
        作用:仅负责收集数据
        分为两类:
                zabbix内建:
                用户自定义(UserParameter):
        采集到的数据:
            数值:
                整数,浮点数
            字符型:
                字符串,text,log
    trigger(触发器):
        作用:用于为监控项所收集的数据定义阈值,由表达式构成
        if item > 阈值 则为TRUE即PROBLEM,反之则为FALSE即OK
        基本触发器的表达格式如下:
            {<server>:<key>.<function>(parameter)}<operation><constant>
            server: 主机名称
              key:  即item key,主机上关系的响应监控项的key
            function: 评估采集到的数据是否在合理的区间内所使用的函数,可支持avg,count,max,change,date,delta,diff,last,min,sum,now等
            parameter: 函数参数,多数函数可接受秒作为参数,如果在参数前面加上了#则表示为最近几次的取值:
                       例如:sum(10)表示10秒之内所有取值之和,而sum(#10)则表示最近十次的取值之和
                       此外,avg,count,last,max和min还支持使用第二个参数用于时间限定
                       例如:max(1h,7d)将返回一周前的最大值
            operation: 运算符有/,*,-,+,<,>,#(不相等),=,&(逻辑与),|(逻辑或)
            constant: 常量,即阈值
        触发器间的依赖关系:
            主机依赖于网络设备
            服务依赖于主机
        注意:一个trigger仅能关联一个item,但是可以为一个item使用多个trigger以实现不同级别的报警即报警升级
    Media Types(媒介类型):
        定义:报警信息的传递方式
        类型:
            Email:邮件,需要定义发件人邮箱地址和SMTP服务器
            Script:自定义脚本,此脚本有发送信息至相关用户的功能
            SMS,jabber...:只有北美才能使用,一般不用
    Action(动作):
        condition:触发次动作的条件,一般是通过"事件触发"
        operation:触发条件满足时需要采取的动作
            send message:
                功能:发送报警信息给关联的用户
                信道:
                    邮件
                    脚本
            remote command:
                功能:在agent所在的主机上运行用户指定的命令或者脚本来尝试恢复故障
                      例如:
                            重启服务或者运行由用户自定义的脚本
                类型:
                    IPMI,Custom Script,SSH,TELNEL,Global Script
                    Custom Script实现的前提:
                        在agent端配置:
                            (1)zabbix拥有执行相应脚本的权限
                                编辑/etc/sudoers文件,添加:
                                    zabbix ALL=(ALL) NOPASSWD:ALL
                                    注释如下行:
                                        Defaults requiretty
                            (2)agent进程要允许执行远程命令,编辑/etc/zabbix/zabbix_agentd.conf文件,设置:
                                EnableRemoteCommands=1
                            (3)重启服务生效:
                                systemctl restart zabbix-agent.service
    MACRO(宏):
        定义:预设的文本替换模式
        级别:
            全局宏:Administration --> General --> Macros
            模板宏:Configuration --> Templates --> TEMPLATE --> Macros
            主机宏:Configuration --> Hosts --> Host --> Macros
        类型:
            内建:{MACRO_NAME}
            自定义:{$MACRO_NAME}
            命名方式:大写字母,数字和下划线
    网络发现(Network Discovery):
        定义:zabbix server扫描指定网络范围内的主机
        发现方式:
            IP地址范围
            可用服务探测(ssh,ftp,http.....)
            zabbix_agentd响应对某个key的请求
            snmp_agent响应
        一旦发现某主机,就会产生发现事件:
            事件一共有8类:
                Host,Service
                Up/Down,Discovered/Lost
        发现操作分两步:
            discover:
            actions:add host,link to template.....

          未完待续..............

posted @ 2020-06-18 14:46  Vampire-Min  阅读(356)  评论(0编辑  收藏  举报