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邮箱的授权码


    第三步: 设置收件人


    第四步: 启用动作

  • 相关阅读:
    codeforces C. Fixing Typos 解题报告
    codeforces B. The Fibonacci Segment 解题报告
    codeforces B. Color the Fence 解题报告
    codeforces B. Petya and Staircases 解题报告
    codeforces A. Sereja and Bottles 解题报告
    codeforces B. Levko and Permutation 解题报告
    codeforces B.Fence 解题报告
    tmp
    API 设计 POSIX File API
    分布式跟踪的一个流行标准是OpenTracing API,该标准的一个流行实现是Jaeger项目。
  • 原文地址:https://www.cnblogs.com/cjwnb/p/11922195.html
Copyright © 2011-2022 走看看