zabbix-api:
https://www.zabbix.com/documentation/3.4/zh/manual/api/reference
安装,
zabbix-server-mysql.service
yum install -y zabbix40-server-mysql.x86_64
mysql:
创建数据库,授权,
mysql> create database zabbix default charset utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'zabbix';
mysql> flush privileges;
zabbix库导入,
shell> mysql -u<username> -p<password> -h<host> zabbix < database/mysql/schema.sql
# stop here if you are creating database for Zabbix proxy
shell> mysql -u<username> -p<password> -h<host> zabbix < database/mysql/images.sql
shell> mysql -u<username> -p<password> -h<host> zabbix < database/mysql/data.sql
配置,
vim /etc/zabbix_server.conf
ListenPort=10051
DBName=
DBUser=
DBPassword=
DBport=
web:
yum install -y zabbix40-web zabbix40-web-mysql
vim /etc/httpd/conf.d/zabbix.conf
Alias /zabbix /usr/share/zabbix (默认路径)
php_value date.timezone Asia/Shanghai
-------------------------
注意:
1,/etc/zabbix/web/zabbix.conf.php
2,修改zabbix_server.conf或zabbix_proxy.conf中的缓存大小:
CacheSize=2G
乱码:
字体文件目录:
zabbix 4.2 /usr/share/zabbix/assets/fonts/
4.0 /usr/share/zabbix/fonts/
php 脚本文件位置:
/usr/share/zabbix/include/defines.inc.php
两种解决方法:
第一种 先上传一个中文字体,然后把 字体目录下的graphfont.ttf替换成你上传的中文字体.
zabbix 4.2 上传到这里 /usr/share/zabbix/assets/fonts/
zabbix 4.0 上传到这里 /usr/share/zabbix/fonts/
cp 你上传的字体名称 graphfont.ttf
第二种就是 改php脚本文件.
vim /usr/share/zabbix/include/defines.inc.php
页面操作:
添加主机:
主机名称要和agent配置中的相同:
Hostname=Zabbix server
server的listenport要和客户端的ServerActive端口相同:
ListenPort=6666 ServerActive=x.x.x.x:6666
angent的ListenPort要和添加主机时的端口相同
复制监控项/触发器:
配置-->主机-->勾选监控项/触发器-->复制-->选择主机群组或主机
自动发现:
配置-->自动发现规则
配置-->动作-->事件源选择自动发现-->创建动作:
动作-->新的触发条件-->自动发现规则
操作-->与模板关联-->选择模板
模板
配置-->模板-->导入-->选择文件
注意:如果导入错误,提示群组已存在,需修改模板,如:
<group>Template</group>
修改为
<group>Template_Oracle</group>
api监控
配置-->主机-->选择主机-->创建web场景:
场景/认证 略
步骤:添加url 请求参数等
测试:
zabbix_get -s 172.17.2.11 -p 6052 -k vfs.fs.size[/,free]
zabbix_get -s 172.17.16.116 -p 6052 -k service.count[cscloud]
自定义监控项:
# cat /etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=172.17.16.113,172.17.16.116
ServerActive=172.17.16.113,172.17.16.116
ListenPort=6066
Hostname=172.17.16.116
UnsafeUserParameters=1
UserParameter=service.count[*],/data01/scripts/count_zk_service.py $1
UserParameter=get_all_service,/data01/scripts/get_all_services.py
UserParameter=redis_mem_count[*],/data01/scripts/redis_mem_count.sh $1 $2
UserParameter=redis_client_count[*],/data01/scripts/redis_client_count.sh $1 $2
redis_mem_count.sh:
#!/bin/bash
mem_count=`redis-cli -h $1 -p $2 -a 'password' info 2>/dev/null|grep '^used_memory:'|awk -F: '{print $2}'|tr -d '\r'`
echo "${mem_count}/1024/1024"|bc
redis_client_count.sh:
#!/bin/bash
redis-cli -h $1 -p $2 -a 'password' info 2>/dev/null|grep '^connected_clients:'|awk -F: '{print $2}'|tr -d '\r'
报错
错误:zbx_mem_realloc(): please increase CacheSize configuration parameter
解决方案:
vim zabbix_server.conf:
CacheSize=1024M #默认为8M
错误:cannot initialize configuration cache: cannot get private shared memory of size 8589934592 for configuration cache: [22] Invalid argument
解决:
vim /etc/sysctl.conf
kernel.shmmax = 9589934592
sysctl -p
---监控postgres---
agent:
1 被监控端安装插件:
ansible postgres -m copy -a 'src=zabbix/libzbxpgsql-1.1.0-1.el7.x86_64.rpm dest=/root'
ansible postgres -m yum -a 'name=postgresql-libs state=present'
ansible postgres -m shell -a 'zabbix_agentd -t pg.modver'
2 分发配置文件并重启
ansible-playbook zabbix.yml -e 'host=postgres'
--zabbix.yml:
---
- hosts: "{
{host}}"
tasks:
- name: install agent
yum: name=zabbix-agent.x86_64 state=present
ignore_errors: yes
- name: copy zabbix_agentd.conf
copy: src=zabbix_agentd.conf dest=/etc/zabbix/
- name: set hostname
shell: echo "Hostname={
{ ansible_default_ipv4.address }}" >>/etc/zabbix/zabbix_agentd.conf
- name: restart zabbix-agent
service: name=zabbix-agent state=restarted
server:
1 导入模板:Template App PostgreSQL(不要另存为)
2 配置连接:主机--》宏:
{$PG_CONN} host=l27.0.0.1 port=5432 user=monitoring password=123456 connect_timeout=10
{$PG_DB} sync
----监控mysql-----
服务端测试:zabbix_get -s 172.17.1.5 -p 6004 -k mysql.status[Uptime]
agent端:
1 mysql授权:
MariaDB [(none)]> GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
# usage “无权限”,其实就是让你这个用户可以像个用户似的登录,但是除了能看到有那写数据库外,什么权限也没有;SHOW GRANTS可以查看
MariaDB [(none)]> FLUSH PRIVILEGES;
2 vim /etc/zabbix/.my.cnf
[client]
host=172.17.1.5
user=zabbix
password=zabbix
3 sed -i.bak 's@/var/lib/zabbix@/etc/zabbix@g' /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
----利用Orabbix监控Oracle----
1 安装orabbix(插件安装在zabbix-server端)
unzip orabbix-1.2.3.zip -d orabbix
cp config.props.sample config.props
vim config.props
ZabbixServerList=ZabbixServer1
ZabbixServer1.Address=${zabbixserver_ip}
ZabbixServer1.Port=6666
OrabbixDaemon.PidFile=./logs/orabbix.pid
OrabbixDaemon.Sleep=300
OrabbixDaemon.MaxThreadNumber=100
DatabaseList=DB1
DatabaseList.MaxActive=10
DatabaseList.MaxWait=100
DatabaseList.MaxIdle=1
DB1.Url=jdbc:oracle:thin:@${ip}:${port}:${sid}
DB1.User=${username}
DB1.Password=${password}
DB1.MaxActive=10
DB1.MaxWait=100
DB1.MaxIdle=1
DB1.QueryListFile=./conf/query.props
2 导入模板/opt/orabbix/template/Orabbix_export_full.xml
<group>Template</group>
修改为
<group>Template_Oracle</group>
3 oracle机器:
安装agent
4 添加主机、关联模板