当前位置: 首页 > article >正文

zabbix监控服务的搭建与使用

zabbix
一.zabbix监控搭建
二.zabbix自定义监控项配置
三.zabbix警告配置


一.zabbix监控搭建	
	1.概念	
		1)架构与组件
			分布式系统监视工具,支持跨平台监控
			mysql:
				数据持久化存储
			Zabbix Server:
				数据接收,回写
			Zabbix Agent:
				数据采集
			Zabbix web:
				数据展示

		2)核心概念
			主机:被监控端
			主机群组:管理和监控一组主机
			监控项:监控的具体指标
			模板:监控项、触发器等的集合

	2.准备工作
		1)环境:
		zabbixserver	192.168.88.5/24
		web1	192.168.88.100/24
		web2	192.168.88.200/24

		2)拷贝zabbix软件包到pubserver:
			  scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms

		3)搭建节点的yum仓库vim 01-upload-repo.yml 


	3.搭建zabbix服务(zabbix机器)

		1.给zabbix机器上安装相应软件包
			   zabbix-server-mysql
			   mysql-server
		          zabbix-web-mysql
			   zabbix-sql-scripts:管理Zabbix数据库的SQL脚本
			   zabbix-agent
		          langpacks-zh_CN
		          zabbix-nginx-conf:通过nginx的web服务展示界面
		          zabbix-selinux-policy		        

		2.配置数据库服务

			1)启动zabbix上的mysqld服务

			2)在zabbix上创建数据库,创建用户,授权数据库

				CREATE DATABASE zabbix
				CHARACTER SET utf8mb4	数据库的字符集为 utf8mb4
				COLLATE utf8mb4_bin;	数据库的排序规则为 utf8mb4_bin
			
				mysql> set global log_bin_trust_function_creators = 1;
				mysql> create user zabbix@localhost identified by 'zabbix';
				mysql> grant all privileges on zabbix.* to zabbix@localhost;
				mysql> quit;

				是否允许创建或修改存储函数和触发器,设置为 1 允许所有用户创建或修改这些对象
				创建了一个名为 zabbix 的新用户,该用户只能从 localhost 连接到数据库服务器,并且其密码被设置为 zabbix。
				授予了 zabbix 用户对 zabbix 数据库的所有表的全部权限,zabbix.* 表示 zabbix 数据库中的所有对象。

			3)验证数据库配置,如果登陆不到数据库表示上一步配置不正确
				 mysql -uzabbix -pzabbix -hlocalhost zabbix
				 
			4)导入zabbix需要的sql
				cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
				gzip -d server.sql.gz 
				mysql -uzabbix -pzabbix zabbix < server.sql

		3.配置zabbix_server
			[root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf
			DBPassword=zabbix

		4.配置zabbix_agent
			[root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 
			182 Hostname=zabbixserver

		5.配置nginx展示zabbix
			[root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf
			# 打开第2、3行的注释,结果如下所示:
			server {
			        listen          8080;
			        server_name     example.com;

		6.启动zabbix上相关服务
		       zabbix-server
			 zabbix-agent
			 nginx
			 php-fpm

二.zabbix自定义监控项配置和警告配置(自己编写shell脚本)
		
		1.监控项服务器配置
			# key的语法格式
			UserParameter=key[*],<command> $1
			# key[*]中的*是参数,将会传给后面的位置变量$1
			UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
			zabbix_get -s 127.0.0.1 -k nginx_status[active]

			1)配置文件编写:/etc/zabbix/zabbix_agentd.d/usercnt.conf
					 
                         语法格式:UserParameter=usercnt(key),shell命令或者脚本(value)
					UserParameter=usercnt,sed -n '$=' /etc/passwd	
			    		UserParameter=custom,/aa/custom_checks.sh
					UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
	
			2)监控项脚本测试:
				systemctl restart zabbix-agent.service 
				yum install -y zabbix-get
				
				zabbix_get -s 127.0.0.1 -k usercnt(key):取出编写的配置文件返回结果
		
		2.自定义监控项流程(主机添加监控项的key)
			1)监测:主机
			2)配置:模板,自定义模板和群组
			3)主机:监控项,创建监控项目,填写key
			4)配置:主机添加模板
			5)监测:最新数据查看
			
		
			
