zabbix部署
官网:Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution
安装源
[root@server1 zabbix]# cd /etc/yum.repos.d/
[root@server1 yum.repos.d]# vim zabbix.repo
安装server和agent
[root@server1 yum.repos.d]# yum install zabbix-server-mysql zabbix-agent
安装前端
[root@server1 ~]# yum install -y centos-release-scl-2-3.el7.centos.noarch.rpm centos-release-scl-rh-2-3.el7.centos.noarch.rpm
[root@server1 ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
安装mysql数据库
[root@server1 ~]# tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
[root@server1 ~]# yum install -y mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm
[root@server1 ~]# systemctl enable --now mysqld
获取初始化密码
[root@server1 ~]# grep 'temporary password' /var/log/mysqld.log
[root@server1 ~]# mysql_secure_installation
创建zabbix数据库
[root@server1 ~]# mysql -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'Westos+1';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
导入数据,数据量比较大,需要等待一下,不要中断
[root@server1 ~]# zcat /usr/share/doc/zabbix-server-mysql-5.0.31/create.sql.gz | mysql -uzabbix -pYakexi+007 zabbix
导入后再禁用数据库参数
[root@server1 ~]# mysql -p
mysql> set global log_bin_trust_function_creators = 0;
配置zabbix server
[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
#只需修改数据库密码
DBPassword=Westos+1
配置zabbix前端
[root@server1 zabbix]# vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#去掉此行的注释,并修改时区
php_value[date.timezone] = Asia/Shanghai
启动服务
[root@server1 zabbix]# systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm
访问前端:192.168.52.128/zabbix
填写数据库连接信息
填写zabbix server 信息
登录前端的用户密码是:Admin/zabbix
修改前端语言
修改字体文件
cp simkai.ttf /usr/share/zabbix/assets/fonts
cd /usr/share/zabbix/assets/fonts
[root@server1 fonts]# rm -f graphfont.ttf
[root@server1 fonts]# ln -s simkai.ttf graphfont.ttf
添加agent
手动添加
agent配置
从server1拷贝repo文件
[root@server1 yum.repos.d]# scp zabbix.repo server2:/etc/yum.repos.d/
[root@server2 yum.repos.d]# yum install -y zabbix-agent
[root@server2 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
Server=192.168.52.128
ServerActive=192.168.52.128
Hostname=server2
[root@server2 zabbix]# systemctl enable --now zabbix-agent.service
[root@server2 ~]# netstat -antlp |grep :10050
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 8336/zabbix_agentd
server端配置
可用性变成绿色表示添加成功
自动发现
agent配置
从server1拷贝repo文件
[root@server1 yum.repos.d]# scp zabbix.repo server3:/etc/yum.repos.d/
[root@server3 yum.repos.d]# yum install -y zabbix-agent
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
...
Server=192.168.52.128
ServerActive=192.168.52.128
Hostname=server3
[root@server3 zabbix]# systemctl enable --now zabbix-agent.service
server端配置
选择发现动作,并激活
选择自动发现,修改实际的网络地址段,并激活
自动注册
先删除server3主机
停用自动发现规则
创建自动注册动作
agent端重启服务
[root@server3 ~]# systemctl restart zabbix-agent.service
服务监控
nginx监控
安装nginx
[root@server2 ~]# tar zxf nginx-1.23.3.tar.gz
[root@server2 ~]# cd nginx-1.23.3/
[root@server2 nginx-1.23.3]# yum install -y gcc make openssl-devel pcre-devel
[root@server2 nginx-1.23.3]# ./configure --with-http_stub_status_module --with-http_ssl_module
[root@server2 nginx-1.23.3]# make && make install
[root@server2 nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf
location = /basic_status {
stub_status;
}
[root@server2 conf]# nginx
[root@server2 conf]# netstat -antlp|grep :80
[root@server2 conf]# curl localhost/basic_status
在server端为主机关联nginx服务监控模板
稍作等待,监控数据就会出来
mysql监控
zabbix自带mysql模板
拷贝模板
[root@server1 ~]# cp /usr/share/doc/zabbix-agent-5.0.31/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.d/
重启agent
[root@server1 zabbix_agentd.d]# systemctl restart zabbix-agent.service
创建数据库连接用户
[root@server1 zabbix_agentd.d]# mysql -p
mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY 'Westos+1';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> flush privileges;
创建数据库连接文件
[root@server1 ~]# mkdir /var/lib/zabbix/
[root@server1 ~]# vim /var/lib/zabbix/.my.cnf
[client]
user=zbx_monitor
password=Westos+1
为zabbix server链接mysql监控模板
percona数据库模板
zabbix自带的mysql模板比较简单,所以推荐使用percona的数据库模板
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
[root@server1 scripts]# cd /var/lib/zabbix/percona/templates
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
[root@server1 templates]# systemctl restart zabbix-agent.service
[root@server1 zabbix_agentd.d]# cd /var/lib/zabbix/percona/scripts/
[root@server1 scripts]# vim ss_get_mysql_stats.php
...
$mysql_user = 'root';
$mysql_pass = 'Westos+1';
测试脚本
[root@server1 scripts]# ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
20
有数据显示就表示正常
删除tmp下的缓存文件
[root@server1 tmp]# rm -f localhost-mysql_cacti_stats.txt
导入模板文件
关联模板
等待监控数据出来
只要/tmp生成缓存文件就表示成功
[root@server1 tmp]# ls localhost-mysql_cacti_stats.txt
localhost-mysql_cacti_stats.txt
tomcat监控
server3上安装java应用
[root@server3 ~]# yum install -y java-1.8.0-openjdk.x86_64
[root@server3 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server3 local]# cd tomcat/
[root@server3 tomcat]# cd bin/
[root@server3 bin]# vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
[root@server3 bin]# ./startup.sh
[root@server3 bin]# netstat -antlp|grep :8888
安装zabbix-java-gateway
[root@server1 ~]# yum install -y zabbix-java-gateway
[root@server1 zabbix]# systemctl enable --now zabbix-java-gateway.service
[root@server1 zabbix]# netstat -antlp|grep :10052
tcp6 0 0 :::10052 :::* LISTEN 15393/java
修改server配置
[root@server1 zabbix]# vim /etc/zabbix/zabbix_server.conf
JavaGateway=192.168.52.128
JavaGatewayPort=10052
StartJavaPollers=5
[root@server1 zabbix]# systemctl restart zabbix-server.service
前端配置
添加jmx接口
关联模板
集成告警平台
创建appkey
部署探针
[root@server1 ~]# cd /usr/lib/zabbix/alertscripts
[root@server1 alertscripts]# tar xf ca_zabbix_release-4.0.1.tar.gz
[root@server1 alertscripts]# cd cloudalert/bin
[root@server1 bin]# ./install.sh 6956a049cd4a4fdfbf24fc8407e872f0
请输入Zabbix管理地址:http://192.168.52.128/zabbix
请输入Zabbix管理员账号:Admin
请输入Zabbix管理员密码:
[root@server1 alertscripts]# chown zabbix.zabbix cloudalert/ -R
配置通知策略
停止agent服务
[root@server2 ~]# systemctl stop zabbix-agent.service
等待片刻后会触发报警,并发送到外部告警平台
可以在告警平台查看到完整到处理流程
分布式监控
agent 主动方式
新建proxy节点,删除server2 agent作为proxy节点
[root@server2 ~]# systemctl disable --now zabbix-agent.service
[root@server2 ~]# hostnamectl set-hostname proxy
[root@proxy ~]# vim /etc/hosts
安装proxy软件
[root@proxy ~]# yum install zabbix-proxy-mysql
在server1上创建proxy数据库
[root@server1 ~]# mysql -p
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> create user 'zabbix'@'%' identified by 'Westos+1';
mysql> grant all privileges on zabbix_proxy.* to 'zabbix'@'%';
从proxy拷贝数据库文件
[root@proxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-5.0.31/
[root@proxy zabbix-proxy-mysql-5.0.31]# scp schema.sql.gz server1:
导入proxy数据库
[root@server1 ~]# zcat schema.sql.gz | mysql -uzabbix -pWestos+1 zabbix_proxy
修改proxy配置
[root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.52.128 #指向zabbix_server
Hostname=proxy #主机名
DBHost=192.168.52.128 #proxy数据库配置
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=Westos+1
JavaGateway=192.168.52.128 #jmx配置
JavaGatewayPort=10052
StartJavaPollers=5
[root@proxy ~]# systemctl restart zabbix-proxy.service
创建proxy
为主机配置代理
再重启proxy服务
[root@proxy ~]# systemctl restart zabbix-proxy.service
修改agent配置,指向proxy地址
[root@server3 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.52.130
ServerActive=192.168.52.130
[root@server3 ~]# systemctl restart zabbix-agent.service
查看日志,没有报错就表示成功
[root@server3 ~]# cat /var/log/zabbix/zabbix_agentd.log
如果agent日志中出现类似的报错,说明proxy还没有完全同步server端数据,需要再次重启proxy服务
最终配置完毕后,逐渐监控状态也是可用的