一、zabbix的安装和部署
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题
zabbix由2部分构成,zabbix server与可选组件zabbix agent
1、zabbix的安装
zabbix server (server1)
yum install httpd -y
vim /etc/yum.repos.d/zabbix.repo ##搭建仓库
[zabbix]
name=zabbix 5.0lts
baseurl=http://172.25.254.250/pub/docs/zabbix/5.0LTS
gpgcheck=0
scp /etc/yum.repos.d/zabbix.repo server2/3:/etc/yum.repos.d/ ##搭建server2,server3仓库
yum install zabbix-server-mysql zabbix-agent -y
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y ##有依赖性
下载mysql tar包
yum install 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 -y
systemctl start mysqld
cat /var/log/mysqld.log ##查看初始密码
mysql_secure_installation ##数据库初始化设置
n y y y y
mysql -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'Hush123.';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
cd /usr/share/doc/zabbix-server-mysql-5.0.15/
zcat create.sql.gz | mysql -uzabbix -p zabbix
mysql -p
mysql> use zabbix;
mysql> show tables;
vim /etc/zabbix/zabbix_server.conf ##修改数据库密码密码
DBPassword=Hush123.
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf ##设置时区
php_value[date.timezone] = Asia/Shanghai
systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm
图形初始化设置
使用浏览器访问zabbix server端的ip(172.25.22.1/zabbix)
全ok表示配置完成
输入账户密码
输入名字
确认填写信息
输入初始账户密码(Admin,zabbix)
初始界面可设置中文
cd /usr/share/zabbix/assets/fonts/
rm -rf graphfont.ttf
下载simkai.ttf字体
ln -s simkai.ttf graphfont.ttf
2、zabbix添加主机
Agent (server2)
[server2]
yum install zabbix-agent -y
vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.22.1
ServerActive=172.25.22.1
Hostname=server2
systemctl enable --now zabbix-agent
Agent (server3)
[server3]
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.22.1
ServerActive=172.25.22.1
Hostname=server3
systemctl enable --now zabbix-agent
图形界面:手动添加
图形界面:自动添加
自动注册(需关闭自动发现功能)
systemctl restart zabbix-agent.service ##server2,server3
zabbix中API的使用
检索主机
#!/bin/bash
#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
#
# "jsonrpc": "2.0",
# "method": "user.login",
# "params": {
# "user": "Admin",
# "password": "zabbix"
# },
# "id": 1,
# "auth": null
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool
#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
# "jsonrpc": "2.0",
# "method": "host.get",
# "params": {
# "output": [
# "hostid",
# "host"
# ],
# "selectInterfaces": [
# "interfaceid",
# "ip"
# ]
# },
# "id": 2,
# "auth": "33e6a455be620633bcd7005302a3cd3f"
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool
删除主机
#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
# "jsonrpc": "2.0",
# "method": "host.delete",
# "params": [
# "10437"
# ],
# "id": 1,
# "auth":"33e6a455be620633bcd7005302a3cd3f"
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool
创建主机
#curl -s -XPOST -H 'Content-Type:application/json-rpc' -d '
#{
# "jsonrpc": "2.0",
# "method": "host.create",
# "params": {
# "host": "server3",
# "interfaces": [
# {
# "type": 1,
# "main": 1,
# "useip": 1,
# "ip": "172.25.22.3",
# "dns": "",
# "port": "10050"
# }
# ],
# "groups": [
# {
# "groupid": "2"
# }
# ],
# "templates": [
# {
# "templateid": "10001"
# }
# ]
# },
# "auth": "33e6a455be620633bcd7005302a3cd3f",
# "id": 1
#
#}' http://172.25.22.1/zabbix/api_jsonrpc.php | python -m json.tool
二、zabbix监控Apache和Nginx
http(server2)/nginx(server3)
server2(http)
yum install -y httpd
echo server2 > /var/www/html/index.html
vim /etc/httpd/conf/httpd.conf
<Location "/server-status">
SetHandler server-status
Require all granted
</Location>
echo server2 > /var/www/html/index.html
systemctl enable --now httpd
ab -c1 -n 1000 http://172.25.22.2/index.html ##压力测试
server3(nginx)
tar zxf nginx-1.21.1.tar.gz
cd nginx-1.21.1/
yum install -y gcc pcre-devel zlib-devel
./configure --prefix=/usr/local/nginx --with-http_stub_status_module
make
make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
vim /usr/local/nginx/conf/nginx.conf
location = /basic_status {
stub_status;
}
nginx -t
nginx -s reload
ab -c1 -n 1000 http://172.25.22.3/index.html
手动编写nginx监控图形策略
server3
cd /etc//zabbix/zabbix_agentd.d/
vim nginx_status.conf
UserParameter=nginx.active,curl -s localhost/basic_status | grep Active | awk '{print $3}'
UserParameter=nginx.accepts,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.handler,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'
UserParameter=nginx.request,curl -s localhost/basic_status | awk NR==3 | awk '{print $1}'
systemctl restart zabbix-agent.service
server1
zabbix_get -s 172.25.22.3 -p 10050 -k "nginx.accepts" ##server1检测数据
三、zabbix监控mysql
server1中有mysql,可直接监控server1
cd /etc/zabbix/zabbix_agentd.d/
cp /usr/share/doc/zabbix-agent-5.0.15/userparameter_mysql.conf .
mysql -p
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@localhost IDENTIFIED BY 'Hush123.';
mysql> flush privileges;
mkdir /var/lib/zabbix
cd /var/lib/zabbix
vim .my.cnf
[client]
user='zbx_monitor'
password='Hush123.'
systemctl restart zabbix-agent.service
但是由于自带的mysq模板监控项太少了,所以需要手动添加模板
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/scripts/templates/
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
vim /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf
vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
ln -s /opt/rh/rh-php72/root/usr/bin/php /usr/bin/php
/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
##手动测试之后会生成一个txt文件,这个文件生成的默认权限是root,因为访问的时候是用zabbix用户访问的!所以需要权限是zabbix的,所以需要删除调手动测试生成的文件
rm -rf localhost-mysql_cacti_stats.txt
删除之前的mysql
自动生成文件,文件所属权是zabbix
四、zabbix监控java
server1
yum install zabbix-java-gateway.x86_64 -y
systemctl enable --now zabbix-java-gateway.service
netstat -antlp | grep :10052
vim /etc/zabbix/zabbix_server.conf
JavaGateway=172.25.22.1
JavaGatewayPort=10052
StartJavaPollers=5
systemctl restart zabbix-server.service
server2
rpm -ivh jdk-8u121-linux-x64.rpm
tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
cd /usr/local
mv apache-tomcat-8.5.24/ tomcat
cd tomcat/bin
./startup.sh
netstat -antlp
浏览器访问http://172.25.22.1/zabbix/
五、zabbix+proxy
server4
yum install zabbix-proxy-mysql.x86_64
vim /etc/zabbix/zabbix_proxy.conf
Server=172.25.22.1
ServerPort=10051
Hostname=proxy
DBName=zabbix_proxy ##数据库中的库名称
DBUser=zabbix ##访问数据库的身份
DBPassword=Hush123. ##访问数据库的密码
tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
yum install 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
systemctl start mysqld
cat /var/log/mysqld.log
mysql_secure_installation
mysql -p
mysql> create database zabbix_proxy character set utf8 collate utf8_bin;
mysql> create user ‘zabbix’@‘localhost’ identified by ‘Hush123.’;
mysql> grant all privileges on zabbix_proxy.* to ‘zabbix’@‘localhost’;
zcat /usr/share/doc/zabbix-proxy-mysql-5.0.15/schema.sql.gz | mysql -uzabbix -p zabbix_proxy
hostnamectl set-hostname proxy
vim /etc/hosts
172.25.22.4 proxy
server1
cat /var/log/zabbix/zabbix_server.log
zabbix+cloudalert