三.zabbix警告配置

	1.概念
		默认情况下,监控项不会自动发送告警消息,需要配置触发器与告警.

	2.警告实现:
		触发器(当条件达到时,执行某个动作) + 动作(触发器条件达到后采取的行为)

	3.流程
		在监控项的基础上达到什么条件进行警告:
		警告类型:(媒介+用户+触发器+动作)
		1)报警媒介类型:email,钉钉脚本
		2)用户:admin(添加报警媒介)
		3)模板:触发器(创建触发器)
		4)动作:触发器动作(创建动作)


	4.钉钉机器人
		1.装包
			yum install -y python3-requests
			yum -y install unix2dos
	
		2.脚本
			# 编写钉钉机器人脚本
			[root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py 
			#!/usr/bin/env python3
			
			import json
			import requests
			import sys
			
			def send_msg(url, remiders, msg):
			    headers = {'Content-Type': 'application/json; charset=utf-8'}
			    data = {
			        "msgtype": "text",
			        "at": {
			            "atMobiles": remiders,
			            "isAtAll": False,
			        },
			        "text": {
			            "content": msg,
			        }
			    }
			    r = requests.post(url, data=json.dumps(data), headers=headers)
			    return r.text
			
			if __name__ == '__main__':
			    msg = sys.argv[1]
			    remiders = []
			    url = '钉钉机器人Webhook地址'  # 注意此处需输入机器人的webhook地址
			    print(send_msg(url, remiders, msg))
			    
			[root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
			
			[root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: test'  


四.zabbix自动发现
	1.自动发现概念:
		1)不需手动添加监控的主机设备,通过自动发现来添加监控设备主机

		2)自动发现可以实现
			发现主机,添加主机,添加主机到组

		3)自动发现实现步骤:
			自动发现规则+自动发现动作

	2.自动发现实现步骤(规则+动作)
		1)配置:自动发现(创建自动发现规则)
		2)配置发现动作
		3)配置主机:vim /etc/zabbix/zabbix_agentd.conf 
			117 Server=127.0.0.1,192.168.88.5
			182 Hostname=web2
			systemctl enable zabbix-agent.service --now
		
五.zabbix主动监控
	
	1.默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
		被动监控:Server-->Agent发起请求,索取监控数据。
		主动监控:Agent-->Server发起连接,向Server汇报.#解决server的负载问题

	2.配置主动监控
	
		1)修改配置文件:/etc/zabbix/zabbix_agentd.conf 

			117 # Server=127.0.0.1,192.168.88.5
			142 StartAgents=0	#同时处理多少来自Zabbix Server的请求
			171 ServerActive=192.168.88.5
			242 RefreshActiveChecks=120

		2)重启服务
			systemctl restart zabbix-agent.service 
			[root@web2 ~]# ss -tlnp | grep :10050  # 端口号消失
	
		3)界面上的配置
			创建主机填写要发现的主机名
			

六.zabbix的nginx监控项

	1.修改配置文件,启用stub_status功能
		50         location /status {   # 在此处添加3行
	 	51             stub_status on;
	 	52         } 
	  
		Active connections: 客户端与服务器连接数
		accepts:访问数
		handled:连接数
		requests:处理数
	
		Reading:读总数。
		Writing:向客户端发送响应。
		Waiting:空闲连接。

	2.编写配置文件,写key脚本
		# key的语法格式
		UserParameter=key[*],<command> $1
		# key[*]中的*是参数,任意数量传参,将会传给后面的位置变量$1
		
		# 创建声明key的文件
		[root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
		UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1	


	3.界面配置监控项,key
		1)将配置文件的key值加入监控项
		2)最新数据中查看监控项的数据

zabbix
一.zabbix监控搭建
二.zabbix自定义监控项配置
三.zabbix警告配置


