一、zabbix的安装
#1、最小化安装操作系统
#安装以下常用依赖包:
# 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
#2、安装数据库
#使用脚本自动安装数据库:
# ln -sv /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
max_connections=10000 #my.cnf配置文件更改最大链接数
#3、安装zabbix server端
#(1)安装依赖包:
# yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel -y
#(2)准备数据库:
[root@zabbix-web1 ~]# mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql>grant all privileges on zabbix.* to zabbix@"172.18.200.%" identified by '123456';
Query OK, 0 rows affected (0.00 sec)
#(3)编译安装zabbix:
[root@zabbix-server ~]# cd /usr/local/src/
[root@zabbix-server src]# zabbix-4.0.1.tar.gz
[root@zabbix-server zabbix-4.0.1]# useradd zabbix -s /sbin/nologin
# ./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
# make && make install
#(4)导入数据库:
#先导入此文件,如果做zabbix代理服务器,则只导入此文件即可
mysql -uzabbix -p123456 -h192.168.15.203 zabbix < database/mysql/schema.sql
mysql -uzabbix -p123456 -h192.168.15.203 zabbix < database/mysql/images.sql
mysql -uzabbix -p123456 -h192.168.15.203 zabbix < database/mysql/data.sql
#(5)复制启动脚本:
cp /usr/local/src/zabbix-4.0.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp /usr/local/src/zabbix-4.0.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
#(6)更改启动脚本:
vim /etc/init.d/zabbix_server
vim /etc/init.d/zabbix_agent
21 # Zabbix-Directory
22 BASEDIR=/usr/local/zabbix
#(7)编辑zabbix_server.con配置文件:
#mkdir /var/log/zabbix && chown zabbix.zabbix /var/log/zabbix –R
[root@zabbix-server ~]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=192.168.10.103
DBName=zabbix
DBUser=zabbix
DBPassword=123456
DBPort=3306
Timeout=30
#(8)编辑Zabbix Server systemd启动脚本
[root@s1 zabbix-4.0.6]# cat /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/usr/local/zabbix/zabbix_server.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=0
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload && systemctl start zabbix-server && systemctl enable zabbix-server
#(9)编辑Zabbix Agent systemd启动脚本
# cat /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/sysconfig/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/usr/local/zabbix/zabbix_agentd.pid
KillMode=control-group
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
[Install]
WantedBy=multi-user.target
#4、配置web界面:
#(1)安装httpd:
#yum install httpd -y
#mkdir /var/www/html/zabbix
#cp -a /usr/local/src/zabbix-4.0.1/frontends/php/* /var/www/html/zabbix
# systemctl restart httpd
#(2)访问web
#(3)解决报错:
#yum install php-gettext php-session php-ctype php-xmlreader php-xmlwriter php-xml php-net-socket php
gd php-mysql
#如下更改vim /etc/php.ini:
post_max_size = 8M 改为 post_max_size = 16M
max_execution_time = 30 改为 max_execution_time = 300
max_input_time = 60 改为 max_input_time = 300
date.timezone = 改为 date.timezone = date.timezone = Asia/Shanghai
#(4)重启http再次访问web
#5、配置:
#(1)配置数据库:
database type:mysql
database host:192.168.15.203
database port:3306
database name:zabbix
user:zabbix
password:自行设置
#(2)配置zabbix server:
host:127.0.0.1
port:10051
name:zabbix server
#(3)完成其他页面设置
#确认配置、上传配置、刷新文件
username:Admin
password:zabbix
#(4)登录
#6、支持中文显示
#复制字体文件上传到服务器:
– /var/www/html/zabbix/fonts/
#编辑配置文件使用新字体:
– vim /var/www/html/zabbix/include/defines.inc.php
#7、测试获取zabbix agent数据:
# yum install zabbix-get-4.0.1-1.el7.x86_64.rpm -y
# zabbix_get -s 192.168.15.204 -p 10050 -k "system.cpu.load[all,avg1]"
Yum 安装zabbix
# yum install https://mirrors.aliyun.com/zabbix/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
# yum install zabbix-web-mysql
# yum install zabbix-server-mysql
# yum install zabbix-agent
# mysql
mysql> create database zabbix1 character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix1.* to zabbix1@"172.18.200.%" identified by '123456';
Query OK, 0 rows affected (0.00 sec)
#导入数据库
# zcat /usr/share/doc/zabbix-server-mysql-4.0.6/create.sql.gz | mysql -uzabbix1 -p123456 -h172.18.200.104 zabbix1
二、主机监控与tomcat监控
#1、安装配置java gateway
#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
#./configure --prefix=/usr/local/zabbix --enable-java --with-net-snmp --with-mysql --with-ssh2
#make install
#配置文件:
# vim /usr/local/zabbix/sbin/zabbix_java/settings.sh
– LISTEN_IP="0.0.0.0"
– LISTEN_PORT=10052
– PID_FILE="/tmp/zabbix_java.pid"
– START_POLLERS=20 #启动多少个进程轮训java,要和java 应用保持一定关系
– TIMEOUT=30
#/usr/local/zabbix/sbin/zabbix_java/startup.sh #启动
#2、配置zabbix server调用java gateway:
vim /usr/local/zabbix/etc/zabbix_server.conf
– JavaGateway=192.168.15.203 #指定java gateway的地址
– JavaGatewayPort=10052 #指定java gateway的服务器监听端口,如果是默认端口可以不写
– StartJavaPollers=20 #启动多少个进程去轮训 java gateway,要和java gateway的配置一致
– Timeout=30
#3、配置tomcat 监控参数:
#(1)
# vim /apps/tomcat/bin/catalina.sh
– CATALINA_OPTS= "$CATALINA_OPTS
– Dcom.sun.management.jmxremote #启用远程监控JMX
– Dcom.sun.management.jmxremote.port=12345 #默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
– Dcom.sun.management.jmxremote.authenticate=false #不使用用户名密码
– Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
– Djava.rmi.server.hostname=x.x.x.x" #tomcat主机自己的IP地址,不要写zabbix服务器的地址
#(2)配置JDK 环境:
# tar xvf jdk-7u79-linux-x64.tar.gz
# ln -sv /usr/local/src/jdk1.7.0_79/ /usr/local/jdk
# vim /etc/profile
– export JAVA_HOME=/usr/local/jdk
– export TOMCAT_HOME=/apps/tomcat
– export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$TOMCAT_HOME/bin:$PATH
– export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
# source /etc/profile
#(3) 重启tomcat并在windows 验证:
#/apps/tomcat/bin/catalina.sh stop
#/apps/tomcat/bin/catalina.sh start
C:\Program Files\Java\jdk1.8.0_191\bin\jconsole.exe
#4、Tomcat端安装zabbix agent:
#(1)编译安装zabbix 客户端:
# tar xvf zabbix-4.0.1.tar.gz
# cd zabbix-4.0.1/
# ./configure --enable-agent --prefix=/usr/local/zabbix
# make && make install
# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# vim /etc/init.d/zabbix_agentd
22 BASEDIR=/usr/local/zabbix
# useradd zabbix -s /sbin/nologin
#(2)更改zabbix agentd配置文件:
[root@zabbix-web1 ~]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=4
Server=192.168.10.101
Hostname=192.168.10.103 #server端添加此服务器的时候必须写次名称
#(3)重启zabbix agentd服务:
# /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
# /etc/init.d/zabbix_agentd restart #脚本问题
– 22 BASEDIR=/usr/local/zabbix
– 72 action $"Starting $BINARY_NAME: " $FULLPATH -c /usr/local/zabbix/etc/zabbix_agentd.conf
#5、添加监控tomcat
#在zabbix 添加主机并关联模板:
#6、监控java排错方法:
#测试能否获取到java 当前已经分配的线程数
# java -jar cmdline-jmxclient-0.10.3.jar - 172.18.200.104:12345 'Catalina:name="http-bio-8080",type=ThreadPool'
currentThreadCount
# java -jar cmdline-jmxclient-0.10.3.jar - 172.18.200.104:12345 'Catalina:name="http-bio-8080",type=ThreadPool'
maxThreads
三、Zabbix proxy 的安装和配置
#1、安装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
#(2)准备zabbix proxy数据库:
# mysql
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
grant all privileges on zabbix_proxy.* to proxy@'%' identified by '123456';
#(3)编译安装:
useradd zabbix -s /sbin/nologin
./configure --prefix=/usr/local/zabbix --enable-proxy --enable-agent --with-mysql --with-net
snmp --with-libcurl --with-libxml2 --enable-java
make install
#(4)导入数据库:
[root@zabbix-proxy zabbix-4.0.1]# mysql -uproxy -p123456 -h192.168.15.203 zabbix_proxy < database/mysql/schema.sqlProxy
#2、配置zabbix proxy:
# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=1 #0为主动,1为被动
Server=192.168.15.201 #zabbix server服务器的地址或主机名
Hostname=proxy1-mage-passive #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
LogFile=/tmp/zabbix_proxy.log
DBHost=192.168.15.203 #数据库服务器地址
DBName=zabbix_proxy #使用的数据库名称
DBUser=proxy #连接数据库的用户名称
DBPassword=123456 #数据库用户密码
DBPort=3306 #数据库端口
ProxyLocalBuffer=3 #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=24 #未提交到zabbix server的时间保留时间
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=5 #间隔多久从zabbix server 获取监控信息
DataSenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 #启动的数据采集器数量
JavaGateway=192.168.15.202 #java gateway服务器地址,当需要监控java的时候必须配置否则监控不到数据
JavaGatewayPort=10052 #Javagatewa服务端口
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
Timeout=30 #监控项超时时间,单位为秒
LogSlowQueries=3000 #
#3、添加被动代理:
#4、编译安装zabbix agent:
[root@web-server zabbix-4.0.1]# ./configure --enable-agent --prefix=/usr/local/zabbix
[root@web-server zabbix-4.0.1]# make install
[root@web-server zabbix-4.0.1]# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
[root@web-server zabbix-4.0.1]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
[root@web-server zabbix-4.0.1]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=4
Server=192.168.15.202,192.168.15.201
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.15.202
Hostname=192.168.15.203
Timeout=30
UnsafeUserParameters=1
#5、添加被动模式主机:
#注意关联到默认的被动模式模板
#6、验证被动模式监控数据:
#此过程需要一段时间,在zabbix server、zabbix proxy以及zabbix agent没有报错的情况下,需要耐心等待
#7、Zabbix proxy 日志:
#8、Proxy 主动模式配置文件:
#配置zabbix proxy:
# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_proxy.conf
ProxyMode=0 #0为主动,1为被动
Server=192.168.15.201 #zabbix server服务器的地址或主机名
Hostname=mage_proxy #代理服务器名称,需要与zabbix server添加代理时候的proxy name是一致的!
LogFile=/tmp/zabbix_proxy.log
DBHost=192.168.15.203 #数据库服务器地址
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=123456
DBPort=3306
ProxyLocalBuffer=3 #已经提交到zabbix server的数据保留时间
ProxyOfflineBuffer=24 #未提交到zabbix server的时间保留时间
HeartbeatFrequency=60 #心跳间隔检测时间,默认60秒,范围0-3600秒,被动模式不使用
ConfigFrequency=5 #间隔多久从zabbix server 获取监控信息
DataSenderFrequency=5 #数据发送时间间隔,默认为1秒,范围为1-3600秒,被动模式不使用
StartPollers=20 #启动的数据采集器数量
JavaGateway=192.168.15.202 #java gateway服务器地址
JavaGatewayPort=10052
StartJavaPollers=20 #启动多少个线程采集数据
CacheSize=2G #保存监控项而占用的最大内存
HistoryCacheSize=2G #保存监控历史数据占用的最大内存
Timeout=30
LogSlowQueries=3000
#9、Proxy 主动数据库配置:
#创建数据库:
[root@s4 src]# mysql
mysql> create database zabbix_proxy_active character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)
[root@mysql-server zabbix-proxy-mysql-4.0.1]# pwd
/usr/share/doc/zabbix-proxy-mysql-4.0.1
#zcat schema.sql.gz | mysql -uzabbix_active -p123456 -h192.168.15.203 zabbix_proxy_active
# systemctl restart zabbix-proxy.service
#10、添加主动代理:
#11、客户端安装agent
#(1)Web 客户端安装zabbix agent:
# yum install gcc -y
# useradd zabbix -s /sbin/nologin
# tar xvf zabbix-4.0.1.tar.gz
# cd zabbix-4.0.1
# ./configure --prefix=/usr/local/zabbix --enable-agent
# make install
# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# vim /etc/init.d/zabbix_agentd
– 22 BASEDIR=/usr/local/zabbix
#(2)更改配置文件:
[root@web-server apps]# grep "^[a-Z]" /usr/local/zabbix/etc/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log
DebugLevel=4
Server=192.168.15.203
ListenPort=10050
ListenIP=0.0.0.0
StartAgents=3
ServerActive=192.168.15.203
Hostname=192.168.15.204
Timeout=30
UnsafeUserParameters=1Server端添加监控:
#12、Server端添加监控:
#关联模板
#添加完成之后,确认状态如下:
#Zabbix server 可以同时配置主动模式和被动模式的代理服务器
#13、监控结果:
#14、主动模式监控tomcat
#在zabbix 控制台指定主机添加jmx监控
#部署tomcat服务
#关联模板:
#验证tomcat 监控数据
#15、导入自定义模板
#验证tomcat 监控数据
java \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=12345 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false