1. 创建linux用户,安装数据库(默认无密码),安装nginx并设为自启动,相关软件先上传
groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin
yum -y install net-snmp-devel libxml2-devel libcurl-devel
wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server -y
service mysqld start
cd /app1/software
tar xvf nginx-1.8.0.tar.gz
cd nginx-1.8.0
./configure --prefix=/app1/nginx --sbin-path=/app1/nginx/sbin --with-http_ssl_module --with-http_stub_status_module
make && make install
rm -rf /app1/nginx/sbin
mkdir /app1/nginx/sbin
cp /app1/software/nginx-1.8.0/objs/nginx /app1/nginx/sbin/
vi /usr/lib/systemd/system/nginx.service
增加
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target
[Service]
Type=forking
ExecStart=/app1/nginx/sbin/nginx
ExecReload=/app1/nginx/sbin/nginx -s reload
ExecStop=/app1/nginx/sbin/nginx -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
vi /etc/rc.d/init.d/nginx
#!/bin/bash
# chkconfig:235 85 15
# description: Nginx is an HTTP server
. /etc/rc.d/init.d/functions
start() {
echo "Start..."
/app1/nginx/sbin/nginx &> /dev/null
if [ $? -eq 0 ];then
echo "Start successful!"
else
echo "Start failed!"
fi
}
stop() {
if killproc nginx -QUIT ;then
echo "Stopping..."
fi
}
restart() {
stop
sleep 1
start
}
reload() {
killproc nginx -HUP
echo "Reloading..."
}
configtest() {
/app1/nginx/sbin/nginx -t
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
reload)
reload ;;
configtest)
configtest ;;
*)
echo "Usage: nginx {start|stop|restart|reload|configtest}"
;;
esac
然后执行
systemctl daemon-reload
systemctl start nginx.service
systemctl status nginx.service
systemctl enable nginx.service
2.创建数据库用户并赋权
mysql -uroot
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
quit;
3.安装服务并导入数据
yum -y install mysql-devel
wget --no-check-certificate https://pilotfiber.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.3/zabbix-3.2.3.tar.gz
tar xf zabbix-3.2.3.tar.gz
cd zabbix-3.2.3
./configure --prefix=/app1/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-gettext
make && make install
cd /app1/software/zabbix-3.2.3/database/mysql/
mysql -uzabbix -pzabbix zabbix< schema.sql
mysql -uzabbix -pzabbix zabbix< images.sql
mysql -uzabbix -pzabbix zabbix< data.sql
4.修改配置(PID和log地址改不改随意)
vi /app1/zabbix/etc/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
ListenIP=127.0.0.1
AlertScriptsPath=/app1/zabbix/share/zabbix/alertscripts
5. 添加web并设定域名
mkdir /app1/zabbixweb
cp -rp /app1/software/zabbix-3.2.3/frontends/php/* /app1/zabbixweb
vi /app1/nginx/conf/nginx.conf
修改为
worker_processes 4;
use epoll;
添加
server {
listen 80;
server_name jk.zabbix.com;
access_log /app1/zabbix/logs/zabbix.access.log access;
index index.html index.php index.html;
root /app1/zabbixweb;
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+.php)(.*)$ {
fastcgi_split_path_info ^(.+.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
然后重启nginx
service nginx restart
如已安装php则不需要安装php,否则需要安装下php,如有php5,可考虑删除老的,再安装php7
yum list installed | grep php
yum remove php
yum remove php-common
yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum search php70w
yum install php70w php70w-fpm php70w-cli php70w-common php70w-devel php70w-gd php70w-pdo php70w-mysql php70w-mbstring php70w-bcmath php-xmlwriter php-xmlreader
php -v
php服务启动命令,systemctl比service好,可以修改配置后reload即可,无需restart
systemctl start php-fpm.service 启动
systemctl Stop php-fpm.service 停止
systemctl Restart php-fpm.service 重启
systemctl reload php-fpm.service 重启修改配置
6. 设置zabbix_server为自启动服务,做日志切割
cp /app1/software/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_server /etc/rc.d/init.d/zabbix_server
修改zabbix_server中的对应地址
chmod +x /etc/rc.d/init.d/zabbix_server
chkconfig zabbix_server on
vi /etc/logrotate.d/zabbix_server
增加
/app1/zabbix/log/zabbix_server.log{
daily
rotate 7
compress
missingok
notiempty
create 0640 zabbix zabbix
shardscripts
}
7. web页面配置
打开http://IP/zabbix ,除了数据库部分根据实际情况填写,其他都是下一步,直到完成。
修改显示界面为中文
进入web页面默认地址
vi /app1/zabbixweb/include/locales.inc.php
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => false),
修改为
'zh_CN' => array('name' => _('Chinese (zh_CN)'), 'display' => true),
然后进页面中登录用户界面中去修改语言项
至此,zabbix server端基本完成,剩下的就是安装配置agent端和在web页面上配置server端了。
8. agent安装(如是服务端本机,可跳过安装,创建用户参照之前服务端操作)
groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin
cd /app1/software
wget --no-check-certificate https://pilotfiber.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.2.3/zabbix-3.2.3.tar.gz
tar xf zabbix-3.2.3.tar.gz
cd zabbix-3.2.3
./configure --enable-agent --prefix=/app1/zabbix
如果安装过程中出现错误 configure: error: no acceptable C compiler found in $PATH
则 yum -y install gcc
make && make install
chown -R zabbix.zabbix /app/zabbix
chmod -R 755 /app/zabbix
9. 修改客户端配置
vi /app1/zabbix/etc/zabbix_agentd.conf
ListenPort=10050
LogFile=/app1/zabbix/logs/zabbix_agentd.log
PidFile=/app1/zabbix/losg/zabbix_agentd.pid
Server=xxx
ServerActive=xxx:10051
Hostname=xxx
Include=/app/zabbix/etc/zabbix_agentd.conf.d/
10. 设置zabbix_agent为自启动服务,做日志切割
cp /app1/software/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
修改zabbix_agentd里配置信息 vi /etc/rc.d/init.d/zabbix_agentd
在pidfile下面加上pid真正目录(前面要加#):# pidfile: /home/zabbix/zabbix_agentd.pid
修改ZABBIX_BIN="/home/zabbix/sbin/zabbix_agentd"
chmod +x /etc/rc.d/init.d/zabbix_agentd
chkconfig zabbix_agentd on
如果是centos7就用systemctl
systemctl daemon-reload
systemctl start zabbix_agentd
如果是centos6就用service
service zabbix_agentd start
vi /etc/logrotate.d/zabbix_agent
增加
/app1/zabbix/zabbix_agent.log{
daily
rotate 7
compress
missingok
notiempty
create 0640 zabbix zabbix
shardscripts
}
11. 剩下的就是web端配置,如果在web端发现部分中文乱码
1.在C:/Windows/fonts目录下拷贝中文字体到zabbix server端的web前端目录下的fonts目录下,并mv修改后缀TTF为ttf
2. 修改zabbix的web前端路径下/include/defines.inc.php
//define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'SIMKAI');
//define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'SIMKAI'); // font file name
3. 重启php服务
systemctl restart php-fpm.service
12. 设置邮件告警,在服务端操作,如果有sendmail,记得要先关闭
service sendmail stop
yum -y install mailx
vi /etc/mail.rc
增加
set from=xxx@163.com 你的邮箱
set smtp="smtps://smtp.163.com:465"
set smtp-auth-user=xxx@163.com 邮箱账号
set smtp-auth-password=xxxx 邮箱里客户端授权密码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb
在web端设置,“管理-示警媒介类型-创建媒体类型”,把其他几个停用掉
名称:mailx
类型:脚本
脚本名称:sendmail.sh
已启用:勾选
“管理-用户”中点击“别名-Admin”,选择“报警媒介”
类型:mailx
收件人:xxx@163.com
其他默认即可,也可
以根据需要设置
状态:已启用
“配置-动作-创建动作”
名称:Action-Email
计算方式 或
条件选择触发器示警度 为警告,一般严重,严重,灾难等
点击“操作”
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
维护期间暂停操作 勾去掉
下方“操作”选“新的”
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:mailx
点击“恢复操作”
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
保存即可
在服务端上增加发送脚本sendmail.sh
cd /app1/zabbix/share/zabbix/alertscripts
vi sendmail.sh
#!/bin/sh
echo "$3" | mail -s "$2" $1
chown zabbix.zabbix /app1/zabbix/share/zabbix/alertscripts/sendmail.sh
chmod +x /app1/zabbix/share/zabbix/alertscripts/sendmail.sh
13. 至此zabbix3在centos7上的安装基本告一段落,后续是zabbix web端的配置,一边摸索一段记录
① 警告: Lack of free swap space on Zabbix server
解决: 这是因为客户端机是云主机所导致的,进入“配置”-“模板”-"Template OS Linux",进入触发器项,选择“Lack of free swap space on Zabbix server”,修改表达式为“{Template OS Linux:system.swap.size[,pfree].last(0)}<50 and {Template OS Linux:system.swap.size[,free].last(0)}<>0”即可,然后重新刷新即解决。
② 如果出现/etc/passwd及好几个触发器状态为未知的,一般情况下是客户端机器上的/etc/hosts中未加入zabbix中指定的hostname,可考虑加入,如下图: