• CentOS7 zabbix安装并实现其它服务器服务监控报警与自动恢复


    #zabbix部署参考 https://www.cnblogs.com/itbox/p/12142066.html
    
    #关闭防火墙
    systemctl disable firewalld.service
    
    #关闭Selinux
    vim /etc/selinux/config
    SELINUX=diabled
    
    #安装apache
    yum -y install httpd
    
    #启动并设置为自启动
    systemctl enable httpd
    systemctl start httpd
    
    #安装好mysql或使用其他地址mysql
    
    #安装PHP环境
    yum install -y php php-mysql
    
    #安装zabbix
    #1.下载安装release包,此包用来更新yum仓库
    rpm -ivh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm
    
    #2.安装Zabbix组件包(注意选择组件,zabbixServer这台机器我不安装agent,另一台机器则只安装agent)
    yum install -y zabbix-server-mysql zabbix-get zabbix-web zabbix-web-mysql zabbix-agent zabbix-sender
    
    #配置数据库
    #1.创建数据库并设置编码为utf8
    mysql> create database zabbix character set utf8 collate utf8_bin;
    Query OK, 1 row affected (0.00 sec)
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    | zabbix             |
    +--------------------+
    5 rows in set (0.00 sec)
    #2.创建zabbix账户并设置密码
    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'AbcdefG123!';
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> grant all privileges on zabbix.* to xiao@% identified by 'AbcdefG123!';
    #3.刷新权限
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    #4.导入数据库初始化脚本
    cd /usr/share/doc/zabbix-server-mysql-4.4.4/
    gunzip create.sql.gz
    mysql -uroot -p zabbix <create.sql
    #5.确认表已经导入
    
    #配置zabbix server数据库信息
    vim /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=Zabbix
    DBPassword=xxxxxx
    
    #启动zabbix server并设置为自启动
    systemctl start zabbix-server
    systemctl enable zabbix-server
    
    #修改市区为上海 Asia/Shanghai
    vi /etc/httpd/conf.d/zabbix.conf
    #重启httpd
    systemctl restart httpd
    
    
    #登陆并配置数据库账号密码和/etc/zabbix/zabbix_server.conf中的一致
    http://IP/zabbix
    
    默认登陆账户Admin(首字母大写)
    默认登录密码zabbix
    
    #安装agent
    yum install -y zabbix-agent
    
    #1.配置zabbix server所在地址
    cd /etc/zabbix/
    vi zabbix_agentd.conf
    
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=Zabbix server      #这个需要和配置-主机列表中的名称对应
    
    systemctl start zabbix-agent
    systemctl enable zabbix-agent
    
    
    #自动监测异常,通知并恢复
    先建立模板-应用集-监控项-触发器,最后才是动作
    
    首先要确保agent端开启远程执行命令
    sed -i 's|# EnableRemoteCommands=0|EnableRemoteCommands=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf
    
    动作中配置远程命令时候最前面加上sudo,并在agent上配置zabbix的权限:
    # visudo
    #允许zabbix用户在无密码清空下执行所有操作或者部门操作zabbix  ALL=(ALL) NOPASSWD:/etc/init.d/nginx restart
    zabbix  ALL=(ALL) NOPASSWD:ALL
    #Default requiretty  #如果此行没注释,请一并注释
    
    
    #自定义脚本监控 https://www.cnblogs.com/yanjieli/p/10833311.html
    # vim /etc/zabbix/script/service_status.sh
    #!/bin/bash
    #Desc:zabbix 远程执行命令、重启应用 nginx、mysql、php、等
    case $1 in
        Docker)
            result=`systemctl status docker |grep 'active (running)' |wc -l`
            echo $result
            ;;
        Mysql)
            result=`pidof mysqld  |wc -l`
            echo $result
            ;;
        *)
            echo "Usage:$0(Docker|Mysql)"
            ;;
    esac
    
    #在配置文件中配置调用方式和脚本
    [root@localhost zabbix]# cat zabbix_agentd.d/service_status.conf 
    UserParameter=myservice.status[*],/etc/zabbix/script/service_status.sh $1
    
    #创建触发器并设定判定异常时候的标准
    {checke service status:myservice.status[Docker].last()}=0
    
    #在agent-server端测试能否调通
    zabbix_get -s 192.168.1.14 -k "myservice.status[Docker]"
    
    #最后配置动作相关
    
    #最后可测试,比如停掉docker服务后会发现docker自动重启了,邮件也会收到异常和恢复的通知
    
    ##########################################问题点##########################################
    1.zabbix提示the zone for php is not set解决
    https://blog.csdn.net/jing875480512/article/details/79002404
  • 相关阅读:
    Java连载63-异常处理try...catch...、方法getMessageyu printStackTrace
    Python连载58-http协议简介
    Java连载62-使用throws关键字处理异常
    HTML连载57-相对定位和绝对定位
    Java连载61-异常的机制与分类
    Python连载57- 邮件头和主题、解析邮件
    Java连载60-类之间的六种关系
    [Java] 数据库编程JDBC
    [bug] MySQL-Front连接MySQL 8.0失败
    [bug]mysql: The server time zone value '&#214;&#208;&#185;&#250;&#177;&#234;&#215;&#188;&#202;&#177;&#188;&#228;' is unrecognized or represents more than one time zone
  • 原文地址:https://www.cnblogs.com/xiaochangwei/p/zabbix-install.html
Copyright © 2020-2023  润新知