部署zabbix

1.监控概述
1.1 监控概述
1.1.1 监控的目的
- 报告系统运行状况
每一部分必须同时监控
内容包括吞吐量、反应时间、使用率等
- 提前发现问题
进行服务器性能调整前,知道调整什么
找出系统的瓶颈在什么地方
1.1.2 监控的资源类别
- 公开数据
Web、FTP、SSH、数据库等应用服务
TCP或UDP端口
- 私有数据
CPU、内存、磁盘、网卡流量等使用信息
用户、进程等运行信息
1.1.3 系统监控命令

  ps(查看进程信息) 			uptime(查看CPU负载(1,5,15分钟)  
  free(查看内存信息) 			swapon -s(查看交换分区信息) 
  df -h(查看所有磁盘的使用率) 	ss -antup (查看所有的网络连接信息)
  ifconfig(查看网卡信息) 		netstat或ss(查看端口信息) ping 	 
  traceroute (路由追踪)
  iostat  (查看磁盘信息)-->%iowait(数字越大越不好)

1.1.4 自动化监控系统
- Cacti
基于SNMP协议的监控软件,强大的绘图能力
- Nagios
基于Agent监控,强大的状态检查与报警机制
插件极多,自己写监控脚本潜入到Nagios非常方便
- Zabbix
基于多种监控机制,支持分布式监控

1.1.5 zabbix具有的监控功能
- 具备常见的商业监控软件所具备的功能
- 主机性能监控、网络设备监控、数据库监控等
- 支持多种报警机制
- 支持自动发现网络设备和服务器
- 可以通过配置自动发现服务器规则来实现
- 支持分布式,能集中展示、管理分布式的监控点
- 编写插件容易,可以自定义监控项
- 具有实时绘图功能

1.1.6 监控拓扑
- 监控服务器
监控服务器可以通过SNMP或Agent采集数据
数据可以写入mysql、oracle等数据库中
服务器使用LNMP实现web前端的管理
2.zabbix基础
2.1 zabbix介绍
- zabbix是一个高度集成的监控解决方案
- 可以实现企业级的开源分布式监控
- zabbix通过C/S模式采集监控数据
- zabbix通过B/S模式实现web管理

监控拓扑

  • 监控服务器
    监控服务器可以通过SNMP或Agent采集数据
    数据可以写入mysql、oracle等数据库中
    服务器使用LNMP实现web前端的管理
  • 被监控主机
    被监控主机需要安装Agent
    常见的网络设备一般支持SNMP

2.2 部署LNMP(关闭防火墙、SELinux)
2.2.1 安装nginx及其依赖包

[student@room9pc01 ~]$ scp -r /linux-soft/03/Zabbix/ root@192.168.2.5:/root
[root@zabbix1 ~]# yum -y install gcc zlib-devel openssl-devel pcre-devel 
[root@zabbix1 ~]# yum -y install php-fpm php php-mysql
[root@zabbix1 ~]# yum -y install mariadb mariadb-devel mariadb-server
[root@zabbix1 ~]# cd Zabbix/
[root@zabbix1 Zabbix]# tar -xf nginx-1.12.2.tar.gz 
[root@zabbix1 Zabbix]# cd nginx-1.12.2/
[root@zabbix1 nginx-1.12.2]# ./configure --with-http_ssl_module
[root@zabbix1 nginx-1.12.2]# make && make install

2.2.2 修改nginx配置

[root@zabbix1 ~]# vim /usr/local/nginx/conf/nginx.conf
   location ~ \.php$ {
           root           html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
     	  #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           include        fastcgi.conf;
       }
:wq

2.2.5 启动服务

[root@zabbix1 ~]# /usr/local/nginx/sbin/nginx 
[root@zabbix1 ~]# netstat -ntlup | grep :80

[root@zabbix1 ~]# systemctl restart php-fpm
[root@zabbix1 ~]# netstat -ntlup | grep :9000

[root@zabbix1 ~]# systemctl restart mariadb
[root@zabbix1 ~]# netstat -ntlup | grep :3306

2.2.4 测试页面

[root@zabbix1 ~]# vim /usr/local/nginx/html/test.php
	<?php
	$i=33;
	echo $i;
	?>
[root@zabbix1 ~]# curl 192.168.2.5/test.php

2.3 安装源码zabbix软件

[root@zabbix1 ~]# yum -y install net-snmp-devel curl-devel libevent-devel
[root@zabbix1 ~]# cd Zabbix/
[root@zabbix1 Zabbix]# tar -xf zabbix-3.4.4.tar.gz
[root@zabbix1 Zabbix]# cd zabbix-3.4.4/
[root@zabbix1 zabbix-3.4.4]# ./configure 
	--enable-server 	#--enable-server安装部署zabbix服务器端软件
	--enable-proxy 		#--enable-proxy安装部署zabbix代理相关软件
	--enable-agent 		#--enable-agent安装部署zabbix被监控端软件				
	--with-mysql=/usr/bin/mysql_config 		#--with-mysql配置mysql_config路径
	--with-net-snmp 					#--with-net-snmp允许zabbix通过snmp协议监控其他设备
	--with-libcurl
		#--with-libcurl安装相关curl库文件,这样zabbix就可以通过curl连接http等服务,测试被监控主机服务的状态
[root@zabbix1 Zabbix]# make && make install

2.4 创建存储数据的库表及连接用户

[root@zabbix1 ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8;		#创建数据库,支持中文字符集
MariaDB [(none)]> grant all on zabbix.* to zabbix@"localhost" identified by "zabbix";
MariaDB [(none)]> exit								#创建可以访问数据库的账户与密码
[root@zabbix1 ~]# cd Zabbix/zabbix-3.4.4/
[root@zabbix1 zabbix-3.4.4]# ls
[root@zabbix1 zabbix-3.4.4]# cd database/mysql/
[root@zabbix1 mysql]# ls
[root@zabbix1 mysql]# mysql -uzabbix -pzabbix zabbix < schema.sql
[root@zabbix1 mysql]# mysql -uzabbix -pzabbix zabbix < images.sql 
[root@zabbix1 mysql]# mysql -uzabbix -pzabbix zabbix < data.sql
						 	#使用mysql导入这些数据即可(注意导入顺序)
[root@zabbix1 ~]# cd Zabbix/zabbix-3.4.4/frontends/php/
[root@zabbix1 php]# cp -a * /usr/local/nginx/html/
[root@zabbix1 php]# chmod -R 777 /usr/local/nginx/html/*

2.5 做初始化准备
2.5.1 修改nginx服务运行参数

  [root@zabbix1 ~]# vim /usr/local/nginx/conf/nginx.conf
	http {
     fastcgi_buffers 8 16k;				  #缓存php生成的页面内容,8个16k
   	 fastcgi_buffer_size  32k;			  #缓存php生产的头部信息
   	 fastcgi_connect_timeout 300;	 	  #连接PHP的超时时间
   	 fastcgi_send_timeout 300;			  #发送请求的超时时间
   	 fastcgi_read_timeout 300;			  #读取请求的超时时间
	...
	}
:wq
   [root@zabbix1 ~]# /usr/local/nginx/sbin/nginx -s stop
   [root@zabbix1 ~]# /usr/local/nginx/sbin/nginx 
   [root@zabbix1 ~]# netstat -ntlup | grep :80

2.5.2 安装依赖软件包

   [root@zabbix1 ~]# yum -y install php-mbstring php-gd php-ldap php-xml php-bcmath 

2.5.3 修改php.ini配置文件

[root@zabbix1 ~]# vim /etc/php.ini 
   date.timezone = Asia/Shanghai 	#设置时区
   max_execution_time = 300			#最大执行时间,秒
   post_max_size = 32M				#POST数据最大容量
   max_input_time = 300				#服务器接收数据的时间限制

2.5.4 启动php-fpm服务

[root@zabbix1 ~]# systemctl restart php-fpm
[root@zabbix1 ~]# tail -f  /usr/local/nginx/logs/error.log 		#动态查看错误日志

2.6.1 欢迎页面

   [student@room9pc01 ~]$ firefox http://192.168.2.5/index.php(确定都是OK的状态)   	

2.7 登陆管理页面
2.8 启动zabbix监控服务
2.8.1 修改配置文件

[root@zabbix1 ~]# vim /usr/local/etc/zabbix_server.conf
	 12 # ListenPort=10051					#默认端口
	 38 LogFile=/tmp/zabbix_server.log			#设置日志文件
	 85 # DBHost=localhost					#数据库主机
	 95 DBName=zabbix						#设置数据库名称
	111 DBUser=zabbix						#设置数据库账号
	119 DBPassword=zabbix					#设置数据库密码
:wq

2.8.2 启动服务

[root@zabbix1 ~]# zabbix_server
	zabbix_server [3864]: user zabbix does not exist
	zabbix_server [3864]: cannot run as root!
[root@zabbix1 ~]# useradd zabbix				#不创建用户无法启动服务
[root@zabbix1 ~]# zabbix_server				#启动服务 

[root@zabbix1 ~]# killall -9 zabbix_server			#停止服务

2.8.3 查看服务信息

[root@zabbix1 ~]# netstat -ntlup | grep :10051
	tcp    0   0 0.0.0.0:10051    0.0.0.0:*     LISTEN   3879/zabbix_server  

3.zabbix监控服务
3.1 监控远端主机
3.1.1 配置客户端(被监控主机)192.168.2.100
- 安装软件

[student@room9pc01 ~]$ scp -r /linux-soft/03/Zabbix/ root@192.168.2.100:/root
[root@web1 ~]# yum -y install gcc pcre-devel
[root@web1 ~]# cd Zabbix/
[root@web1 Zabbix]# tar -xf zabbix-3.4.4.tar.gz 
[root@web1 Zabbix]# cd zabbix-3.4.4/
[root@web1 zabbix-3.4.4]# ./configure --enable-agent
[root@web1 zabbix-3.4.4]# make install

[root@web1 zabbix-3.4.4]# ls /usr/local/etc/
	zabbix_agentd.conf  zabbix_agentd.conf.d
[root@web1 zabbix-3.4.4]# ls /usr/local/bin/
	eip  setip  zabbix_get  zabbix_sender
[root@web1 zabbix-3.4.4]# ls /usr/local/sbin
	zabbix_agentd
  • 修改配置文件

    [root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
     93 Server=127.0.0.1,192.168.2.5		#允许访问服务地址列表
    101 # ListenPort=10050	
    	134 ServerActive=192.168.2.5:10051		#监控服务器Ip地址
    30 LogFile=/tmp/zabbix_agentd.log		    #日志文件
    :wq
    
  • 启动服务

    [root@web1 ~]# zabbix_agentd 
      zabbix_agentd [8397]: user zabbix does not exist
      zabbix_agentd [8397]: cannot run as root
    [root@web1 ~]# useradd zabbix	
    [root@web1 ~]# zabbix_agentd 			#启动服务
    
  • 查看服务状态

    [root@web1 ~]# netstat -ntlup | grep :10050
    [root@web1 ~]# killall -9 zabbix_agentd
    

    3.1.2 配置监控服务器192.168.2.5
    - 管理员admin登陆web页面 做如下操作:
    1. 添加监控主机
    配置—>主机–>创建主机(主机名称,可见的名称、新的群组、agent代理程序的接口)–>添加
    2. 选择监控模板
    配置–>主机–>名称–>模板–>选择(Template App HTTP Service、Template OS Linux)–>添加–>更新
    3.查看监控数据
    监测中–>最新数据–>主机群组–>主机–应用集–>应用
    安装httpd启动服务

3.2 自定义监控项(在客户端定义监控命令.给监控服务器使用)
3.2.1 配置客户端 192.168.2.100
- 允许自定义监控命令

[root@web1 ~]# wc -l /etc/passwd | awk '{print $1}'
[root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf
	264  Include=/usr/local/etc/zabbix_agentd.conf.d/
	280  UnsafeUserParameters=1
:wq
  • 定义监控命令

    [root@web1 ~]# vim /usr/local/etc/zabbix_agentd.conf.d/count.line.passwd
    	UserParameter=count.line.passwd,wc -l /etc/passwd | awk '{print $1}'
    :wq
    
  • 重启服务

     [root@web1 ~]# killall -9 zabbix_agentd
     [root@web1 ~]# zabbix_agentd
    
  • 测试定义的监控命令

     [root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd(不需要绝对路径)
     22
     [root@web1 ~]# useradd lala
     [root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd
     23
     [root@web1 ~]# userdel lala
     [root@web1 ~]# zabbix_get -s 127.0.0.1 -k count.line.passwd
     22
    

    3.2.2 配置服务器 192.168.2.5
    管理员登陆web页面做如下配置:

    • 创建新模板 ATMP
      配置–>模板–>创建模板(模版名称、可见的名称、新的群组)–>添加

    • 创建新应用集 mon_users
      配置–>模板–>应用集–>创建应用集(名称)–>添加

    • 创建新监控项 mon_web100_user
      配置–>模板–>监控项–>创建监控项(名称、键值、信息类型、应用集)–>添加

    • 监控主机100使用新创建的模板 ATMP
      配置–>主机–>名称–>模板–>选择–>添加–>更新

    • 查看监控数据
      监测中–>最新数据–>主机群组–>主机–应用集–>应用

    • 删除模板
      配置->主机–>模板–>取消链接并清除…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值