• 学习zabbix(一)


    一、zabbix监控简介

    server: 通过收集snmp和agent发送的数据,写入数据库(MySQL,ORACLE),再通过 php+apache 在 web 前端展示。

    agent:主机通过安装agent方式采集数据,网络设备通过SNMP方式采集数据

    二、Zabbix功能

    --具备常见的商业监控软件所具备的功能

    主机的性能监控、网络设备监控、数据库监控、多种报警方式、实时绘图功能

    --支持自动发现网络设备和服务器

    --支持分布式,能集中展示、管理分布式的监控点

    --扩展性强,server提供通用接口,可以自己开发完善各类监控

    三、安装zbbix

    yum源
    cat /etc/yum.repos.d/a.repo 
    [os]
    name=aliyun
    baseurl=https://mirrors.aliyun.com/centos/6/os/x86_64/
    enabled=1
    gpgcheck=0
    
    
    [zabbix]
    name=zabbix
    baseurl=http://mirrors.ustc.edu.cn/epel/6/x86_64/
    enabled=1
    gpgcheck=0

    server 端:

    1、安装zabbix-server
    yum -y install zabbix22-server zabbix22-web zabbix22-web-mysql zabbix22-dbfiles-mysql zabbix22-agent mysql-server mysql php php-devel php-mysql
    
    2、导入数据结构
    service mysqld start
    mysql
    CREATE DATABASE zabbix CHARACTER SET utf8;
    GRANT ALL ON zabbix.* TO 'zabbix'@'192.168.4.%' IDENTIFIED BY 'zabbix';
    FLUSH PRIVILEGES;
    mysql -u root -p zabbix < schema.sql           各种表结构
    mysql -u root -p zabbix < images.sql           基本数据
    mysql -u root -p zabbix < data.sql             自带模板
    mysql -e 'USE zabbix;SHOW TABLES;'
    
    3、配置文件
    grep -n '^[a-Z]' /etc/zabbix_server.conf 
    39:LogFile=/var/log/zabbixsrv/zabbix_server.log
    48:LogFileSize=0
    68:PidFile=/var/run/zabbixsrv/zabbix_server.pid
    77:DBHost=192.168.4.19
    87:DBName=zabbix
    103:DBUser=zabbix
    111:DBPassword=zabbix
    118:DBSocket=/var/lib/mysql/mysql.sock
    458:AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
    466:ExternalScripts=/var/lib/zabbixsrv/externalscripts
    507:TmpDir=/var/lib/zabbixsrv/tmp

    agent

    1、安装
    yum -y install zabbix22-agent
    2、配置文件
    grep -n '^[a-Z]' /etc/zabbix_agentd.conf
    11:PidFile=/var/run/zabbix/zabbix_agentd.pid
    21:LogFile=/var/log/zabbix/zabbix_agentd.log
    30:LogFileSize=0
    81:Server=192.168.4.19
    122:ServerActive=127.0.0.1
    133:Hostname=Zabbix server

    访问http://192.168.4.19/zabbix

    点Next

    修改配置文件

    vim /etc/php.ini            
     945date.timezone = Asia/Shanghai          设置时区
     440max_execution_time = 300               最大执行时间,秒
     729post_max_size = 32M                    POST数据最大容量
     449max_input_time = 300                   服务器接收数据的时间限制
     457memory_limit = 128M                    PHP内存占用的容量限制
    service httpd restart

    默认管理员账户密码:admin   zabbix

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

    若切至中文有乱码,解决办法:

    1、查看/etc/httpd/conf.d/zabbix.conf得知zabbix网页目录为/usr/share/zabbix/;

    2、查看/usr/share/zabbix/include/defines.inc.php得知字体目录位置:

    define('ZBX_FONTPATH',                             '/usr/share/fonts/dejavu');// where to search for font (GD > 2.0.18)

    define('ZBX_GRAPH_FONT_NAME',           'DejaVuSans'); // font file name;

    3、将win中的任意字体(控制面板-->字体,例如仿宋或华文雅黑)复制到/usr/share/fonts/dejavu/下并覆盖改名为DejaVuSans.ttf;

    添加一台主机

    Configuration-->Hosts,Createhost-->
    
    Host name(test2)
    
    Visable name(test2)
    
    New group(demo)
    
    IP address(192.168.4.19)
    
    Port(10050)
    
    Status(Monitored)

    添加报警:

    注:报警针对用户和用户组;生产环境最好有短信平台,或晚上用SMS,白天email;

    Administration-->Users-->选Zabbixadministrators旁的Users-->右上角Create User,User标签(Alias(demo),
    Name(demo),Groups(Zabbix administrators),Password(demo)两次,勾选Auto-login-->Media标签,
    Add,Type(Email),Send to(*@163.com),Add-->Permissions标签(User-type选Zabbix Super Admin)-->Save;

    右上角logout,用demo登录;

    注:Configuration-->Templates中的Applications应用集是监控项的集合,Item项目是监控的最小单位,有的Templates有Triggers有的没

    四、添加mysql监控

    添加项目:

    Configuration-->Hosts,选test2中的Items-->点右上角Createitem,如下图创建,Name(mysql_check),Key(mysql_alive),update interval(in sec)(60),new flexible interval(300)-->Add,new application(MySQL),Description(MySQL Check)-->Save

     

    agent 端的配置

    vim /etc/zabbix/zabbix_agentd.conf
    UserParameter=mysql_alive,mysqladminping | grep -c alive
    service zabbix-agentd restart

    添加 触发器

    Configuration-->Hosts,选test2的triggers,右上角Createtrigger-->Name(MySQL down),Expression(点Add,如下图,点Select,test2的mysql_check,Function(选Last (most recent) T value is NOT N,N(1))-->Insert-->Severity(disaster) 

     

    点Trigger标签旁边的Dependencies-->Add,选Zabbix agent on {HOST.NAME} is unreachable for 5minutes-->Save

     

    添加图形:

    Configuration-->Hosts,选test2的graph,右上角Creategraph,Name(mysql status),Graph type(Normal),Items-->Add,选test2的mysql_check,点Graph标签旁边的Preview可预览-->Save

     

    添加报警

    Configuration-->Actions,将Reportproblems to Zabbix administrators的status改为Enabled-->点Report problems to Zabbix administrators,Action标签中的项(要精简,一条短信是70个字符),Conditions,Operations(Operation details,from 1 to 3,第1次到第3次报警每次发送通知给指定的人,Operation type选Send message)-->先点Update-->再Save

     

    五、添加报警邮件

    配置邮箱

     vim /etc/mail.rc 
    #######set mail
    set from=usertzc@163.com smtp=smtp.163.com
    set smtp-auth-user=usertzc smtp-auth-password=password smtp-auth=login

    添加脚本

    cd /var/lib/zabbixsrv/alertscripts/   #(此目录下的脚本必须支持三个参数,介质参数(email or SMS),title,content)
    vim /usr/lib/zabbix/alertscripts/mail.sh
    #!/bin/sh
    MAIL_TITLE=$2
    MAIL_CON=$3
    echo "$MAIL_CON" | /bin/mail -s "$MAIL_TITLE" $1
    echo "$1 $2 $3" >> /tmp/alert
    chmod 755 send_mail.sh

    配置报警邮件

    Administration-->Media types-->Create media type,Name(send_mail),Type(Script),Script name(会自动生成),勾选Enabled-->Save

     

     Configuration-->Actions-->点Report problems to Zabbix administrators-->选Operations,Edit,Operation details中,User group为zabbix administrator,Send only to选send_mail-->Update-->Save

    Administration-->Users-->demo-->Media-->Add,Type(send_mail),Send to(jowinchai@163.com)-->Add-->Save

     

    Administration-->Users-->Admin-->Media-->Add,Type(send_mail),Send to(root@localhost)-->Add-->Save

     

    设置报警声音:

    右上角Profile-->Messaging标签,勾选Frontend messaging;

     

    测试:

    1、将test2的mysqld停掉,#service mysqld stop|start
    
    2、在Monitoring-->Dashboard中查看System status、Host status、Last 20issues中的Actions
    
    less
    /var/log/zabbixsrv/zabbix_server.log tail -f /var/log/maillog
  • 相关阅读:
    Linux下svn服务器搭建
    mybatis-generator自动生成代码插件使用详解
    java中Class.forName("xxx")和ClassLoader().loadClass("xxx")的区别
    ExecutorService中submit()和execute()的区别
    Redis学习总结(1)——数据持久化
    Java内存模型及性能优化
    (转)Lock和synchronized比较详解
    SpringBoot中获取spring.profiles.active
    SpringBoot添加拦截器
    SpringBoot与Kafka集成
  • 原文地址:https://www.cnblogs.com/wuhg/p/10237768.html
Copyright © 2020-2023  润新知