Zabbix 是一个企业级分布式开源监控解决方案
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。
所有的监控,承载的协议都离不开SNMP
Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA 积极的持续开发更新维护, 并为用户提供技术支持服务。
Zabbix 是一个高度成熟完善的网络监控解决方案,一个的软件包中包含了多种功能。
数据采集
灵活的阈值定义
高度可配置化的告警
实时图形
Web 监控功能
丰富的可视化选项
历史数据存储
内置数据管理机制(housekeeping)。
配置简单
使用模板
网络发现
快捷的Web 界面
Zabbix API
权限管理系统
功能强大且易于扩展的 Zabbix Agent
二进制守护进程
适应更复杂的环境
主机 | 操作系统 | IP地址 | 所需软件 |
---|---|---|---|
server | CentOS7.6 | 192.168.217.40 | / |
client | CentOS7.6 | 192.168.217.60 | / |
server(192.168.217.40)
systemctl stop firewalld
setenforce 0
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 -y install nginx
systemctl start nginx
systemctl enable nginx
netstat -natp | grep nginx
yum -y install mariadb*
systemctl start mariadb.service
systemctl enable mariadb.service
netstat -natp | grep 3306
#mysql安全配置向导
mysql_secure_installation
回车
y
123456
123456
n
n
n
y
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语言的驱动
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
//29-35 取消注释
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
vim /usr/share/nginx/html/info.php
<?php
phpinfo();
?>
systemctl restart php-fpm.service
systemctl restart nginx
==真机访问==
http://192.168.217.40/info.php
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','root','123456');
if ($link) echo '连接成功';
else echo '连接失败';
?>
==真机访问==
http://192.168.217.40/info.php
注:
上图测试连接数据库,用户root,密码123456.是之前设置的mysql安全配置向导里的
访问
mysql -uroot -p123456
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on *.* to 'zabbix'@'%' identified by 'admin123';
flush privileges;
exit
vim /usr/share/nginx/html/info.php
<?php
$link=mysqli_connect('127.0.0.1','zabbix','admin123');
if ($link) echo 'zabbix成功';
else echo 'zabbix失败';
?>
==真机访问==
http://192.168.217.40/info.php
连接失败解决方法
原因:用户冲突
mysql -uroot -p123456
select user,host from mysql.user;
drop user ''@'localhost';
drop user ''@'localhost.localdomain';
flush privileges;
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-server-mysql zabbix-web-mysql zabbix-agent
cd /usr/share/doc/zabbix-server-mysql-4.0.30/
zcat create.sql.gz | mysql -uzabbix -p zabbix
mysql -uzabbix -padmin123
use zabbix;
show tables;
#编辑zabbix服务端配置文件
vim /etc/zabbix/zabbix_server.conf
#定义日志文件位置和名称
//38 LogFile=/var/log/zabbix/zabbix_server.log
#定义日志文件大小,0表示不限制大小
//49 LogFileSize=0
#进程文件位置
//72 PidFile=/var/run/zabbix/zabbix_server.pid
#通信sock文件
//82 SocketDir=/var/run/zabbix
#数据库所在服务器,本地
//91 DBHost=localhost
#数据库名称
//100 DBName=zabbix
#数据库用户
//116 DBUser=zabbix
#数据库密码
//124 DBPassword=admin123
#snmp协议日志位置
//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
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
netstat -napl | grep 10051
systemctl restart php-fpm.service
==真机访问==
http://192.168.217.40/zabbix
cd /etc/zabbix/web
chmod +x zabbix.conf.php
cilent(192.168.217.60)
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
vim /etc/zabbix/zabbix_agentd.conf
//98 Server=192.168.217.40 指向监控端地址
//139 ServerActive=192.168.217.40 指向监控服务器
//150 Hostname=test 修改主机名
在网页邮箱配置,这里就不写出来了
在服务器上配置
server(192.168.217.40)
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 wbw' | 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"
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
按照默认
按照默认
服务器重启zabbix服务
server(192.168.217.40)
systemctl restart zabbix-*
代理端重启ssh服务,看是否能收到邮件
cilent(192.168.217.60)
systemctl restart sshd