目录
一、zabbix部署
官网:Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution
安装yum源:
cd /etc/yum.repos.d/
vim zabbix.repo
[zabbix]
name=Zabbix Official Repository - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/
enabled=1
gpgcheck=0
[zabbix-frontend]
name=Zabbix Official Repository frontend - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/5.0/rhel/7/$basearch/frontend
enabled=1
gpgcheck=0
[zabbix-non-supported]
name=Zabbix Official Repository non-supported - $basearch
baseurl=https://mirrors.tuna.tsinghua.edu.cn/zabbix/non-supported/rhel/7/$basearch/
enabled=1
gpgcheck=0
安装server和agent
yum install zabbix-server-mysql zabbix-agent
安装前端
yum install -y centos-release-scl-2-3.el7.centos.noarch.rpm centos-release-scl-rh-2-3.el7.centos.noarch.rpm #这两个软件包需要自己下载
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
安装mysql数据库
tar xf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
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
systemctl enable --now mysqld
grep 'temporary password' /var/log/mysqld.log #获取初始化密码
创建zabbix数据库
mysql -p
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'Yl20010801+';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
导入数据,数据量比较大,需要等待一下,不要中断 导入后再禁用数据库参数
zcat /usr/share/doc/zabbix-server-mysql-5.0.38/create.sql.gz | mysql -uzabbix -pYl20010801+ zabbix
配置zabbix server
vim /etc/zabbix/zabbix_server.conf #只需修改数据库密码
配置zabbix前端
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
#去掉此行的注释,并修改时区
启动服务
systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm
访问前端:
填写数据库连接信息
填写zabbix server 信息
修改前端语言
修改字体文件 (字体需要在WindowsC盘里边找)
cp simkai.ttf /usr/share/zabbix/assets/fonts
cd /usr/share/zabbix/assets/fonts
rm -f graphfont.ttf
ln -s simkai.ttf graphfont.ttf
二、添加agent
1. 手动添加
agent配置
从vm0拷贝repo文件
scp zabbix.repo vm1:/etc/yum.repos.d/
scp zabbix.repo vm2:/etc/yum.repos.d/
yum install -y zabbix-agent
vim /etc/zabbix/zabbix_agentd.conf
systemctl enable --now zabbix-agent.service
netstat -antlp |grep :10050
server端配置
2. 自动发现
server端配置
3. 自动注册
先删除vm2主机
停用自动发现规则
创建自动注册动作
agent端重启服务
4. zabbix api
获取token
curl -s -X POST http://192.168.189.110/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
> {
> "jsonrpc": "2.0",
> "method": "user.login",
> "params": {
> "user": "Admin",
> "password": "zabbix"
> },
> "id": 1,
> "auth": null
> }' | python -m json.tool
{
"id": 1,
"jsonrpc": "2.0",
"result": "3d5bbc6d5c849058ed1ce68870072b29"
}
检索主机
curl -s -X POST http://192.168.189.110/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.get",
"params": {
"output": [
"hostid",
"host"
],
"selectInterfaces": [
"interfaceid",
"ip"
]
},
"id": 2,
"auth": "3d5bbc6d5c849058ed1ce68870072b29"
}' | python -m json.tool
删除主机
curl -s -X POST http://192.168.189.110/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.delete",
"params": [
"10441"
],
"id": 4,
"auth": "3d5bbc6d5c849058ed1ce68870072b29"
}' | python -m json.tool
创建主机
curl -s -X POST http://192.168.189.110/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' -d '
{
"jsonrpc": "2.0",
"method": "host.create",
"params": {
"host": "vm2",
"interfaces": [
{
"type": 1,
"main": 1,
"useip": 1,
"ip": "192.168.189.112",
"dns": "",
"port": "10050"
}
],
"groups": [
{
"groupid": "2"
}
],
"tags": [
{
"tag": "Host name",
"value": "vm2"
}
],
"templates": [
{
"templateid": "10001"
}
]
},
"id": 2,
"auth": "3d5bbc6d5c849058ed1ce68870072b29"
}' | python -m json.tool
三、服务监控
1、nginx监控
安装nginx
tar zxf nginx-1.23.3.tar.gz
cd nginx-1.23.3/
yum install -y gcc make openssl-devel pcre-devel
./configure --with-http_stub_status_module
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
location = /basic_status {
stub_status;
}
nginx
netstat -antlp|grep :80
curl localhost/basic_status
在server端为主机关联nginx服务监控模板
稍作等待,监控数据就会出来
2、mysql监控
推荐使用percona的数据库模板
rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
cd /var/lib/zabbix/percona/templates
cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
systemctl restart zabbix-agent.service
cd /var/lib/zabbix/percona/scripts/
vim 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
有数据显示就表示正常
删除tmp下的缓存文件
rm -f localhost-mysql_cacti_stats.txt
导入模板文件
关联模板
等待监控数据出来
只要/tmp生成缓存文件就表示成功
3、tomcat监控
yum install -y java-1.8.0-openjdk.x86_64
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
cd /usr/local/
ln -s apache-tomcat-7.0.37/ tomcat
cd tomcat/bin/
vim catalina.sh
./startup.sh
netstat -antlp|grep :8888
安装zabbix-java-gateway (vm0)
yum install -y zabbix-java-gateway
systemctl enable --now zabbix-java-gateway.service
netstat -antlp|grep :10052
修改server配置
vim /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server.service
前端配置
添加jmx接口
关联模板
4、集成告警平台
创建appkey
部署探针
cd /usr/lib/zabbix/alertscripts
tar xf ca_zabbix_release-4.0.1.tar.gz
cd cloudalert/bin
./install.sh 80521b7c-eb16-46d8-a0fd-6a621f4938e4 #自己对应的编码告警平台查看
chown zabbix.zabbix cloudalert/ -R
配置通知策略
zibbix
停止agent服务
等待片刻后会触发报警,并发送到外部告警平台
可以在告警平台查看到完整到处理流程
已解决
四、分布式监控
新建proxy节点,删除vm1 agent作为proxy节点
systemctl disable --now zabbix-agent.service
hostnamectl set-hostname proxy
vim /etc/hosts #解析
安装proxy软件 在vm0上创建proxy数据库
yum install zabbix-proxy-mysql
mysql -p
create user 'zabbix'@'%' identified by 'Yl20018001+';
grant all privileges on zabbix_proxy.* to 'zabbix'@'%';
从proxy拷贝数据库文件
cd /usr/share/doc/zabbix-proxy-mysql-5.0.38/
scp schema.sql.gz server1:
导入proxy数据库
zcat schema.sql.gz | mysql -uzabbix -pYl20010801+ zabbix_proxy
修改proxy配置
vim /etc/zabbix/zabbix_proxy.conf
Server=192.168.189.110 #指向zabbix_server
Hostname=proxy #主机名
DBHost=192.168.189.119 #proxy数据库配置
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=Yl2001801+
JavaGateway=192.168.189.110 #jmx配置
JavaGatewayPort=10052
StartJavaPollers=5
systemctl restart zabbix-proxy.service
创建proxy
为主机配置代理
再重启proxy服务
systemctl restart zabbix-proxy.service
修改agent配置,指向proxy地址 (vm2)
vim /etc/zabbix/zabbix_agentd.conf
查看日志,没有报错就表示成功
最终配置完毕后,逐渐监控状态也是可用的