Zabbix——基于LNMP架构搭建Zabbix监控

文章目录

  • 前言
    • 网络环境
    • 一、LNMP环境部署
      • 1、安装nginx
      • 2、安装mysq1
      • 3、安装php
      • 4、测试
    • 二、zabbix server部署
      • 1、安装部署zabbix
      • 2、优化字体 ,牵涉到图表中文乱码的问题
      • 3、web页面安装
    • 三、zabbix-agent端
      • 1、网络环境配置
      • 2、部署zabbix-agent
    • 四、监控验证
      • 1、添加被监控主机
      • 2、查看主机服务状态

前言

zabbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix由2部分构成,zabbix server与可选组件zabbix agent。zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。

zabbix监控范畴(全方位监控):

全面监控,适用于任何IT基础架构、服务、应用程序和资源的监控

  • 网络设备监控:采集网络中的所有性能指标和事件数据,全面监控网络性能,时间检测网络故障,排除故障并防止停机

  • 服务器监控:采集并监控物理和虚拟服务器可用性,CPU、磁盘空间和内存利用率等关键性能指标

  • Cloud监控:收集获取云资源的监控指标或用户自定义的监控指标,探测服务可用性,以及针对指标设置告警

  • 应用监控:全面实时获取应用性能数据,通过确保服务器与应用的正常健康运行,来保证关键业务系统的高可用性和性能

  • 服务监控:关注IT部门服务整体的可用性、SLA指标、现有IT基础设施架构的结构,以及更高层面的监控信息

zabbix官网 https://www.zabbix.com/

网络环境

节点 IP 部署软件
server监控端 192.168.11.25 LNMP、zabbix
client客户端 192.168.11.20 zabbix-agent

#清空防火墙规则,关闭核心防护

[root@server ~]# iptables -F
[root@server ~]# setenforce 0

#关闭网络管理

[root@server ~]# systemctl stop NetworkManager
[root@server ~]# systemctl disable NetworkManager

一、LNMP环境部署

1、安装nginx

① 通过官方下载nginx源

[root@server ~]# wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

如果下载进度条不动,再重新尝试下

② 创建nginx yum安装源

[root@server ~]# vim /etc/yum.repos.d/nginx.repo	
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

其中baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/, 把”OS”替换成”rhel”或者“centos”,把“OSRELEASE”替换成“6”
③ 安装并启动

[root@server ~]# yum list
[root@server ~]# yum install nginx -y
[root@server ~]# systemctl start nginx
[root@server ~]# systemctl enable nginx
[root@server ~]# netstat -ntap | grep nginx

2、安装mysq1

① 安装mariadb

[root@server ~]# yum install -y mariadb-server mariadb
[root@server ~]# systemctl enable mariadb.service
[root@server ~]# systemctl start mariadb.service
[root@server ~]# netstat -ntap | grep 3306

② 初始化配置

[root@server ~]# mysql_secure_installation 
Enter current password for root (enter for none): 	回车
Set root password? [Y/n]	yes
New password:			123
Re-enter new password:	123
Remove anonymous users?	no
Disallow root login remotely?	no
Remove test database and access to it?	no
Reload privilege tables now?	yes

③ 登录验证

[root@server ~]# mysql -uroot -p

Zabbix——基于LNMP架构搭建Zabbix监控_第1张图片

3、安装php

① 安装PHP相关包

[root@server ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

或wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

#安装yum源

[root@server ~]# cd /etc/yum.repos.d
[root@server yum.repos.d]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

#安装环境包

[root@server yum.repos.d]# yum install -y php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql

#查看php版本

[root@server yum.repos.d]# php -v

Zabbix——基于LNMP架构搭建Zabbix监控_第2张图片

② 修改php-fpm配置文件,把apache改为nginx

[root@server yum.repos.d]# vim /etc/php-fpm.d/www.conf 	
    user = nginx		#8行
    group = nginx		#10行

③ 配置nginx支持php

[root@server yum.repos.d]# vim /etc/nginx/conf.d/default.conf
	index index.php index.html index.htm;	#10行添加index.php

#配置php请求被传送到后端的php-fpm模块,去掉注释并修改
	location ~ \.php$ {
]	    root                     /usr/share/nginx/html;
	    fastcgi_pass       127.0.0.1:9000;
	    fastcgi_index      index.php;
	    fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
	    include                fastcgi_params;
                    }

把fastcgi_param中的/scripts改为$document_root。 root是配置php程序放置的根目录

④ 修改PHP配置文件

[root@server yum.repos.d]# vim /etc/php.ini
expose_php  = Off           	 #359行:隐藏php版本
short_open_tag = On    		 	 #202行:支持php短标签

