zabbix分布式安装全过程
项目规划
软件 | 版本 | IP |
---|---|---|
zabbix-server | 3.4.15 | 10.1.10.128 |
zabbix-proxy | 3.4.15 | 10.1.10.129 |
zabbix-agent | 3.4.15 | 10.1.10.130 |
centos | 7.6 | |
mysql | 5.6.47 | 10.1.10.128/129 |
系统初始化
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭SeLinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
zabbix-server
安装yum源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安装软件
yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent -y
安装数据库
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum repolist enabled | grep"mysql.*-community.*"
yum install -y mysql-community-server
启动数据库
systemctl enable mysqld && systemctl start mysqld
创建数据库
mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
导入初始表
cd /usr/share/doc/zabbix-server-mysql-3.4.15/
zcat create.sql.gz | mysql -uzabbix -p zabbix
配置zabbix-server配置文件(/etc/zabbix/zabbix-server.conf)
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
启动zabbix-server
systemctl start zabbix-server && systemctl enable zabbix-server
配置http服务(/etc/httpd/conf.d/zabbix.conf
)
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value always_populate_raw_post_data -1
php_value date.timezone Asia/Shanghai
启动httpd
systemctl enable httpd && systemctl start httpd
在浏览器访问http://10.1.10.128/zabbix 配置
点击下一步直到登录,默认登录用户和密码(Admin/zabbix)
修正图形乱码
在windows上找相应得图片,上传到服务器上/usr/share/zabbix/fonts/,将其改名为graphfont.ttf
zabbix-proxy
配置yum源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安装软件
yum install zabbix-proxy zabbix-agent -y
因为zabbix-proxy会收集agent得数据,所以也需要安装数据库
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum repolist enabled | grep"mysql.*-community.*"
yum install -y mysql-community-server
启动mysql
systemctl enable mysqld && systemctl start mysqld
创建数据库和用户
create database zbx_proxy character set utf8 collate utf8_bin;
grant all privileges on zbx_proxy.* to zbx_proxy@localhost identified by 'zbx_proxy';
flush privileges;
导入zabbix-proxy库
cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
zcat schema.sql.gz | mysql -uzbx_proxy -p zbx_proxy
修改zabbix-proxy配置文件(/etc/zabbix/zabbix_proxy.conf)
注意:配置的时候将后面的配置去掉
ProxyMode=0
Server=10.1.10.128 # server服务器地址
HostnameItem=system.hostname
LogFile=/var/log/zabbix/zabbix_proxy.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_proxy.pid
SocketDir=/var/run/zabbix
DBHost=localhost # zabbix-proxy 数据库配置
DBName=zbx_proxy
DBUser=zbx_proxy
DBPassword=zbx_proxy
ProxyLocalBuffer=3 # 数据同步到server,数据还会保存多久,单位小时
ProxyOfflineBuffer=24 # 未提交的数据保存多长时间
HeartbeatFrequency=60 # 心跳间隔检测时间, , 默认60秒, 范围0-3600秒, 被动模式不使用
ConfigFrequency=5 # 间隔多久从zabbix server 获取监控信息
DataSenderFrequency=5 # 数据发送时间间隔, 默认为1秒, 范围为1-3600秒, 被动模式不使用
StartPollers=10 # 启动的线程数, 与客户端的数据保持一致
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
启动zabbix-proxy
systemctl start zabbix-proxy && systemctl enable zabbix-proxy
配置web端,创建代理
注意代理名称与我们配置文件配置的Hostname一致。
zabbix-agent
安装YUM源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-1.el7.centos.noarch.rpm
安装软件
yum install zabbix-agent -y
修改客户端配置文件(/etc/zabbix/zabbix_agentd.conf)
注意:配置的时候将后面的配置去掉
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=10.1.10.129 # zabbix-proxy地址
ServerActive=10.1.10.129 # zabbix-proxy地址
Hostname=10.1.10.130
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
启动zabbix-agent
systemctl enable zabbix-agent && systemctl start zabbix-agent
监控客户端
手动添加主机
然后查看最新数据。有时候会没有获取到数据,这个是因为proxy启动了,但是zabbix 的server端没有创建代理,解决方法重启一下zabbix proxy就可以了。
然后就可以看到最新数据了。
自动发现
机器太多,手动配置太过繁琐,这时候就可以配置自动发现规则。
自动发现是由服务端发起。
1、配置自发现规则
备注:如果是通过代理去发现,就在上面代理程序配置代理
2、创建自动发现动作
我们可以看到已有主机被自动发现,如下:
自动注册
自动注册是由客户端发起,需要客户端配置好agent。