Zabbix server 安装
因为熟悉PostgreSQL,所以没用MySQL
本节参考官方教程 https://www.zabbix.com/download?zabbix=4.0&os_distribution=centos&os_version=7&db=PostgreSQL
1. 安装 PostgreSQL 数据库
rpm -i https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
2. 安装Zabbix server,Web前端,agent
yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
3. 创建初始数据库
sudo -u postgres createuser --pwprompt zabbix
sudo -u postgres createdb -O zabbix zabbix
导入初始架构和数据,系统将提示您输入新创建的密码。
zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | sudo -u zabbix psql zabbix
4. 为Zabbix server配置数据库
编辑配置文件 /usr/share/doc/zabbix-server-pgsql
DBPassword=password
5. 为Zabbix前端配置PHP
编辑文件 /etc/httpd/conf.d/zabbix.conf, 取消注释并为您设置正确的时区。
# php_value date.timezone Europe/Riga
6. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:
systemctl restart zabbix-server zabbix-agent httpd
systemctl enable zabbix-server zabbix-agent httpd
Zabbix agent 端安装
sudo rpm -i zabbix-release-4.0-1.el7.noarch.rpm
sudo yum install zabbix-agent -y
# vim /etc/zabbix/zabbix_agentd.conf
# Server=10.0.32.40
# Hostname=本机IP
IP=`ifconfig |grep broadcast |awk '{print $2}'`
echo ${IP}
sed -i "s/Server=127.0.0.1/Server=10.0.32.40/g" /etc/zabbix/zabbix_agentd.conf
sed -i "s/Hostname=Zabbix server/Hostname=${IP}/g" /etc/zabbix/zabbix_agentd.conf
# 关掉防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
getenforce
setenforce 0
getenforce
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/config
# 重启
systemctl status zabbix-agent
systemctl restart zabbix-agent
systemctl enable zabbix-agent
systemctl status zabbix-agent
配置bug解决
1. yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent 若出错:联网,执行以下操作
yum clean all
sudo rpm -i zabbix-release-4.0-1.el7.noarch.rpm
yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-agent
2. systemctl restart zabbix-agent 各种报错起不来时:
sudo su
getenforce
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
安装时已经执行了
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
但是/etc/sysconfig/selinux无效的原因:一开始/etc/sysconfig/selinux是/etc/selinux/config的软链接关系,但是 sed后,对/etc/sysconfig/selinux文件进行修改,导致两者软连接关系破裂,变为一个普通文件,并不再被系统作为selinux的配置文件。因此根本上是要修改/etc/selinux/config
3.修改 zabbix-server 端口
https://blog.csdn.net/nowzhangjunzhe/article/details/81474643
# vim /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] = 'POSTGRESQL';
$DB['SERVER'] = '10.0.32.40';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'duangduang';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = '10.0.32.40';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'Zabbix';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
# vim /etc/zabbix/zabbix_server.conf
ListenPort=10051
systemctl restart zabbix-server zabbix-agent httpd
4.报警媒介email配置
https://blog.csdn.net/rujianxuezha/article/details/79844190
(1). vim /etc/mail.rc
set bsdcompat
set from=xx@xx.com
set smtp=smtp.xx.com:xx
set smtp-auth-user=
set smtp-auth-password=
set smtp-auth=login
set from="IAD-ai <xx@xx.com>"
set pipe-text/html="w3m -dump -T text/html"
(2). vim /usr/lib/zabbix/alertscripts/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
(3). 创建log,并给脚本增加可执行属性
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/
systemctl restart zabbix-server
4. Template OS Linux 增加Disk Read/Write
https://blog.csdn.net/hao134838/article/details/57406028
其他bug
- agent端连不上
解决办法: Server hostname设置与服务器/etc/zabbix/zabbix_agentd.conf不符
2.agent端还是连不上
解决办法参考链接博文
https://blog.csdn.net/m0_37814112/article/details/80463719
https://blog.csdn.net/reblue520/article/details/59481874
3.email配置失败
解决办法: 参考上文“4.报警媒介email配置”