#为PHP兼容zabbix进行修改,优化配置要求
max_execution_time = 300	 #368行:执行时间
max_input_time = 300		 #378行:接收数据等待时向
memory_limit = 128M 		 #389行:每个脚本占用内存
post_max_size = 16M 		 #656行:POST数据大小
upload_max_filesize = 2M 	 #799行:下载文件大小
always_populate_raw_post_data = -1    #800行:可以用$HTTP_RAW_POST DATA
date.timezone = Asia/Shanghai 	         #877行:时区

⑤ 开启服务

[root@server yum.repos.d]# systemctl start php-fpm
[root@server yum.repos.d]# systemctl enable php-fpm
[root@server yum.repos.d]# netstat -ntap | grep 9000

⑥ 重启下nginx服务

[root@server yum.repos.d]# systemctl restart nginx

4、测试

① 添加php测试首页

[root@server yum.repos.d]# vim /usr/share/nginx/html/info.php

#网页访问 192.168.11.25/info.php ,可看到PHP首页面
Zabbix——基于LNMP架构搭建Zabbix监控_第3张图片

② 测试连接数据库

[root@server yum.repos.d]# vim /usr/share/nginx/html/info.php

注: mysql_connect扩展自 PHP 5.5.0起已废弃,改用mysqli或pdo_mysql

#网页刷新 192.168.195.11/info.php ,可看到连接成功 !
Zabbix——基于LNMP架构搭建Zabbix监控_第4张图片
③ 建立数据库及用户并且授权

[root@server yum.repos.d]# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin123';
MariaDB [(none)]> flush privileges;

注:collate的作用:对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql

④ 测试连接zabbix数据库

[root@server yum.repos.d]# vim /usr/share/nginx/html/info.php

#本地连接测试

[root@server yum.repos.d]# mysql -uzabbix -padmin123

报错:
ERROR 1045 ( 28000): Access denied for user ’ zabbix’@‘localhost’ (using password:YES)
原因:这是 由于被空用户占用资源
解决:删除空用户即可

[root@server yum.repos.d]# mysql -u root -p
MariaDB [(none)]> select user,host from mysql.user;

Zabbix——基于LNMP架构搭建Zabbix监控_第5张图片

MariaDB [(none)]> drop user ''@localhost;

Zabbix——基于LNMP架构搭建Zabbix监控_第6张图片
#重新登录就可以登进去了

[root@server yum.repos.d]# mysql -uzabbix -padmin123

Zabbix——基于LNMP架构搭建Zabbix监控_第7张图片

#网页刷新 192.168.11.25/info.php ,就可以看到 zabbix数据库连接成功 !
Zabbix——基于LNMP架构搭建Zabbix监控_第8张图片

二、zabbix server部署

1、安装部署zabbix

① 下载zabbix源并安装

[root@server ~]# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@server ~]# yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y

可能会下载失败,是源的问题,多次尝试下载

② 导入数据库脚本

