• zabbix监控


    zabbix简介
    Zabbix 是一个企业级分布式开源监控解决方案。

    Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。

    Zabbix 支持主动轮询(polling)和被动捕获(trapping)。zabbix由2部分构成,zabbix server与可选组件zabbix agent。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。

    Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。

    Zabbix 是一个高度成熟完善的网络监控解决方案,一个的软件包中包含了多种功能。
    所有的监控,承载的协议都离不开SNMP协议。

    主要功能
    数据采集
    灵活的阈值定义
    高度可配置化的告警
    实时图形
    Web 监控功能
    丰富的可视化选项
    丰富的可视化选项

    部署LNMP+zabbix
    LNMP安装环境
    修改主机名然后先关闭防火墙及安全机制

    hostnamectl set-hostname server
    su
    systemctl stop firewalld.service
    systemctl disable firewalld.service
    setenforce 0

    安装nginx

    wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm //从官网上下载nginx的rpm包
    vim /etc/yum.repos.d/nginx.repo //手动创建nginx yum安装源
    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/7/$basearch/
    gpgcheck=0
    enabled=1
    yum clean all
    yum list

    安装并启动nginx

    yum install nginx -y
    systemctl start nginx
    systemctl enable nginx
    netstat -natp | grep nginx
    //如果企业中开着软件防火墙,可以使用下面两条命令允许使用nginx通过
    firewall-cmd --permanent --add-service=http --zone=public
    firewall-cmd --reload

    安装mysql 5.7

    yum install -y mariadb-server mariadb
    systemctl enable mariadb.service
    systemctl start mariadb.service
    mysql_secure_installation
    mysql -uroot -p

    安装php 7.2

    //使用rpm或yum下载epel源
    rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

    yum install epel-release -y
    //yum仓库建立
    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #建立yum的webtatic源
    //等待时间取决于网络
    yum install -y php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
    php72w是本身服务包;
    php72w-devel用于构建PHP扩展所需的文件;
    php72w-fpm是PHP FastCGI进程管理器;
    php72w-gd是PHP应用程序的模块,用于使用gd图形库;
    php72w-mbstring模块是需要多字节字符串处理的PHP应用程序的模块;
    php72w-mysql是数据库mysql驱动模块,在mysql的官网下载的
    php -v //查看php版本

    配置nginx支持php
    修改php-fpm配置文件

    vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件,把apache改为nginx
    //8 user = nginx //属主
    //10 group = nginx //属组

    vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php。以支持index.php的首页
    /10 index index.php index.html index.htm;
    //配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改
    /30~36
    location ~ .php$ {
    root /usr/share/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
    include fastcgi_params;
    }
    //把fastcgi_param中的/scripts改为$document_root。root是配置php程序放置的根目录。

    配置php

    vim /etc/php.ini #修改PHP配置文件
    /202 short_open_tag = On /支持php短标签
    /359 expose php = Off /隐藏php版本
    //以下为zabbix优化配置要求
    /368 max_execution_time = 300 //执行时间
    /378 max_input_time = 300 //接收数据等待时间
    /389 memory_limit = 128M /每个脚本占用内存
    /656 post_max_size = 16M //POST数据大小
    /799 upload_max_filesize = 2M //上传文件大小
    /800 always_populate_raw_post_data = -1 //需要添加可以用$HTTP_RAW POST_DATA接收post raw data(原始未处理数据)
    /877 date.timezone = Asia/Shanghai //时区
    systemctl start php-fpm
    systemctl enable php-fpm
    netstat -natp | grep 9000
    systemctl restart nginx

    部署zabbix Server
    安装zabbix及导入数据库脚本

    zabbix官网https://www.zabbix.com/download
    //安装一个zabbix仓库;
    rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm //网络问题,需要多安装几次
    //安装zabbix server,Web前端,agent
    yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
    //导入数据库脚本
    zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix //生成数据库文件,注意密码不要输成root的
    mysql -uzabbix -p
    use zabbix;
    show tables;

    修改zabbix配置文件

    vim /etc/zabbix/zabbix_server.conf
    38:LogFile=/var/log/zabbix/zabbix_server.log //日志文件位置
    49:LogFileSize=0 //日志文件大小;设置为0,不限制日志文件大小
    72:PidFile=/var/run/zabbix/zabbix_server.pid //pid文件位置
    82:SocketDir=/var/run/zabbix //套接字文件位置;套接字是计算机之间进行通信的一种约定或一种方式
    91 DBHost=localhost //注释去掉,连接本地数据库
    101:DBName=zabbix //数据库名
    117:DBUser=zabbix //数据库用户名
    124:DBPassword=admin123 //修改本行,登录数据库密码
    356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log //采用的网络管理协议SNMP
    473:Timeout=4 //超时时间
    518:AlertScriptsPath=/usr/lib/zabbix/alertscripts //脚本文件
    529:ExternalScripts=/usr/lib/zabbix/externalscripts //扩展脚本文件
    565:LogSlowQueries=3000 //慢日志时间,超过3000秒记录
    grep -n ‘^’[a-Z] /etc/zabbix/zabbix_server.conf

    赋权及开启服务

    systemctl stop firewalld
    iptables -F
    cp -r /usr/share/zabbix/ /usr/share/nginx/html/
    chown -R zabbix:zabbix /etc/zabbix
    chown -R zabbix:zabbix /usr/share/nginx/
    chown -R zabbix:zabbix /usr/lib/zabbix/
    //处理指定目录以及其子目录下的所有文件’
    chmod -R 755 /etc/zabbix/web/
    chmod -R 777 /var/lib/php/session/
    //递归修改文件权限
    systemctl start zabbix-server.service
    systemctl enable zabbix-server.service
    systemctl start zabbix-agent
    systemctl enable zabbix-agent
    netstat -natp | grep 10051 #server的端口
    netstat -natp | grep 10050 #agent的端口
    systemctl restart php-fpm.service
    systemctl restart nginx

    配置代理端----就是被控服务器
    安装zabbix存储库与agent代理服务及修改代理配置文件

    rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm //安装zabbix源
    yum install -y zabbix-agent //安装zabbix代理端,即被监控端
    vim /etc/zabbix/zabbix_agentd.conf
    13:PidFile=/var/run/zabbix/zabbix_agentd.pid //pid文件位置
    32:LogFile=/var/log/zabbix/zabbix_agentd.log //日志文件位置
    43:LogFilesize=0 //日志文件大小;设置为0,不限制日志文件大小
    98:Server=192.168.140.11 //指向监控服务器
    139:ServerActive=192.168.140.11 //指向监控服务器
    150:Hostname=client //名称
    268:Include=/etc/zabbix/zabbix_agentd.d/*.conf //包含zabbix_agentd.d目录下的所有.conf结尾的配置文件
    grep -n ‘^’[a-Z] /etc/zabbix/zabbix_agentd.conf

    重启代理服务

    systemctl stop firewalld
    setenforce 0
    systemctl enable zabbix-agent.service
    systemctl restart zabbix-agent.service
    netstat -anpt | grep zabbix //监听在10050端口

    配置邮件报警功能
    获取邮箱的客户端授权码

    安装并配置邮箱发送功能

    yum install -y mailx
    vim /etc/mail.rc //注意网易邮箱需要开启客户端授权码进行第三方登录
    ----文件未尾新增—
    set from=1418183423@qq.com
    set smtp=1418183423.qq.com
    set smtp-auth-user=1418183423@qq.com
    set smtp-auth-password=授权码
    set smtp-auth=login

    测试发信正常

    echo “hello world” | mail -s “zb-test” 1418183423@qq.com

    编写发邮件脚本

    cd /usr/lib/zabbix/alertscripts
    vim mailx.sh
    #!/bin/bash
    #send mail
    messages=echo $3 | tr '\r\n' '\n'
    subject=echo $2 | tr '\r\n' '\n'
    echo “ m e s s a g e s " ∣ m a i l − s " {messages}" | mail -s " messages"mails"{subject}” $1 >>/tmp/mailx.log 2>&1
    touch /tmp/mailx.log
    chown -R zabbix:zabbix /tmp/mailx.log
    chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
    chown -R zabbix.zabbix /usr/lib/zabbix/
    ./mailx.sh 1418183423@qq.com “主题” "内容”//测试发邮件脚本是否可以正常工作

    在服务器WEB页面上配置
    定义报警媒体类型

    管理-》报警媒体类型-》创建媒体类型-》
    名称:Mail-Test
    类型:脚本
    脚本名称:mailx.sh
    脚本参数://新增以下三个参数
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

    指定用户

    管理-用户-点击Admin-报警媒介:
    类型:Mail-Test //调用上面的脚本
    收件人:1418183423@qq.com
    其它默认-保存

    配置被监控端

    配置—>主机—>创建主机
    主机:
    主机名称:client
    群组:linux servers
    agent代理程序的接口:192.168.140.12
    模板:
    链接指示器:Template App SSH Service

    配置触发动作和条件

    配置-》动作-》创建动作-》删除默认标签,修改触发条件
    名称:Mailx
    条件A主机群组=Linux servers
    操作-》如下配置
    默认操作步骤持续时间60
    默认接收人: {TRIGGER.STATUS}:{TRIGGER.NAME}
    默认信息:
    告警主机:{HOST.NAME}
    告警 IP:{HOST.IP}
    告警时间:{EVENT.DATE}-{EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY)
    告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
    事件ID:{EVENT.ID}
    操作细节:-》
    操作类型:发送消息
    发送到用户: Admin (zabbix Administrator)
    仅送到:Mail-Test //一定要配置否则邮件发送不成功
    恢复操作:{TRIGGER.STATUS}:{TRIGGER.NAME}
    恢复主机:{HOST.NAME}
    恢复IP:{HOST.IP}
    恢复时间:{EVENT.DATE}-{EVENT.TIME}
    恢复等级:{TRIGGER.SEVERITY}
    恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
    恢复ID:{EVENT.ID}
    操作细节:
    操作类型:发送消息
    发送到用户: Admin (Zabbix Administrator)
    仅送到:Mail-Test //一定要配置否则邮件发送不成功

    重启zabbix服务,并在被监控端停止sshd服务验证
    监控端

    systemctl restart zabbix-server
    systemctl restart zabbix-agent.service

    被监控端
    停止监控的sshd服务,验证是否发送服务down的邮件

    systemctl restart zabbix-agent.service
    systemctl stop sshd

    被监控端

    systemctl restart sshd

  • 相关阅读:
    高并发系统设计之限流
    算法刷题记录-双指针/滑动窗口(LeetCode)
    i.MX6ULL驱动开发 | 34 - 基于SPI框架驱动spi lcd(st7789)
    python+vue+elementui模拟视频监控管理系统django
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境
    25 mysql like 是否使用索引
    新能源汽车BMS控制器简介
    为什么要学习Flink系统管理及优化课程?
    华清远见上海中心22071班--11.2作业
    Java集中常见的排序
  • 原文地址:https://blog.csdn.net/xiaol_csdn_xiaol/article/details/125629998