一.zabbix监控搭建    
    1.概念    
        1)架构与组件
            分布式系统监视工具,支持跨平台监控
            mysql:
                数据持久化存储
            Zabbix Server:
                数据接收,回写
            Zabbix Agent:
                数据采集
            Zabbix web:
                数据展示

        2)核心概念
            主机:被监控端
            主机群组:管理和监控一组主机
            监控项:监控的具体指标
            模板:监控项、触发器等的集合

    2.准备工作
        1)环境:
        zabbixserver    192.168.88.5/24
        web1    192.168.88.100/24
        web2    192.168.88.200/24

        2)拷贝zabbix软件包到pubserver:
              scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.240:/var/ftp/rpms

        3)搭建节点的yum仓库vim 01-upload-repo.yml 


    3.搭建zabbix服务(zabbix机器)

        1.给zabbix机器上安装相应软件包
               zabbix-server-mysql
               mysql-server
                  zabbix-web-mysql
               zabbix-sql-scripts:管理Zabbix数据库的SQL脚本
               zabbix-agent
                  langpacks-zh_CN
                  zabbix-nginx-conf:通过nginx的web服务展示界面
                  zabbix-selinux-policy                

        2.配置数据库服务

            1)启动zabbix上的mysqld服务

            2)在zabbix上创建数据库,创建用户,授权数据库

                CREATE DATABASE zabbix
                CHARACTER SET utf8mb4    数据库的字符集为 utf8mb4
                COLLATE utf8mb4_bin;    数据库的排序规则为 utf8mb4_bin
            
                mysql> set global log_bin_trust_function_creators = 1;
                mysql> create user zabbix@localhost identified by 'zabbix';
                mysql> grant all privileges on zabbix.* to zabbix@localhost;
                mysql> quit;

                是否允许创建或修改存储函数和触发器,设置为 1 允许所有用户创建或修改这些对象
                创建了一个名为 zabbix 的新用户,该用户只能从 localhost 连接到数据库服务器,并且其密码被设置为 zabbix。
                授予了 zabbix 用户对 zabbix 数据库的所有表的全部权限,zabbix.* 表示 zabbix 数据库中的所有对象。

            3)验证数据库配置,如果登陆不到数据库表示上一步配置不正确
                 mysql -uzabbix -pzabbix -hlocalhost zabbix
                 
            4)导入zabbix需要的sql
                cp /usr/share/zabbix-sql-scripts/mysql/server.sql.gz .
                gzip -d server.sql.gz 
                mysql -uzabbix -pzabbix zabbix < server.sql

        3.配置zabbix_server
            [root@zabbixserver ~]# vim +129 /etc/zabbix/zabbix_server.conf
            DBPassword=zabbix

        4.配置zabbix_agent
            [root@zabbixserver ~]# vim /etc/zabbix/zabbix_agentd.conf 
            182 Hostname=zabbixserver

        5.配置nginx展示zabbix
            [root@zabbixserver ~]# vim /etc/nginx/conf.d/zabbix.conf
            # 打开第2、3行的注释,结果如下所示:
            server {
                    listen          8080;
                    server_name     example.com;

        6.启动zabbix上相关服务
               zabbix-server
             zabbix-agent
             nginx
             php-fpm

二.zabbix自定义监控项配置和警告配置(自己编写shell脚本)
        
        1.监控项服务器配置
            # key的语法格式
            UserParameter=key[*],<command> $1
            # key[*]中的*是参数,将会传给后面的位置变量$1
            UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
            zabbix_get -s 127.0.0.1 -k nginx_status[active]

            1)配置文件编写:/etc/zabbix/zabbix_agentd.d/usercnt.conf
                     
                         语法格式:UserParameter=usercnt(key),shell命令或者脚本(value)
                    UserParameter=usercnt,sed -n '$=' /etc/passwd    
                        UserParameter=custom,/aa/custom_checks.sh
                    UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1
    
            2)监控项脚本测试:
                systemctl restart zabbix-agent.service 
                yum install -y zabbix-get
                
                zabbix_get -s 127.0.0.1 -k usercnt(key):取出编写的配置文件返回结果
        
        2.自定义监控项流程(主机添加监控项的key)
            1)监测:主机
            2)配置:模板,自定义模板和群组
            3)主机:监控项,创建监控项目,填写key
            4)配置:主机添加模板
            5)监测:最新数据查看
            
        
            
三.zabbix警告配置

    1.概念
        默认情况下,监控项不会自动发送告警消息,需要配置触发器与告警.

    2.警告实现:
        触发器(当条件达到时,执行某个动作) + 动作(触发器条件达到后采取的行为)

    3.流程
        在监控项的基础上达到什么条件进行警告:
        警告类型:(媒介+用户+触发器+动作)
        1)报警媒介类型:email,钉钉脚本
        2)用户:admin(添加报警媒介)
        3)模板:触发器(创建触发器)
        4)动作:触发器动作(创建动作)


    4.钉钉机器人
        1.装包
            yum install -y python3-requests
            yum -y install unix2dos
    
        2.脚本
            # 编写钉钉机器人脚本
            [root@zabbixserver ~]# vim /usr/lib/zabbix/alertscripts/dingalert.py 
            #!/usr/bin/env python3
            
            import json
            import requests
            import sys
            
            def send_msg(url, remiders, msg):
                headers = {'Content-Type': 'application/json; charset=utf-8'}
                data = {
                    "msgtype": "text",
                    "at": {
                        "atMobiles": remiders,
                        "isAtAll": False,
                    },
                    "text": {
                        "content": msg,
                    }
                }
                r = requests.post(url, data=json.dumps(data), headers=headers)
                return r.text
            
            if __name__ == '__main__':
                msg = sys.argv[1]
                remiders = []
                url = '钉钉机器人Webhook地址'  # 注意此处需输入机器人的webhook地址
                print(send_msg(url, remiders, msg))
                
            [root@zabbixserver ~]# chmod +x /usr/lib/zabbix/alertscripts/dingalert.py
            
            [root@zabbixserver ~]# /usr/lib/zabbix/alertscripts/dingalert.py 'warn: test'  


