Zabbix监控之LNMP平台部署
一.Zabbix简介
- zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
- zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
1.Zabbix组成
Zabbix由2部分构成:
Zabbix server与可选组件Zabbix agent。
Zabbix server
- zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能,它可以运行在Linux,Solaris,HP-UX,AIX,Free BSD,Open BSD,OS X等平台上。
- Zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询
可选组件zabbix agent
- Zabbix agent主动接收监视数据(agent方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如:net-snmp)等配合使用
2.Zabbix功能
- Zabbix具备常见的商业监控软件所具备的功能(主机的性能监控、网络设备性能监控、数据库性能监控、FTP等通用协议监控、多种告警方式、详细的报表图表绘制)支持自动发现网络设备和服务器;支持分布式,能集中展示、管理分布式的监控点;扩展性强,server提供通用接口,可以自己开发完善各类监控。
3.Zabbix优势与劣势
优势:
- 开源,无软件成本投入;Server对设备性能要求低(实际测试环境:虚拟机CentOS5,2GCPU 1G内存,监控5台设备,CPU使用率基本保持在10%以下,内存剩余400M以上);支持设备多;支持分布式集中管理;开放式接口,扩展性强。
劣势:
- 中文资料较少
4.Zabbix架构
- Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理
二.LNMP之Zabbix部署
1.实验环境
主机 | IP地址 |
---|---|
server | 192.168.13.131 |
agent | 192.168.13.132 |
##关闭防火墙,两台主机都需要操作##
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
2.server端配置(192.168.13.131)
1.安装nginx
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm #官网下载nginx
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 list #重新加载
yum install -y nginx #安装nginx
systemctl start nginx #开启服务
netstat -ntap | grep nginx #查看服务是否开启
打开网页访问 http://192.168.13.131
2.安装mysql
yum install -y mariadb-server mariadb #安装服务
systemctl start mariadb.service #开启服务
systemctl enable mariadb.service #设置服务开机自启动
mysql_secure_installation #设置mysql
3.安装PHP
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm #安装PHP源
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm #yum仓库生成
yum install -y php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql #安装软件包
php -v #查看版本
4.配置nginx支持php
vim /etc/php-fpm.d/www.conf #修改php-fpm配置文件
#第8行 user = nginx #把apache改为nginx
#第10行 group = nginx
vim /etc/nginx/conf.d/default.conf #配置location,在index中添加index.php
#第10行 index index.php index.html index.htm; #添加index.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 $document_root$fastcgi_script_name;
include fastcgi_params;
}
5.配置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.service #开启服务
systemctl enable php-fpm.service #设置服务自启动
netstat -ntap | grep 9000 #查看端口看服务是否开启
systemctl restart nginx #重启服务
6.测试PHP首页
vim /usr/share/nginx/html/info.php #编写测试首页
<?php
phpinfo();
?>
打开浏览器访问:http://192.168.13.131/info.php
7.测试连接数据库
vim /usr/share/nginx/html/info.php #删除php测试首页,重新编写,如下
<?php
$link=mysqli_connect('127.0.0.1','root','123456');
if ($link) echo "连接成功!!";
else echo "连接失败!!";
?>
8.安装zabbix
mysql -uroot -p #进入mysql,准备zabbix数据库
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
GRANT all privileges ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'admin666';
flush privileges;
select user,host from mysql.user; #查看,空用户名称占用会导致本地无法登录远程,所以需要删除
drop user ''@localhost; #删除空用户
drop user ''@localhost.localdomain; #删除空用户
select user,host from mysql.user; #再次查看确认是否删除
vim /usr/share/nginx/html/info.php #检查用户能否登录数据库,删除之前设置的
<?php
$link=mysqli_connect('127.0.0.1','zabbix','admin666');
if ($link) echo "Zabbix数据库连接成功!";
else echo "Zabbix数据库连接失败!";
?>
##刷新网页,显示连接成功##
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安装yum源
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y #安装相关环境包
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 #注释去掉
#100:DBName=zabbix
#116:DBUser=zabbix
#124:DBPassword=admin123 #修改本行
#356:SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
#473:Timeout=4
#516:AlertScriptsPath=/usr/lib/zabbix/alertscripts
#527:ExternalScripts=/usr/lib/zabbix/externalscripts
#563:LogSlowQueries=3000
grep -n '^'[a-Z] /etc/zabbix/zabbix_server.conf #检查修改的配置文件是否正确
##可选操作可不执行直接下一步##
vim /usr/share/zabbix/include/defines.inc.php #修正图表中文乱码
%s /graphfont/kaiti/g #末行模式全局替换
cp STKAITI.TTF /usr/share/zabbix/fonts/ #从微软系统下复制相应的字体文件
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/
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix #生成数据库文件,密码是zabbix数据库密码
mysql -uzabbix -p #进入zabbix数据库,查看文件是否存在
use zabbix;
show tables;
vim /etc/httpd/conf.d/zabbix.conf #修改时区
#第20行 php_value date.timezone Asia/Shanghai
##开启服务##
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
systemctl restart php-fpm.service
systemctl restart nginx
出现这个问题再次回到server客户端设置下即可
cd /etc/zabbix/web/
rz zabbix.conf.php
chmod -R +x /etc/zabbix/
浏览器登录zabbix:
输入:http://192.168.13.131/zabbix/
用户名Admin 密码:zabbix
##进不去的话重新登录就可以了,192.168.226.128/zabbix##
4.client端配置(192.168.13.132)
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
yum -y install zabbix-agent #安装zabbix存储库与agent代理服务
vim /etc/zabbix/zabbix_agentd.conf #修改zabbix代理配置文件
#98行 Server=192.168.200.40 #指向监控服务器地址
#139行 ServerActive=192.168.200.40 #指向监控服务器地址
#150行 Hostname=Zabbix-test #修改名称
systemctl start zabbix-agent.service #开启服务
systemctl enable zabbix-agent.service #设置开机自启动
Zabbix 监控服务器