zoukankan      html  css  js  c++  java
  • zabbix(一)

    什么是监控, 为什么需要监控


    • 监控: 监视, 控制

      随着用户的增多, 服务器随时可能会被OOM(out of memory), 内核为了防止系统崩溃, 就会杀进程来释放内存


    • 当系统的内存不足的时候, 会触发OOM
    Nov 24 16:20:20 xmaster kernel: Out of memory: Kill process 4721 (httpd) score 14 or sacrifice child
    Nov 24 16:20:20 xmaster kernel: Killed process 4721 (httpd), UID 48, total-vm:467296kB, anon-rss:13472kB, file-rss:0kB, shmem-rss:12kB
    

    • 当swap分区被大量占用, 系统会特别卡

    • 压力测试工具, 测出网站的瓶颈

    • 并发

      单位时间内达到的请求数


    常见的linux监控命令


    free

    $ free -m
                  total        used        free      shared  buff/cache   available
    Mem:            972         495          67           7         409         316
    Swap:             0           0           0
    

    df

    $  df -h
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 475M     0  475M    0% /dev
    tmpfs                    487M  4.0K  487M    1% /dev/shm
    tmpfs                    487M  7.8M  479M    2% /run
    tmpfs                    487M     0  487M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  2.9G   15G   17% /
    /dev/sda1               1014M  193M  822M   19% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    
    

    top


    %Cpu(s): 43.6 us, 43.6 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi, 12.9 si,  0.0 st
    

    us: 用户态, 跟用户的操作有关

    sy: 内核态, 跟内核的处理有关

    $  time df -hP
    文件系统                 容量  已用  可用 已用% 挂载点
    devtmpfs                 475M     0  475M    0% /dev
    tmpfs                    487M  4.0K  487M    1% /dev/shm
    tmpfs                    487M  7.8M  479M    2% /run
    tmpfs                    487M     0  487M    0% /sys/fs/cgroup
    /dev/mapper/centos-root   17G  3.4G   14G   20% /
    /dev/sda1               1014M  193M  822M   19% /boot
    tmpfs                     98M     0   98M    0% /run/user/0
    
    real	0m0.098s   
    user	0m0.001s   >>>> 用户态进程CPU处理的事件
    sys	0m0.004s   >>>> 内核态进程CPU处理的事件
    

    htop

    $  htop 
    


    uptime

    $  uptime 
    00:15:57 up 2 days,  2:03,  2 users,  load average: 0.10, 0.05, 0.05
    

    cat /proc/uptime 
    180350.18 176528.13    >>>> 系统启动时间  系统空闲时间
    

    $  echo 180350.18/3600|bc
    50
    
    

    说明 一般来说, 内存中的系统启动时间/proc/uptimeuptime获取的系统的启动时间的差值越小, 表示系统越闲


    iftop

    $  iftop
    
    


    iostat

    $  yum -y install sysstat
    $  rpm -ql sysstat |grep bin
    /usr/bin/cifsiostat
    /usr/bin/iostat
    /usr/bin/mpstat
    /usr/bin/nfsiostat-sysstat
    /usr/bin/pidstat
    /usr/bin/sadf
    /usr/bin/sar
    /usr/bin/tapestat
    
    
    $  iostat 
    Linux 3.10.0-1062.4.1.el7.x86_64 (xmaster) 	2019年11月24日 	_x86_64_	(1 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               1.08    0.00    1.00    0.01    0.00   97.91
    
    Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
    sda               0.73         7.25        18.05    1314429    3272661
    dm-0              0.76         7.07        17.68    1282562    3204894
    dm-1              0.04         0.10         0.07      18848      13560
    
    

    主要参数解释

    Device:            tps    kB_read/s    kB_wrtn/s    					kB_read    kB_wrtn
    sda               0.73         7.25        18.05    					1314429    3272661
    设备名				每秒传输次数		每秒从硬盘读的大小  每秒写入硬盘的大小   从硬盘读的总大小   写入硬盘的总大小
    
    

    iotop


    vmstat

    $  vmstat 
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0      0 156356      0 496688    0    0     7    18   49  114  1  1 98  0  0
    
    

    netstat

    查看端口

    $  netstat -at|grep ESTABLISHED|grep http|grep -v 'tcp6'
    tcp       0      0 xmaster:33938     xmaster:http     ESTABLISHED  
    tcp       0      0 xmaster:33942    xmaster:http     ESTABLISHED  
    tcp       0      0 xmaster:33940    xmaster:http     ESTABLISHED 
    
    

    • 查看网关
    $  netstat  -rn
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
    0.0.0.0         172.16.240.2    0.0.0.0         UG        0 0          0 ens33
    172.16.240.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33
    
    

    nethogs

    $  yum -y install nethogs
    $  nethogs
    
    


    使用shell脚本来监控服务器


    每隔1分钟监控一次内存, 当可用内存低于100M, 发邮件报警

    配置mail

    $  yum -y install mailx
    $  vim /etc/mail.rc 
    set from=zabix1219server@163.com        
    set smtp=smtp.163.com
    set smtp-auth-user=zabix1219server@163.com
    set smtp-auth-password=ak1234
    set smtp-auth=login
    $  echo "Hello" | mail -s "标题" 1392263019@qq.com
    
    

    #!/bin/bash
    mon=`free -m |awk 'NR==2 {print $NF}'`
    if [ $mon -le 500 ];then
    echo "`date` memory is less than 500" >> /tmp/check_mem.log
    echo -e "please check the memory is less than 500" |mail -s "check memory for the hostname `hostname`" 1392263019@qq.com
    fi
    
    

    说明: 规模比较小的时候, 使用shell脚本+定时任务来做监控


    zabbix的基础服务架构

    zabbix-agent(采集数据) --> zabbix-server(清洗数据, 报警) --> mysql(数据存储) <-- zabbix-web(数据展示)
    
    


    zabbix安装


    官方文档: https://www.zabbix.com/documentation/3.0/manual/installation/install_from_packages

    前端安装文档: https://www.zabbix.com/documentation/3.0/manual/installation/install#installing_frontend


    第一步: 配置zabbix yum仓库

    • 下载并安装 zabbix-release-3.0-1.el7.noarch.rpm
    $  wget https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
    $  rpm -ivh zabbix-release-3.0-1.el7.noarch.rpm
    
    

    • 修改zabbix.repo文件, 将源改为清华源
    $  vim /etc/yum.repos.d/zabbix.repo 
    baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/
    baseurl=https://mirror.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/x86_64/
    
    

    第二步: 安装zabbix服务端和zabbix-web前端

    $  yum install zabbix-server-mysql zabbix-web-mysql
    
     Package                                                架构                                  版本                                              源                                                   大小
    ==========================================================================================================================================================================================================
    正在安装:
     zabbix-server-mysql                                    x86_64                                3.0.28-1.el7                                      zabbix                                              1.8 M
     zabbix-web-mysql                                       noarch                                3.0.28-1.el7                                      zabbix                                              6.3 k
    为依赖而安装:
     OpenIPMI                                               x86_64                                2.0.27-1.el7                                      base                                                243 k
     OpenIPMI-libs                                          x86_64                                2.0.27-1.el7                                      base                                                523 k
     OpenIPMI-modalias                                      x86_64                                2.0.27-1.el7                                      base                                                 16 k
     dejavu-fonts-common                                    noarch                                2.33-6.el7                                        base                                                 64 k
     dejavu-sans-fonts                                      noarch                                2.33-6.el7                                        base                                                1.4 M
     fontpackages-filesystem                                noarch                                1.44-8.el7                                        base                                                9.9 k
     fping                                                  x86_64                                3.10-4.el7                                        epel                                                 46 k
     gnutls                                                 x86_64                                3.3.29-9.el7_6                                    base                                                680 k
     iksemel                                                x86_64                                1.4-2.el7.centos                                  zabbix-non-supported                                 49 k
     libX11                                                 x86_64                                1.6.7-2.el7                                       base                                                607 k
     libX11-common                                          noarch                                1.6.7-2.el7                                       base                                                164 k
     libXau                                                 x86_64                                1.0.8-2.1.el7                                     base                                                 29 k
     libXpm                                                 x86_64                                3.5.12-1.el7                                      base                                                 55 k
     libjpeg-turbo                                          x86_64                                1.2.90-8.el7                                      base                                                135 k
     libxcb                                                 x86_64                                1.13-1.el7                                        base                                                214 k
     libzip                                                 x86_64                                0.10.1-8.el7                                      base                                                 48 k
     net-snmp-libs                                          x86_64                                1:5.7.2-43.el7                                    base                                                750 k
     nettle                                                 x86_64                                2.7.1-8.el7                                       base                                                327 k
     php                                                    x86_64                                5.4.16-46.1.el7_7                                 updates                                             1.4 M
     php-bcmath                                             x86_64                                5.4.16-46.1.el7_7                                 updates                                              58 k
     php-cli                                                x86_64                                5.4.16-46.1.el7_7                                 updates                                             2.7 M
     php-common                                             x86_64                                5.4.16-46.1.el7_7                                 updates                                             565 k
     php-gd                                                 x86_64                                5.4.16-46.1.el7_7                                 updates                                             128 k
     php-ldap                                               x86_64                                5.4.16-46.1.el7_7                                 updates                                              53 k
     php-mbstring                                           x86_64                                5.4.16-46.1.el7_7                                 updates                                             505 k
     php-mysql                                              x86_64                                5.4.16-46.1.el7_7                                 updates                                             101 k
     php-pdo                                                x86_64                                5.4.16-46.1.el7_7                                 updates                                              99 k
     php-xml                                                x86_64                                5.4.16-46.1.el7_7                                 updates                                             126 k
     t1lib                                                  x86_64                                5.1.2-14.el7                                      base                                                166 k
     trousers                                               x86_64                                0.3.14-2.el7                                      base                                                289 k
     unixODBC                                               x86_64                                2.3.1-14.el7                                      base                                                413 k
     zabbix-web                                             noarch                                3.0.28-1.el7                                      zabbix                                          
    
    

    第三步: 安装mariadb, 创建zabbix, 授权zabbix用户

    • 安装mariadb
    $  yum -y install mariadb-server
    $  systemctl start mariadb
    $  systemctl enable mariadb
    
    

    • 初始化数据库
    $  mysql_secure_installation
    
    


    • 创建监控账户
    > create database zabbix character set utf8 collate utf8_bin;
    > grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
    > flush privileges;
    
    

    • 导入zabbix表结构和初始数据
    $  zcat /usr/share/doc/zabbix-server-mysql-3.0.*/create.sql.gz | mysql -uzabbix -p zabbix
    
    

    • 检查zabbix库是否导入成功
    $  mysql zabbix -e 'show tables'
    
    

    第四步: 配置启动zabbix-server

    • 设置配置文件
    $  vim /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix
    
    

    • 启动
    $  systemctl start zabbix-server
    $  systemctl enable zabbix-server
    $  netstat -ntulp |grep zabbix
    tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      2131/zabbix_server  
    tcp6       0      0 :::10051                :::*                    LISTEN      2131/zabbix_server
    
    

    • 查看zabbix日志的路径
    grep -Ew 'LogFile' /etc/zabbix/zabbix_server.conf |grep -v '^#'
    LogFile=/var/log/zabbix/zabbix_server.log
    
    

    • 查看日志
      2487:20191124:154212.902 IPv6 support:              YES
      2487:20191124:154212.902 TLS support:               YES
      2487:20191124:154212.902 ******************************
      2487:20191124:154212.902 using configuration file: /etc/zabbix/zabbix_server.conf
      2487:20191124:154212.909 [Z3001] connection to database 'zabbix' failed: [1045] Access denied for user 'zabbix'@'localhost' (using password: YES)
      2487:20191124:154212.909 database is down: reconnecting in 10 seconds
      2487:20191124:154222.911 [Z3001] connection to database 'zabbix' failed: [1045] Access denied 
    
    

    第五步: zabbix前端的PHP配置

    Zabbix前端的Apache配置文件位于/etc/httpd/conf.d/zabbix.conf中. 某些额PHP设置已经配置. 但是有必要取消注释 datetime.timezone 设置为中国的时区

    $  vim /etc/httpd/conf.d/zabbix.conf
    php_value date.timezone Asia/Shanghai
    
    

    第五步: SElinux配置

    在强制模式下启用SElinux状态后, 需要对zabbix前端进行放行

    $  setsebool -P httpd_can_connect_zabbix on
    
    

    在前端和SELinux配置完成后, 需要重新启动web服务器**

    $  systemctl restart httpd
    $  systemctl enable httpd
    
    $  netstat -ntulp |grep http
    tcp6       0      0 :::80                   :::*                    LISTEN      2855/httpd                
    
    

    第六步: 前端PHP的安装

    访问地址 http://172.16.240.12/zabbix/


    • 后期修改zabbix数据库密码的时候, 需要修改的配置文件

      /etc/zabbix/web/zabbix.conf.php


    • 登录的zabbix的账号密码
    Admin
    zabbix
    
    

    监控一台服务器主机


    第一步: 安装zabbix-agent

    $  rpm -ivh https://mirror.tuna.tsinghua.edu.cn/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.20-1.el7.x86_64.rpm
    $  rpm -q zabbix-agent
    zabbix-agent-3.0.20-1.el7.x86_64
    
    

    第二步: 配置

    $  vim /etc/zabbix/zabbix_agentd.conf
    Server=172.16.240.12
    $  iptables -I INPUT -p tcp -m tcp --dport 10050 -j ACCEPT 
    
    

    第三步: 启动

    $  systemctl start zabbix-agent
    $  systemctl enable zabbix-agent
    $  netstat -ntulp|grep zabbix
    tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      19154/zabbix_agentd 
    tcp6       0      0 :::10050                :::*                    LISTEN      19154/zabbix_agentd 
    
    

    第四步: zabbix-web端加入主机


    自定义监控


    监控磁盘IO


    第一步: zabbix-agent配置

    $  vim /etc/zabbix/zabbix_agentd.conf
    265:Include=/etc/zabbix/zabbix_agentd.d/*.conf
    
    $  grep -Evn '^$|^#' /etc/zabbix/zabbix_agentd.conf 
    13:PidFile=/var/run/zabbix/zabbix_agentd.pid
    32:LogFile=/var/log/zabbix/zabbix_agentd.log
    43:LogFileSize=0
    95:Server=172.16.240.12
    136:ServerActive=127.0.0.1
    147:Hostname=Zabbix server
    265:Include=/etc/zabbix/zabbix_agentd.d/*.conf
    
    $  vim /etc/zabbix/zabbix_agentd.d/tps.conf
    UserParameter=tps,iostat |awk '$1~/sda/{print $2}'
    $  systemctl restart zabbix-agent.service
    
    

    第二步: zabbix-server测试

    $  yum -y install zabbix-get
    $  zabbix_get -s 172.16.240.13 -p 10050 -I 172.16.240.12 -k tps
    20.72
    
    

    第三步: zabbix-web添加自定义监控项


    • 修改监控项同步时间


    • 查看数据


    监控tcp的状态


    第一步: zabbix-agent配置

    $  vim /etc/zabbix/zabbix_agentd.d/tcp.conf
    UserParameter=tcp,netstat -antt|fgrep -c 'ESTABLISHED'
    $  systemctl restart zabbix-agent.service
    
    

    第二步: zabbix-server测试

    $  zabbix_get -s 172.16.240.13 -p 10050 -I 172.16.240.12 -k tcp
    
    

    自定义触发器


    前提是有监控项, 并且这个监控项可以取到值

    第一步: 新建触发器


    第二步: 设置报警媒介类型


    注意 这里的密码需要填写163邮箱的授权码


    第三步: 设置收件人


    第四步: 启用动作

  • 相关阅读:
    apache、php隐藏http头部版本信息的实现方法
    CentOs 设置静态IP 方法
    PHP如何判断远程图片文件是否存在
    linux删除乱码文件
    Linux基础学习1
    C#——继承
    解决简体输出乱码问题
    简单的Tuple声明和输出
    懒汉式与饿汉式的区别
    Java 反射
  • 原文地址:https://www.cnblogs.com/cjwnb/p/11922195.html
Copyright © 2011-2022 走看看