1.首先准备二台服务器,服务端和客户端
2.服务端需要安装 yum install -y nfs-utils rpcbind
客户端需要安装 yum install -y nfs-utils
3.在服务端编写文件 vim /etc/exports
/data/attachment ip段/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/dedecms/upload ip段/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
/data/attached/ ip段/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
写上三个站点需要共享目录的地址 权限
4.然后创建要共享的目录 给共享目录加上777权限
5.然后客户端和服务端开启rpcbind服务 nfs服务
6.然后在客户端挂载 showmount -e (服务端的ip)
7.在客户端挂载需要共享的目录 mount -t nfs (服务端ip):/目录 /mnt/
安装zabbix监控
1.首先下载zabbix文件
wget repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
2.使用rpm安装
3.然后使用yum安装zabbix yum install -y zabbix-agent zabbix-get zabbix-server-mysql zabbix-web zabbix-web-mysql
4.需要监控的客户端 也要安装zabbix
5.然后进入到mysql库下面去,创建zabbix库,
create database zabbix character set utf8;
6.创建用户,为了让web代码(php代码链接mysql)
grant all on zabbix.* to 'zabbix'@'ip' identified by '密码';
7.导入数据
cd /usr/share/doc/zabbix-server-mysql-3.2.11/
gzip -d create.sql.gz
mysql -uroot -p(密码) zabbix < create.sql
8.启动zabbix-service和nginx服务
systemctl start zabbix-server
9.然后让zabbix链接mysql
配置文件 vi /etc/zabbix/zabbix_server.conf
在文件中 搜索DBHost 加入ip地址 搜索DBPasswd 加入密码 然后重启zabbix服务
10.去浏览器去安装zabbix 输入地址:(ip地址)/zabbix/setup.php
11.下一步之后,会看到有fail的红色标识,需要去设置一下时间
vi /etc/php.ini 搜索date.timezone = Asia/Shanghai
12.然后提示输入ip地址 用户名 密码
13.进入之后更改密码 设置语言中文
14.需要监控的客户端安装zabbix 最后yum安装 yum install -y zabbix-agent
15.编辑客户端的zabbix配置文件,Server改为服务端的ip地址 ServerActive改为服务端的ip地址
vim /etc/zabbix/zabbix_agentd.conf
16。自定义主机名 客户端启动zabbix服务
搭建完成之后 设置监控各个指标(cpu、内存、硬盘),网卡流量需要成图,还需要监控web站点的可用性
1.首先 创建主机组
2.创建主机 所有机器都创建一个主机 ip+端口
3.然后创建模板 添加自定义监控项目
创建完的模板 是没有应用集 监控项 等等 都是空的
找到下面这个模板 点进去 找一些监控项 复制到xx模板里面去
选中这些项
4.
然后导入自动发现规则,需要我们把os linux导出来,然后编辑这个文件,在把不需要的删除掉,很麻烦,还有一种方法
首先把之前添加的监控项给删除掉
然后点击xx模板,点击链接的模板
然后点击选择,添加os linux 在点击更新 一定要点击更新
但是我们只想要自动发现模板,但是想要删除其他不用的监控项的时候,是删除不了的,因为是链接的模板,删除的话是删除os linux模板,我们可以点击aming 模板,点击取消链接,然后点击更新
5,
然后添加监控项 监控硬盘
然后点击更新
6.
创建触发器
7.
链接了os linux模板 自动发现规则有网卡流量的图形,不需自己添加
8.
web站点可用性
添加步骤
9.
定制自定义监控脚本,监控web服务器的并发连接数,接入zabbix,成图,设置触发器,超过100告警
首先到客户端去编写脚本
[root@hongwei-02 ~]# vim /usr/local/sbin/estab.sh
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
然后给文件添加755权限
[root@hongwei-02 ~]# chmod 755 /usr/local/sbin/estab.sh
然后在客户端上编辑配置文件,添加一行
[root@hongwei-02 ~]# vim /etc/zabbix/zabbix_agentd.conf
# UnsafeUserParameters=0
UnsafeUserParameters=1
### Option: UserParameter
# User-defined parameter to monitor. There can be several user-defined parameters.
# Format: UserParameter=,
# See 'zabbix_agentd' directory for examples.
#
# Mandatory: no
# Default:
# UserParameter=
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh
UnsafeUserParameters=1 //表示使用自定义脚本 UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh //自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
.然后重启zabbix-agent服务
[root@hongwei-02 ~]# systemctl restart zabbix-agent
然后验证一下自定义脚本有没有识别,到服务端验证,执行下面命令
^C[root@liuhongwei-01 fonts]# zabbix_get -s 192.168.93.128 -p 10050 -k 'my.estab.count'
然后在zabbix监控中心(浏览器)配置增加监控项目
创建一个图形
创建触发器
配置邮件告警
1.首先到163邮箱开启POP3、IMAP、SMTP服务
2.然后在163邮箱设置客户端授权密码
3.然后到监控中心设置邮件告警
4.创建报警脚本mail.py
[root@liuhongwei-01 fonts]# vim /usr/lib/zabbix/alertscripts/mail.py
#!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys reload(sys) sys.setdefaultencoding('utf8') import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.qq.com' gport = 25 try: msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' gport = 25 try: import getopt import smtplib from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart from subprocess import * def sendqqmail(username,password,mailfrom,mailto,subject,content): gserver = 'smtp.163.com' gport = 25 msg = MIMEText(unicode(content).encode('utf-8')) msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['from'] = mailfrom msg['to'] = mailto msg['Reply-To'] = mailfrom msg['Subject'] = subject msg['Subject'] = subject smtp = smtplib.SMTP(gserver, gport) smtp.set_debuglevel(0) smtp.ehlo() smtp.login(username,password) smtp.sendmail(mailfrom, mailto, msg.as_string()) smtp.close() except Exception,err: print "Send mail failed. Error: %s" % err def main(): to=sys.argv[1] subject=sys.argv[2] content=sys.argv[3] ##定义QQ邮箱的账号和密码,你需要修改成你自己的账号和密码(请不要把真实的用户名和密码放到网上公开,否则你会死的很>惨) sendqqmail('[email protected]','','[email protected]',to,subject,content) if __name__ == "__main__": main()
注意 邮箱地址后面的密码是 授权码 密码
5.然后加上权限
[root@liuhongwei-01 fonts]# chmod 755 /usr/lib/zabbix/alertscripts/mail.py [root@liuhongwei-01 fonts]#
6.测试发送邮件 实验一下
[root@liuhongwei-01 alertscripts]# python mail.py [email protected] "这是一封测试邮件" "12345678910"
[root@liuhongwei-01 alertscripts]# python mail.py [email protected] "This is test page" "12345678910" [root@liuhongwei-01 alertscripts]#
然后到浏览器去创建一个用户,接收邮件
再添加邮箱
然后再到用户权限去更改所有
然后点击操作
然后点击回复操作
10.配置完之后,显示的是已启用