安装zabbix-server
准备数据库
1 | MariaDB [wpdb]> create database zabbix character set utf8 collate utf8_bin; |
编译安装zabbix
到官方网站下载zabbix4.0.3版本的源码包
https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz/download
安装依赖包
1 | [root@10-10-10-11 zabbix-4.0.3]#yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel libevent-devel –y |
如果是最小化安装的系统,还需安装以下常用包
1 | [root@10-10-10-11 zabbix-4.0.3]#yum install vim iotop bc gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel zip unzip zlib-devel net-tools lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel -y |
因为要支持java,所以要安装jdk
1 | [root@node01 bin]# yum -y install java-11-openjdk-devel |
开始编译安装
1 | [root@10-10-10-11 zabbix-4.0.3]#pwd |
在编译过程中报错
checking size of void *... 8
checking for mysql_config... no
checking for mariadb_config... no
configure: error: MySQL library not found
解决方法为安装mysql-devel包
1 | [root@10-10-10-11 zabbix-4.0.3]#yum -y install mysql-devel |
安装完成后修改zabbix-server.conf配置文件,如下:
1 | [root@10-10-10-11 zabbix]#grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_server.conf |
创建相关目录
1 | [root@10-10-10-11 mysql]#mkdir /usr/local/zabbix/{pid,logs,socket} -pv |
导入数据库
1 | [root@10-10-10-11 mysql]#pwd |
复制启动脚本
1 | [root@10-10-10-11 zabbix-4.0.3]#pwd |
修改启动脚本
1 | vim /etc/init.d/zabbix_server |
启动zabbix-server
1 | ~]#service zabbix_server start |
配置web界面
1 | [root@10-10-10-11 html]#yum -y install httpd |
此时,在浏览可以通过ip访问该站点了。
访问zabbix时会出现几个报错,解决办法为:
安装缺少的包
1 | [root@10-10-10-11 html]#yum install php-gettext php-session php-ctype php-xmlreader php-xmlwriter php-xml php-net-socket php-gd php-mysql -y |
修改php配置文件如下:
1 | [root@10-10-10-11 html]#vi /etc/php.ini |
重启httpd后再次访问web
之后按提示操作配置后就可以正常访问zabbix-server。
zabbix字体乱码的解决办法:
将Windows中的字体(控制面板->小图标->字体)拷贝到zabbix中
1 | [root@10-10-10-11 fonts]#pwd |
将搜索到的文件中的字体替换为刚才复制进来的字体即可。
向zabbix server中增加agent(被动模式)
先在客户端安装zabbix agent
1 | [root@host-10-10-10-13 zabbix-4.0.3]# ./configure --enable-agent --prefix=/usr/local/zabbix |
修改zabbix agent的配置文件
1 | [root@host-10-10-10-13 zabbix]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf |
创建相关目录和zabbix用户,
1 | [root@host-10-10-10-13 zabbix]# mkdir /usr/local/zabbix/{logs,pid} |
启动zabbix agent之后,即可以在web图形界面添加相应的主机。
zabbix get工具介绍:使用该工具可以获取zabbix agent数据命令。可以通过yum安装zabbix-get的rpm包获取该工具。
编译安装的zabbix在安装目录下的bin目录里面也有该工具,可以通过如下方式使用
1 | [root@10-10-10-11 zabbix-4.0.3]#cd /usr/local/zabbix/ |
使用zabbix监控tomcat
在zabbix server上安装配置java gateway
java gateway可以配置在一个单独的服务器上,也可以和zabbix server配置在同一服务器上,这里以单独配置一台java gateway服务器为例。编译安装的zabbix开启–enable-java选项会自动安装java gateway功能。
1 | ~]#yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb-devel java-1.8.0-openjdk-devel -y |
编辑配置文件
1 | ~]# vim /usr/local/zabbix/sbin/zabbix_java/settings.sh |
启动java gateway
1 | ~]#/usr/local/zabbix/sbin/zabbix_java/startup.sh |
单独配置一台java gateway服务器
下载安装java gateway的rpm包
1 | [root@docker tools]#wget https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-java-gateway-4.0.3-1.el7.x86_64.rpm |
编辑配置文件,此配置文件和编译安装的配置文件一样
1 | [root@docker tools]#grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf |
启动java gateway
1 | [root@docker tools]#systemctl start zabbix-java-gateway |
配置zabbix server调用java gateway
1 | ~]#vim /usr/local/zabbix/etc/zabbix_server.conf |
配置tomcat启用jmx远程监控
配置tomcat的启动脚本
1 | [root@docker tomcat]#vi /usr/local/tomcat/bin/catalina.sh |
之后启动tomcat就可以在zabbix server上增加该主机的jmx监控。
监控java的排错方法
测试能否获取到java当前已经分配的线程数
1 | # java -jar cmdline-jmxclient-0.10.3.jar - 192.168.15.203:12345 'Catalina:name="http-bio8080",type=ThreadPool' currentThreadCount |
zabbix proxy(被动模式)
zabbix 是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后把收集保存在本地数据库并发送给zabbix server进行统一存储和展示。
安装zabbix proxy
安装依赖包
1 | [root@zabbix-proxy ~]# yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y |
准备mysql数据库
1 | MariaDB [(none)]>create database zabbix_proxy character set utf8 collate utf8_bin; |
编译安装zabbix
1 | [root@host-10-10-10-12 zabbix-4.0.3]# ./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java |
导入数据库,由于此zabbix仅作为proxy使用,所以只需导入schema.sql这一个库即可。
1 | [root@host-10-10-10-12 tools]# mysql -uproxy -pcentos -h10.10.10.23 zabbix_proxy < /root/tools/zabbix-4.0.3/database/mysql/schema.sql |
配置被动模式下的zabbix proxy
1 | [root@apache zabbix]#grep "^[a-Z]" etc/zabbix_proxy.conf |
编译安装zabbix agent
1 | [root@web-server zabbix-4.0.1]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf |
注意,如果agent是通过proxy将数据发到server上的,那么agent配置文件的server要同时写上server和proxy的地址,以逗号分隔。
zabbix主动模式
zabbix主被动模式是相对agent来说的,主动模式是agent自动采集数据后发送给server或者proxy,不需要zabbix server的干预,因此主动模式在一定程度上可减轻zabbix server的压力。
zabbix被动模式是server主动向客户端发送请求,客户端被动收集数据后发送给sever,由于zabbix server需要周期性的项agent索取数据,这种模式的最大问题就是会加大zabbix server的工作量,在数百台服务器的环境下zabbix server不能及时获取到最新的数据,被动模式时zabbix默认的工作模式。
zabbix是一个分布式的监控系统,支持通过代理服务器zabbix proxy收集zabbix agent的数据,然后收集保存在本地数据库并发送给zabbix server进行统一存储和展示。
配置主动模式的proxy
1 | [root@apache zabbix]#grep "^[a-Z]" etc/zabbix_proxy.conf |
配置主动模式的agent
1 | [root@localhost zabbix]# grep "^[a-Z]" etc/zabbix_agentd.conf |
编译安装的步骤:
- configure,检查编译环境是否符合要求,如果符合要求生成Makefile
- make,根据Makefile生成模块
- make install,将生成的模块拷贝到指定的目录,完成安装。
监控TCP连接数
创建获取数据的脚本
1 | [root@localhost zabbix]# cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp_conn_plugin.sh |
创建conf文件引用脚本
1 | [root@localhost zabbix]# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/all.conf |
此方法需要在agent配置文件导入自定义配置文件
1 | [root@localhost zabbix]#vim /usr/local/zabbix/etc/zabbix_agentd.conf |
或者直接在agent配置文件中添加自定义监控项
1 | [root@localhost zabbix]#vim /usr/local/zabbix/etc/zabbix_agentd.conf |
重启agent服务
1 | [root@localhost zabbix]#/etc/init.d/zabbix_agentd restart |
在被监控的服务器为zabbix用户授权
1 | [root@localhost zabbix]# vi /etc/sudoers |
测试获取数据
1 | [root@localhost zabbix]# zabbix_get -s 192.168.15.204 -p 10050 -k "linux_status["tcp_status","LISTEN"]" |