CentOS 6.5安装部署Zabbix监控系统
先说一点废话,我没有用centos7做实验,讲真,centos 7我也不常用,喜欢新版本的同学其实可以尝试下,注意一点的就是centos 6.5只支持到php5.3.3版本,不支持以上版本,当然,你要是编译安装的话也是可以的,反正centos 6.5和centos 7 部署的过程没差多少,喜欢用哪个系统,个人喜好而已。
本文实验环境信息:
zabbix_server(服务端): 10.0.10.120 CentOS 6.5-x86_64最小化
zabbix_agentd(客户端): 10.0.10.100 CentOS 6.5-x86_64最小化
Zabbix2.2.2(版本比较老,但是常用的功能都有了)
安装centos 6.5-x86_64
在这里,建议大家最小化安装,占用的资源比较少,就算缺某些常用的程序,还可以用yum安装嘛,安装的时候直接配置好网络参数,安装重启后就能直接用了,不然又要进去改,太麻烦
服务端分区建议采用以下的格式:
/boot 500M
swap 8G //这个根据自己的服务器内存大小来定
/var 30G //主要用来存放日志,也可以根据服务器的磁盘空间调整
/ 剩下所有空间
我一般装系统的时候直接让系统自动使用全部空间,生成的是基于LVM逻辑卷的分区,我直接修改,把/home去掉或者改动成别的分区,然后把根分区调整成使用全部空间。
装完后直接关掉iptables和selinux,不然后面会很麻烦
Zabbix_Server端安装
1.安装开发软件包
yum -y groupinstall "Development Tools"
2.安装所需要的各种环境包
rpm-ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm //我用的版本没有nginx源,就网上找了一个
yum –y install php*
yum –y install mysql*
yum –y install nginxcurl curl-devel net-snmp net-snmp-devel wget vim
3.同步服务器的时间
ntpdate pool.ntp.rog //如果内网有NTP服务器也是可以用的
4.创建zabbix服务所需的用户和组
groupadd –g 201 zabbix
useradd –g zabbix –u 201 –m zabbix
5.mysql数据库环境准备
service mysqld start
chkconfig mysqld on
mysqladmin -u root password "123456" //这里建议使用高复杂度密码
mysql –u root –p //输入密码登陆数据库
mysql>create database zabbix character set utf8;
mysql>insert into mysql.user(Host,User,Password)
values("localhost","admin",password("123456")); //创建用户
mysql>grant all privileges on zabbix.* to admin@localhost identified by '123456';
//把创建的库授权给新用户
mysql>flush privileges; //刷新系统权限表
6.下载zabbix包
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz
tar –zxvf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2
mysql –u admin –p 用admin账户导入zabbix数据库
mysql> source /root/zabbix-2.2.2/database/mysql/schema.sql
mysql> source /root/zabbix-2.2.2/database/mysql/data.sql
mysql> source /root/zabbix-2.2.2/database/mysql/images.sql
7.编译安装zabbix_server
./configure --prefix=/etc/zabbix/ --enable-server --enable-agent --with-net-snmp --with-libcurl --with-mysql
make && make install
8.将zabbix_server和zabbix_agentd服务加入到开机自启
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
cp misc/init.d/tru64/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_*
vim /etc/init.d/zabbix_server和zabbix_agentd并且在#!/bin/bash下添加下面的两句
# chkconfig: - 95 95
# description: Zabbix Server
chkconfig --add zabbix_server
chkconfig –add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
9.配置nginx+SSL环境,支持PHP访问等
chkconfig nginx on
cd ~/zabbix-2.2.2
mkdir –p /data/html/zabbix/
cp -a frontends/php/* /data/html/zabbix/
chown -Rf apache.apache /data/html/zabbix/
chmod –Rf 755 /data/html/zabbix/
mkdir –p /etc/nginx/cert
cd /etc/nginx/cert //创建自签名证书步骤
openssl genrsa -des3 -out nginx.key 2048
openssl req -new -key nginx.key -out nginx.csr
cp nginx.key nginx.key.org
openssl rsa -in nginx.key.org -out nginx.key
openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt
vim /etc/nginx/conf.d/zabbix1.conf 写入一下内容
server {
listen 80;
server_name localhost;
rewrite ^(.*)$ https://$host$1 permanent;
#为了安全起见,配置了80重定向到443
location / {
root /data/html/zabbix/;
index index.html index.htm index.php;
}
location ~ .php$ {
root /data/html/zabbix/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/html/zabbix/$fastcgi_script_name;
include fastcgi_params;
}
}
vim /etc/nginx/conf.d/zabbix2.conf 写入一下内容
server {
listen 443;
server_name localhost;
ssl on;
ssl_certificate /etc/nginx/cert/nginx.crt;
ssl_certificate_key /etc/nginx/cert/nginx.key;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
root /data/html/zabbix/;
index index.html index.htm index.php;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /data/html;
}
location ~ .php$ {
root /data/html/zabbix/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/html/zabbix/$fastcgi_script_name;
include fastcgi_params;
}
}
cd /etc/nginx/conf.d/
rm –rf default.conf
service nginx start
10.配置PHP环境
vim /etc/php.ini //修改以下参数
date.timezone = Asia/Shanghai
max_execution_time = 300
max_input_time = 300
post_max_size = 32M
memory_limit = 128M
service php-fpm start
chkconfig php-fpm on
11.配置zabbix_server.conf和zabbix_agentd.conf
vim /etc/zabbix/etc/zabbix_server.conf
DBHost=localhost
DBName= zabbix
DBUser=admin
DBPassword=123456
Logfile=/var/log/zabbix/zabbix_server.log
#加粗部分是必须内容,下面的内容根据自己的情况而定
StartPollers=30 #开启多线程数,一般不要超过30个
StartTrappers=20 #trapper线程数
StartPingers=10 #fping线程数
StartDiscoverers=120
MaxHousekeeperDelete=5000
CacheSize=1024M #用来保存监控数据的缓存数,根据监控主机的数量适当调整
StartDBSyncers=8 #数据库同步时间
HistoryCacheSize=1024M
TrendCacheSize=128M #总趋势缓存大小
HistoryTextCacheSize=512M
AlertScriptsPath=/etc/zabbix/alertscripts
LogSlowQueries=1000
vim /etc/zabbix/etc/zabbix_server.conf 写入以下内容
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=localhost
UnsafeUserParameters=1
LogFile=/var/log/zabbix/zabbix_agentd.log
touch /var/log/zabbix/zabbix_server.log
touch /var/log/zabbix/zabbix_agentd.log
chmod –Rf 755 /var/log/zabbix/zabbix_*
chown –Rf zabbix:zabbix /var/log/zabbix/zabbix_*
service zabbix_server start
service zabbix_agentd start
查看日志服务是否正常启动
tail –f /var/log/zabbix/zabbix_server.log
tail –f /var/log/zabbix/zabbix_agentd.log
12.网页管理配置
其实后台服务已经起来了,不过我们还需要最后一项配置,就是网页管理啊
浏览器中直接输入zabbix服务器的地址,就可以直接进入了,由于证书是自己生成并签名的,所以浏览器很可能不会通过。我们需要手动放行下。就能看到下面的这个页面了
点击下一步;
必须确认其中没有报错,否则不能进行下一步安装;
输入我们添加的数据库用户名和密码,主机直接写localhost,端口默认,测试连接是否成功,正确后直接点击下一步;
这里主机直接填写为localhost,因为服务器是能解析到自己的,所以不建议修改hostname,直接下一步,然后确认保存配置文件到本地,就能进入到管理页面了;
管理员默认密码是admin / zabbix
输入用户名和密码进行登陆;
好了,服务端已经安装完成了,由于初始的界面是因为的,我们需要自己调整。
点击右上角的profile,将语言调整为中文就OK了
Zabbix_agent客户端安装
其实大家也看到了,客户端安装也和上面的差不多,只是少了网页管理,配置文件和其他地方修改都是一样的
1、安装依赖软件包
yum -y groupinstall "Development Tools"
yum –y install ntpdate net-snmp net-snmp-devel wget vim
2、同步客户端时间
ntpdate pool.ntp.org
3、创建zabbix运行所需要的用户跟组
groupadd -g 201 zabbix
useradd -g zabbix -u 201 -m zabbix
4.下载安装zabbix_agent
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.2.2/zabbix-2.2.2.tar.gz
tar –zxvf zabbix-2.2.2.tar.gz
cd zabbix-2.2.2
/configure --prefix=/etc/zabbix --enable-agent
make && make install
5. 将zabbix_agentd服务加入到开机自启
cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_*
vim /etc/init.d/zabbix_agentd并且在#!/bin/bash下添加下面的两句
# chkconfig: - 95 95
# description: Zabbix Server
chkconfig –add zabbix_agentd
chkconfig zabbix_agentd on
6.配置agentd客户端配置文件
vim /etc /zabbix/etc/zabbix_agentd.conf 并写入以下内容
Server=10.0.10.100
ServerActive=10.0.10.100
#这里的IP地址为服务端的地址
Hostname=localhost
UnsafeUserParameters=1
LogFile=/var/log/zabbix/zabbix_agentd.log
7. 启动zabbix_agentd服务
touch /var/log/zabbix/zabbix_agentd.log
chmod –Rf 755 /var/log/zabbix/zabbix_*
chown –Rf zabbix:zabbix /var/log/zabbix/zabbix_*
service zabbix_agentd on
查看日志服务是否正常启动
tail –f /var/log/zabbix/zabbix_agentd.log
邮件告警设置
邮件报警有两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:root@localhost.localdomain),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:xxx@163.com),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
在这里,我只写第二种情况的设置步骤
service sendmail stop
chkconfig sendmail off
service postfix stop
chkconfig postfix off
yum install mailx -y
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱配置信息。
1.配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息,注意:信息根据自己的情况而定
set from=xxx@163.com smtp=smtp.163.com
set smtp-auth-user=xxx@163.com smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s "zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:yyy@163.com,这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
管理-用户-Admin (Zabbix Administrator)
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
告警时间:{EVENT.DATE} {EVENT.TIME}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
告警时间:{EVENT.DATE} {EVENT.TIME}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
cd /etc/zabbix/share/zabbix/alertscripts #进入脚本存放目录
chown zabbix.zabbix /etc/zabbix/share/zabbix/alertscripts/sendmail.sh