四.zabbix自动发现
    1.自动发现概念:
        1)不需手动添加监控的主机设备,通过自动发现来添加监控设备主机

        2)自动发现可以实现
            发现主机,添加主机,添加主机到组

        3)自动发现实现步骤:
            自动发现规则+自动发现动作

    2.自动发现实现步骤(规则+动作)
        1)配置:自动发现(创建自动发现规则)
        2)配置发现动作
        3)配置主机:vim /etc/zabbix/zabbix_agentd.conf 
            117 Server=127.0.0.1,192.168.88.5
            182 Hostname=web2
            systemctl enable zabbix-agent.service --now
        
五.zabbix主动监控
    
    1.默认zabbix使用的是被动监控,主被动监控都是针对被监控主机而言的。
        被动监控:Server-->Agent发起请求,索取监控数据。
        主动监控:Agent-->Server发起连接,向Server汇报.#解决server的负载问题

    2.配置主动监控
    
        1)修改配置文件:/etc/zabbix/zabbix_agentd.conf 

            117 # Server=127.0.0.1,192.168.88.5
            142 StartAgents=0    #同时处理多少来自Zabbix Server的请求
            171 ServerActive=192.168.88.5
            242 RefreshActiveChecks=120

        2)重启服务
            systemctl restart zabbix-agent.service 
            [root@web2 ~]# ss -tlnp | grep :10050  # 端口号消失
    
        3)界面上的配置
            创建主机填写要发现的主机名
            

六.zabbix的nginx监控项

    1.修改配置文件,启用stub_status功能
        50         location /status {   # 在此处添加3行
         51             stub_status on;
         52         } 
      
        Active connections: 客户端与服务器连接数
        accepts:访问数
        handled:连接数
        requests:处理数
    
        Reading:读总数。
        Writing:向客户端发送响应。
        Waiting:空闲连接。

    2.编写配置文件,写key脚本
        # key的语法格式
        UserParameter=key[*],<command> $1
        # key[*]中的*是参数,任意数量传参,将会传给后面的位置变量$1
        
        # 创建声明key的文件
        [root@web1 ~]# vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
        UserParameter=nginx_status[*],/usr/local/bin/nginx_status.sh $1    


    3.界面配置监控项,key
        1)将配置文件的key值加入监控项
        2)最新数据中查看监控项的数据


http://www.kler.cn/a/427489.html

相关文章:

  • SpringCloud-Eureka与Dubbo(Zookeeper)的深度对比:微服务架构下的服务注册与发现
  • k8s-Informer之Indexer的解析(4)
  • 循序渐进kubenetes Service(Cluster ip、Nodeport、Loadbalancer)
  • 简易图书管理系统
  • 16 Java(junit)测试+Assert(断言测试)、枚举类、注解、javac编译和javap反编译命令、常量
  • 夏普MX-4608N复印机维修模式进入方法及载体初始化方法
  • 基于STM32的Wi-Fi无人机项目
  • 手写电子签名并保存到当前项目下
  • 【Spark】 groupByKey与reduceByKey的区别
  • Conda-Pack打包:高效管理Python环境
  • 安全生产培训题库200道;免费题库;大风车题库
  • ArrayList 底层结构和源码分析/注意事项
  • 基于Java Springboot环境保护生活App且微信小程序
  • 代码随想录-算法训练营day42(动态规划05:最后一块石头的重量2,目标和,一和零)
  • AttributeError: module numpy has no attribute int .报错解决
  • API设计指南:详解HTTP状态码错误解析、HTTP方法及参数命名规则
  • Uniapp的vue、nvue、uvue后缀名区别
  • CSS 实现视差滚动:详解 background-attachment 与 transform:translate3D 及应用
  • matlab Delaunay三角剖分提取平面点云的边界
  • 【随笔笔记】将mysql数据迁移到群晖NAS