[root@server ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix   #生成数据库文件,注意密码不要输成root的
[root@server ~]# mysql -u zabbix -p
Enter password: 	#输入zabbix密码
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;

Zabbix——基于LNMP架构搭建Zabbix监控_第9张图片

③ 修改zabbix配置文件

[root@server ~]# vim /etc/zabbix/zabbix_server.conf
38  LogFile=/var/log/zabbix/zabbix_server.log
49  LogFileSize=0
72  PidFile=/var/run/zabbix/zabbix_server.pid
82  SocketDir=/var/run/zabbix
91  DBHost=localhost	      #注释去掉,数据库存放地址,目前是本地
101 DBName=zabbix
117 DBUser=zabbix
125 DBPassword=admin123     #注释去掉,zabbix的密码
357 SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
475 Timeout=4
518 AlertScriptsPath=/usr/lib/zabbix/alertscripts 
529 ExternalScripts=/usr/lib/zabbix/externalscripts
565 LogSlowQueries=3000

2、优化字体 ,牵涉到图表中文乱码的问题

[root@server ~]# vim /usr/share/zabbix/include/defines.inc.php
#将字体替换为kaiti

Zabbix——基于LNMP架构搭建Zabbix监控_第10张图片

:%s /graphfont/kaiti/g也可使用全文替换

#从微软系统下复制相应的字体文件到/usr/share/zabbix/fonts 目录中,目录需要自信创建

[root@server ~]# mkdir /usr/share/zabbix/fonts 
[root@server zabbix]# ls			#上传后查看确定已存在

Zabbix——基于LNMP架构搭建Zabbix监控_第11张图片

#授权

[root@server fonts]# cp -r /usr/share/zabbix/ /usr/share/nginx/html/
[root@server fonts]# chown -R zabbix:zabbix /etc/zabbix/
[root@server fonts]# chown -R zabbix:zabbix /usr/share/nginx/
[root@server fonts]# chown -R zabbix:zabbix /usr/lib/zabbix/
[root@server fonts]# chmod -R 755 /etc/zabbix/web/
[root@server fonts]# chmod -R 777 /var/lib/php/session/

#开启服务

[root@server fonts]# systemctl start zabbix-server.service
[root@server fonts]# systemctl enable zabbix-server.service
[root@server fonts]# systemctl start zabbix-agent.service
[root@server fonts]# systemctl enable zabbix-agent.service
[root@server fonts]# netstat -ntap | grep 10051
tcp    0   0 0.0.0.0:10051       0.0.0.0:*             LISTEN      60468/zabbix_server 
tcp    0   0 127.0.0.1:10051     127.0.0.1:40646       TIME_WAIT   -                   
tcp6   0   0 :::10051            :::*                  LISTEN      60468/zabbix_server
[root@server fonts]# systemctl restart php-fpm.service
[root@server fonts]# systemctl restart nginx

3、web页面安装

#网页访问 http://192.168.11.25/zabbix
Zabbix——基于LNMP架构搭建Zabbix监控_第12张图片

按步骤安装
Zabbix——基于LNMP架构搭建Zabbix监控_第13张图片Zabbix——基于LNMP架构搭建Zabbix监控_第14张图片Zabbix——基于LNMP架构搭建Zabbix监控_第15张图片Zabbix——基于LNMP架构搭建Zabbix监控_第16张图片

#这时会遇到报错,按提示点击下载配置文件zabbix.con.php并保存至/etc/zabbix/web/

[root@server fonts]# cd /etc/zabbix/web/
[root@server fonts]# ll

Zabbix——基于LNMP架构搭建Zabbix监控_第17张图片

#授权并重启服务

[root@server web]# chown zabbix.zabbix /etc/zabbix/web/zabbix.conf.php
[root@server web]# systemctl restart zabbix-server.service

#这时回到web页面继续安装
Zabbix——基于LNMP架构搭建Zabbix监控_第18张图片

#安装后登录 用户名: Admin 密码: zabbix
Zabbix——基于LNMP架构搭建Zabbix监控_第19张图片

点击右上角 用户头像 更改字体
Zabbix——基于LNMP架构搭建Zabbix监控_第20张图片Zabbix——基于LNMP架构搭建Zabbix监控_第21张图片Zabbix——基于LNMP架构搭建Zabbix监控_第22张图片
字体更改完成

三、zabbix-agent端

配置代理端就是被控服务器

1、网络环境配置

#清空防火墙规则,关闭核心防护

[root@client ~]# iptables -F
[root@client ~]# setenforce 0

#关闭网络管理

[root@client ~]# systemctl stop NetworkManager
[root@client ~]# systemctl disable NetworkManager

2、部署zabbix-agent

① 下载源并安装zabbix-agent

[root@client ~]# rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
[root@client ~]# yum install -y zabbix-agent

② 修改配置文件

检查配置文件并指定监控服务器

[root@client ~]# vim /etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.11.25		#指向监控服务器
ServerActive=192.168.11.25 	#指问监控服务器
Hostname=test1                  #指定名称
Include=/etc/zabbix/zabbix_agentd.d/*.conf

③ 重启服务

[root@client ~]# systemctl enable zabbix-agent.service
[root@client ~]# systemctl restart zabbix-agent.service

④ 检查端口

[root@client ~]# netstat -anpt | grep zabbix      #监听10050端口已开启

Zabbix——基于LNMP架构搭建Zabbix监控_第23张图片

四、监控验证

1、添加被监控主机

在zabbix图形界面—配置–主机–创建主机(定义主机名称,添加群组,填写主机IP地址) --模板–选定要监控的模板 (httpd sshd 服务)–选择–添加(添加连接模板)–添加(添加主机)

① 创建主机
Zabbix——基于LNMP架构搭建Zabbix监控_第24张图片

② 添加模板
Zabbix——基于LNMP架构搭建Zabbix监控_第25张图片Zabbix——基于LNMP架构搭建Zabbix监控_第26张图片Zabbix——基于LNMP架构搭建Zabbix监控_第27张图片
③ 添加主机完成
Zabbix——基于LNMP架构搭建Zabbix监控_第28张图片

此时就能监听httpd sshd 服务,出现问题就会显示到web界面

2、查看主机服务状态

① 异常查看

#查看client端并未安装httpd服务

[root@client ~]# rpm -q httpd
[root@client ~]# systemctl status sshd

Zabbix——基于LNMP架构搭建Zabbix监控_第29张图片

#zabbix的web监控页面检测到httpd服务异常
Zabbix——基于LNMP架构搭建Zabbix监控_第30张图片
③ 正常恢复

#安装并开启httpd服务

[root@client ~]# yum install -y httpd
[root@client ~]# netstat -ntap | grep httpd

在这里插入图片描述

#zabbix监控页面查看

httpd服务开启后,异常已恢复
Zabbix——基于LNMP架构搭建Zabbix监控_第31张图片

你可能感兴趣的:(Zabbix,zabbix,LNMP)