目录
一、zabbix的概述
1、zabbix的介绍
2、zabbix的功能
3、zabbix的主要特点
4、zabbix组件
5、zabbix原理
二、基于LNMP环境搭建zabbix监控
1、zabbix server(监控端)
2、配置代理端
3、配置邮件报警功能
4、Web 页面配置监控机制
一、zabbix的概述
1、zabbix的介绍
zabbix 是一款开源的功能强大的分布式监控系统,一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix server可以通过SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视。
zabbix是由2部分构成,分别是zabbix server(监控端)与zabbix agent(被监控端)。
2、zabbix的功能
CPU负荷
内存使用
磁盘使用
网络状况
端口监视
日志监视
3、zabbix的主要特点
(1)安装与配置简单,学习成本低
(2)支持多语言(包括中文)
(3)免费开源
(4)自动发现服务器与网络设备
(5)分布式监视以及WEB集中管理功能
(6)可以无agent监视
(7)用户安全认证和柔软的授权方式
(8)通过WEB界面设置或查看监视结果
(9)email等通知功能
4、zabbix组件
(1)zabbix server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行
(2)zabbix database:用户存储所有配置信息,以及存储由zabbix server收集到的数据
(3)zabbix web:zabbix的interface接口,通常与Server运行在同一台主机上
(4)zabbix agent:部署在被监控主机上,负责收集本地数据发往server端或proxy端
(5)zabbix proxy:常用于分布监控环境中,代理Server收集部分被监控的监控数据并统一发往Server端(通常大于500台主机才需要使用)
5、zabbix原理
zabbix agent安装在被监控的主机上,负责定期收集被监控端的本地各项数据,并发送至zabbix server端,zabbix server收到数据,将数据存储到数据库( zabbix database)中,用户基于zabbix web的可视化界面可以看到前端数据图像。当zabbix监控某个具体的项目时,该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(SHELL 命令、Reboot、Restart、Install等)。
二、基于LNMP环境搭建zabbix监控
1、基于LNMP环境搭建zabbix监控
(1)环境搭建
1、server
ip地址 192.168.222.30
2、client
ip地址 192.168.222.40
(2)安装nginx
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum clean all && yum list
yum install nginx -y
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx
(3)部署mariadb
yum -y install mariadb*
systemctl start mariadb.service
systemctl enable mariadb.service
netstat -natp | grep 3306
#mysql安全配置向导
mysql_secure_installation
回车
y
123123
123123
n
n
n
y
(4)部署php
yum -y install epel-release.noarch
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysql
php -v
vim /etc/php-fpm.d/www.conf
==8修改用户==
user = nginx
==10修改组==
group = nginx
vim /etc/nginx/conf.d/default.conf
//10 index.php
//30-36 取消注释
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
vim /etc/php.ini
//202 short_open_tag = On
//359 expose_php = Off
//368 max_execution_time = 300
//378 max_input_time = 300
//656 post_max_size = 16M
//799 upload_max_filesize = 2M
//800 always_populate_raw_post_data = -1
//877 date.timezone = Asia/Shanghai
systemctl start php-fpm
systemctl enable php-fpm
netstat -natp | grep 9000
(4)测试连接数据库
vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','root','123123');
if ($link) echo '连接成功';
else echo '连接失败';
?>
==真机访问==
http://192.168.222.30/info.php
(5)数据库授权
mysql -u root -p
//创建zabbix库,创库时设置好字符集问题
create database zabbix character set utf8 collate utf8_bin;
//创建数据库用户及配置用户权限
grant all privileges on *.* to 'zabbix'@'%' identified by 'admin123';
//重载权限表
flush privileges;
(6)安装zabbix
//安装一个zabbix仓库;
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-2.el7.noarch.rpm
//安装Zabbix server,Web前端,agent
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
(7) 导入数据库脚本,初始架构和数据
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
(8)修改zabbix配置文件
vim /etc/zabbix/zabbix_server.conf
//91行;去掉注释;连接本地的数据库
DBHost=localhost
//124行;修改本行;数据库密码
DBPassword=admin123
#----------------其他相关配置(比较重要的配置,看情况修改)------------------------
//38行;日志文件位置
LogFile=/var/log/zabbix/zabbix_server.log
//49行;日志文件大小;设置为0,不限制日志文件大小
LogFileSize=0
//72行;pid文件位置
PidFile=/var/run/zabbix/zabbix_server.pid
//82行;套接字文件位置;套接字是计算机之间进行通信的一种约定或一种方式
SocketDir=/var/run/zabbix
//100行;数据库名
DBName=zabbix
//116行;数据库用户名
DBUser=zabbix
//356行;采用的网络管理协议SNMP
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
//473行;超时时间
Timeout=4
//516行;脚本文件
AlertScriptsPath=/usr/lib/zabbix/alertscripts
//527行;扩展脚本文件
ExternalScripts=/usr/lib/zabbix/externalscripts
//563行;慢日志时间,超过3000秒记录
LogSlowQueries=3000
(9)启动zabbix及相关服务
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/
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service
netstat -anpl | grep 10051
netstat -anpl | grep 10050
systemctl restart php-fpm.service
systemctl restart nginx
验证
2、配置代理端
(1)安装zabbix存储库与agent代理服务
systemctl stop firewalld.service
setenforce 0
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
yum -y install zabbix-agent
(2) 修改主配置文件
vim /etc/zabbix/zabbix_agentd.conf
//98行;指向监控服务器地址
Server=192.168.222.30
//139行;指向监控服务器地址
ServerActive=192.168.222.30
//150行;修改名称
Hostname=kgc
#------------------其他内容了解--------------
//13行;pid文件位置
PidFile=/var/run/zabbix/zabbix_agentd.pid
//32行;日志文件位置
LogFile=/var/log/zabbix/zabbix_agentd.log
//43行;日志文件大小;设置为0,不限制日志文件大小
LogFileSize=0
//268行;包含zabbix_agentd.d目录下的所有.conf结尾的配置文件
Include=/etc/zabbix/zabbix_agentd.d/*.conf
service firewalld stop
setenforce 0
systemctl enable zabbix-agent.service
systemctl restart zabbix-agent.service
netstat -anpt | grep zabbix //监听在10050端口
3、配置邮件报警功能
安装邮件
yum -y install mailx
vim /etc/mail.rc
#末行添加
set from=QQ号@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=QQ号@qq.com
set smtp-auth-password=授权码
set smtp-auth=login
#测试能否正常发送
echo 'hello lic' | mail -s 'test' QQ号@qq.com
#编写发送邮件的shell脚本,一定要在这个目录下
cd /usr/lib/zabbix/alertscripts/
vim mailx.sh
#!/bin/bash
#send mail
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
#创建日志文件
touch /tmp/mailx.log
#赋权
chown -R zabbix.zabbix /tmp/mailx.log
chmod +x /usr/lib/zabbix/alertscripts/mailx.sh
chown -R zabbix.zabbix /usr/lib/zabbix/
#测试脚本
. /usr/lib/zabbix/alertscripts/mailx.sh QQ号@qq.com "zabbix" "hello world"
4、Web 页面配置监控机制