之前介绍了使用zabbix监控固定6379端口的redis(文章地址为http://dl528888.blog.51cto.com/2382721/1361407),有个不好的地方是只能监控固定的6379端口,如果是非6379端口的话,需要修改模板,如果主机有多个redis实例的话,需要具有不同的redis模板,然后在管理监控,很是麻烦,为了解决这个问题,我使用lld(low level discovery)方式监控redis,只需要你在正则表达式里把需要监控的端口标上,就可以监控redis多实例。
下面是监控效果图:
1、Redis 20000 Port Connections
2、Redis 20000 Port key
3、Redis 20000 Port Last_save_time
4、Redis 20000 Port status
5、Redis 20000 Port Uptime_in_seconds
6、Redis 20000 Port Used memory
如何实现:
一、客户端
1、监控内容的json化
在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果
下面在是我的json监控redis的json展示
脚本内容如下:
#Fucation:mysql low-level discovery #Script_name redis_low_discovery.sh port=($(sudo netstat -tpln | awk -F "[ :]+" '/redis/ && /0.0.0.0/ {print $5}' )) printf '\t"data":[\n' for key in ${!port[@]} if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}' |cut -d ' ' -f 1 ` printf "\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"},\n" else [[ "${key}" -eq "((${#port[@]}-1))" ]] socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}' |cut -d ' ' -f 1 ` printf "\t\t\t\"{#REDISPORT}\":\"${port[${key}]}\"}\n" |
把此文件存放到/usr/local/zabbix/bin里,然后给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat
echo "zabbix ALL=(root) NOPASSWD:/bin/netstat" >>/etc/sudoers |
#Disable requiretty
sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers |
不关闭的话,会无法获取数据,并且zabbix日志里报
2、修改zabbix_agentd.conf文件
在zabbix_agentd.conf最后添加以下内容
Linux¨ˇé 阅读原文»
用户名:KS0101 文章数:28 评论数:6 深度解析Linux通过日志反查入侵 昨天晚上群里有一个朋友的服务器发现有入侵的痕迹后来处理解决但是由于对方把日志都清理了无疑给排查工作增加了许多难度。刚好手里有些资料我就整理整理贴出来分享一下。其实日志的作用是非常大的。学会使用通过日志来排查解决我们工作中遇到的一些问题是很有必要的。下面就一一道来。 大纲 Linux日志系统简介 Linux日志分析 Linux日志入侵发现 实例分析 Linux日志系统简介 日志的主要用途是系统审计、监测追踪和分析统计。 为了保证 Linux 系统正常运行、准确解决遇到的各种各样的系统问题认真地读取日志文件是管理员的一项非常重要的任务。 UNIX/ Linux采用了syslog工具来实现此功能如果配置正确的话所有在主机上发生的事情都会被记录下来不管是好的还是坏的。 什么是 syslog Linux 内核由很多子系统组成包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区于是就有了 syslog。 syslog 是一个综合的日志记录系统。它的主要功能是方便日志管理和分类存放日志。 syslog 使程序设计者从繁重的、机械的编写日志文件代码的工作中解脱出来使管理员更好地控制日志的记录过程。 syslog 能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如由于核心信息更重要且需要有规律地阅读以确定问题出在哪里所以要把核心信息与其他信息分开来单独定向到一个分离的文件中。 管理员可以通过编辑 /etc/syslog.conf 来配置它们的行为。 syslogd的配置文件 syslogd 的配置文件 /etc/syslog.conf 规定了系统中需要监视的事件和相应的日志的保存位置。 # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # 将 info 或更高级别的消息送到 /var/log/messages # 除了 mail/news/authpriv/cron 以外。 # 其中*是通配符代表任何设备none 表示不对任何级别的信息进行记录。 *.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages # 将 authpirv 设备的任何级别的信息记录到 /var/log/secure 文件中 # 这主要是一些和认证、权限使用相关的信息。 authpriv.* /var/log/secure # 将 mail 设备中的任何级别的信息记录到 /var/log/maillog 文件中这主要是和电子邮件相关的信息。 mail.* -/var/log/maillog # 将 cron 设备中的任何级别的信息记录到 /var/log/cron 文件中 # 这主要是和系统中定期执行的任务相关的信息。 cron.* /var/log/cron # 将任何设备的 emerg 级别或更高级别的消息发送给所有正在系统上的用户。 *.emerg * # 将 uucp 和 news 设备的 crit 级别或更高级别的消息记录到 /var/log/spooler 文件中。 uucp,news.crit /var/log/spooler # 将和本地系统启动相关的信息记录到 /var/log/boot.log 文件中。 local7.* /var/log/boot.log # 将 news 设备的 crit 级别的消息记录到 /var/log/news/news.crit 文件中。 news.=crit /var/log/news/news.crit # 将 news 设备的 err 级别的消息记录到 /var/log/news/news.err 文件中。 news.=err /var/log/news/news.err # 将 news 设备的 notice 或更高级别的消息记录到 /var/log/news/news.notice 文件中。 news.notice 级别字段 动作字段 常见的日志文件 日志系统主要分为三类 系统接入日志: 多个程序会记录该日志记录到/var/log/wtmp和/var/run/utmp文件中telnet、ssh等程序会更新wtmp和utmp文件系统管理员可以根据该日志跟踪到谁在何时登录到系统。 进程统计日志: linux内核记录该日志当一个进程终止时进程统计文件pacct或acct中会进行记录。进程统计日志可以供系统管理员分析系统使用者对系统进行的配置以及对文件进行的操作。 错误日志: Syslog日志系统已经被许多设备兼容Linux的syslog可以记录系统事件主要由syslogd程序执行Linux系统下各种进程、用户程序和内核都可以通过Syslog文件记录重要信息错误日志记录在/var/log/messages中。有许多Linux/Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。
订阅:
博文评论 (Atom)
|
没有评论:
发表评论