1.安装PHP
Zabbix 3以后对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7
rpm -ivh http://repo.webtatic.com/yum/el6/latest.rpm
yum install -y php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap gcc
安装后需要检测的提前修改属性
vim /etc/php.ini
date.timezone = Asia/Shanghai
post_max_size = 32M
max_execution_time = 300
max_input_time = 300
always_populate_raw_post_data = -1
2.安装MySQL
MySQL建议使用5.6版本,CentOS6默认为5.1,不建议使用,性能偏低
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
yum install -y mysql-server mysql-devel
service mysqld start
mysql_secure_installation #MySQL安全配置向导
Enter current password for root (enter for none): <–初次运行直接回车
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车
Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止
Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车
Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
mysql -uroot -p
mysql> CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY 'zabbix';
mysql> flush privileges;
mysql> show databases;
3.安装Zabbix
yum install httpd libxml2-devel net-snmp-devel libcurl-devel
查看curl -V #必须是7.20及以上版本。否则:
rpm -e --nodeps curl #卸载curl,版本太低
vim /etc/yum.repos.d/city-fan.repo #添加curl的yum源
[CityFan]
name=City Fan Repo
baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/
enabled=1
gpgcheck=0
yum install -y curl
curl -V #只要是7.20以上版本即可
groupadd -g 201 zabbix
useradd -g zabbix -u 201 -m zabbix
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.5/zabbix-3.2.5.tar.gz \\官方3.2.5集合包
tar zxvf zabbix-3.2.5.tar.gz
cd zabbix-3.2.5
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
/usr/bin/mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql
###导入建表脚本
./configure --prefix=/usr/local/zabbix --sysconfdir=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql --with-libxml2
make &&make install
4.配置Zabbix_server端
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost 数据库ip地址
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
iptables -I INPUT -p tcp -m multiport --dports 10050:10051 -j ACCEPT
service iptables save &&service iptables restart
ln -s /usr/local/zabbix/sbin/* /usr/sbin/
cp misc/init.d/fedora/core/zabbix_* /etc/init.d/ \\zabbix目录
chmod +x /etc/init.d/zabbix_*
sed -i "s@BASEDIR=/usr/local@BASEDIR=/usr/local/zabbix@g" /etc/init.d/zabbix_server \\写入系统服务
配置WEB
vim /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1
ServerName 192.168.1.10
DocumentRoot "/var/www/html"
mkdir -p /var/www/html/zabbix
cp -r frontends/php/* /var/www/html/zabbix/
chown -R apache.apache /var/www/html/zabbix/
chkconfig zabbix_server on
/etc/init.d/zabbix_server start
service httpd restart
用浏览器访问http://192.168.1.10/zabbix,并按照提示安装:
用户名:Admin #默认
密码:zabbix
5.配置zabbix-agent端
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/6/x86_64/zabbix-agent-3.2.10-2.el6.x86_64.rpm
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.1.1,192.168.1.2 #为zabbix监控端ip,被动模式
ServerActive=192.168.1.1,192.168.1.2 #为zabbix监控端ip,主动模式
Hostname=zabbix_web1 #为被监控端主机名,使用$HOSTNAME
service zabbix_agent start
ss -anptu |grep :10050
6.Zabbix监控端测试
zabbix_get -s 被监控端ip -k system.cpu.load
7.zabbix监控本机:
service zabbix_agentd start
//发现启动报错如下:
Starting zabbix_agentd: /etc/init.d/functions: line 722: /usr/local/sbin/zabbix_agentd: No such file or directory
这个报错肯定是/etc/init.d/zabbix_agentd 的BASEDIR目录错了,改成你的zabbix安装目录即可
//我的目录在这里/usr/local/zabbix/sbin/zabbix_agentd
//所以直接修改:
vim /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix //改这一行即可
service zabbix_agentd start //再次尝试启动就行了
ss -anptu |grep :10050 //会发现端口已经起来了
如何进行报警?
1、主机:在linux server中,模板是linux os
2、管理-报警媒介类型: 写名称、脚本名字等:
vim /usr/local/zabbix/share/zabbix/alertscripts/sendMail.py
#!/usr/bin/python
# coding=utf-8
import smtplib
import sys
from email.mime.text import MIMEText
class send_mail():
mail_host="smtp.163.com"
mail_user="17635448447@163.com" #这里是发件人邮箱(代发)
mail_pass="Gengenbo0909" #此处用的是邮箱的授权码,不是邮箱的密码
mail_postfix="163.com"
def __init__(self,sub,content):
self.me="Zabbix-Alter"+"<"+self.mail_user+"@"+self.mail_postfix+">"
self.msg = MIMEText(content,_subtype='html',_charset='utf-8')
self.msg['From'] = self.me
self.msg['Subject'] = sub
def sendMessage(self,user):
self.msg['To'] = ";".join(user)
try:
s = smtplib.SMTP_SSL(host=self.mail_host,port=465)
s.login(self.mail_user,self.mail_pass)
s.sendmail(self.me, user, self.msg.as_string()) #发送邮件
s.close()
except Exception, e:
print str(e)
if __name__ == '__main__':
mailto_list=[]
mailto_list.append(sys.argv[1])
s = send_mail(sys.argv[2],sys.argv[3])
s.sendMessage(mailto_list)
保存退出并且给与执行权限后,自己测试一下:测试命令为:
python sendMail.py 收件人邮箱 主题 内容
添加报警媒介:
3、用户群组:组名,在admin群组中,权限:linux servers选读写权限
4、用户:用户名和用户群组选择,报警媒介以及邮件名
5、动作:当触发器=设置的值时候,报警给用户组和用户。