使用Splunk监控远端
来源:互联网 发布:特效字体制作软件 编辑:程序博客网 时间:2024/06/05 18:57
Splunk学习笔记
简述
Splunk的中文学习文档不多,下面的笔记参考了下面两个中文教程,以及splunk的英文官方帮助文档。
做这个学习的本源是期望实现如下功能:在一个监控多台服务器系统负载的仪表板上,点击某一台服务器的曲线,根据点击对应的时间,以及对应的服务器名称,自动生成一个页面,该新页面能够反映该服务器在对应时间点占用系统资源top5的进程信息。
中文教程链接:http://www.tuicool.com/articles/zErQFnrhttp://www.tuicool.com/articles/VrUneif
英文官方帮助文档:http://docs.splunk.com
Splunk是一款B/S架构的监控软件,服务器端根据查询流量来收费。监控节点需要安装Splunk Universal Forwarder,即通用转发器,无UI界面,免费,将被监控日志内容推送到服务器端,服务器端再进行查询,过滤,可视化操作。
安装
在虚拟机上进行调试。准备两台虚拟机,能够连接外网,用于下载代码包,相互能够ping通,有各自ip,配置好光盘yum源,iptables -F清空防火墙规则,关闭selinux。
PC1配置为服务器端,ip为192.168.75.128。PC2为客户端,ip为192.168.75.129
PC1上安装服务器端。
wget -chttps://download.splunk.com/products/splunk/releases/6.5.1/linux/splunk-6.5.1-f74036626f0c-Linux-x86_64.tgz
tar -zxvf splunk-6.5.1-f74036626f0c-Linux-x86_64.tgz -C /opt 解压缩到/opt下
Splunk的可执行程序在/opt/splunk/bin下,在该目录下调用常用CLI命令
./splunk start
./splunk start --accept-license 自动接收许可
./splunk restart
./splunk status
./splunk version
敲入命令./splunk start --accept-license启动splunk
敲入命令./splunk enable boot-start开机自启
Splunk安装之后开启8000端口,可以如下方式访问 firefoxhttp://192.168.75.128:8000
默认账号名和密码为admin changeme
Ps -ef | grep splunk查看
PC2上安装客户端,通用转发器
wget -chttps://download.splunk.com/products/splunk/releases/6.5.1/linux/splunkforwarder-6.5.1-00f5bb3fa822-Linux-x86_64.tgz
Tar -zxvf splunkforwarder-6.5.1-f74036626f0c-Linux-x86_64.tgz -C /opt
切换到/opt/splunkforwarder/bin,执行./splunk start --accept-license
./splunk show splunkd-port 查看端口,需要输入账号名和密码,admin changeme
安装后的配置
在PC1上,setting---server setting---general settings
PC1上setting---forwarding and receiving上添加一个监听端口9997
【实例】监控客户端审计日志
PC1上添加一条index。敲入命令./splunk add index linuxaudit,需要重启生效
PC2上敲入命令./splunk list monitor,可以查看到监控的目录和文件。这里是默认的监控目录和文件。
PC2上敲入命令./splunk add monitor /var/log/audit/audit.log -index linuxaudit添加一条index,和a项对应
PC2上敲入命令./splunk add forward-server 192.168.75.128:9997添加转发的目的服务器ip和端口
在PC1上可以如下搜索到审计日志的内容
【实例】监控apache访问日志
在PC1得web上setting---indexes添加一条index,叫做apache_data
在PC2上vim /opt/splunkforwarder/etc/apps/search/local/inputs.conf,加入[monitor:///etc/httpd/logs/access_log]
disabled = false
index = apache_data在PC1的web上新搜索,可以看到PC2的apache访问日志内容
【实例】在服务器端使用API
下图是公司生产环境下splunk的一个仪表板截图
在搜索语句里面使用了vmstat,其实是调用了额外安装的插件,关键字叫add-on,*nix或者可以按照scripted inputs去查找相关内容。可以找到关于Splunk_TA_nix.tar.gz的内容,解压后可以看到里面会调用很多脚本,比如cpu.sh vmstat.sh top.sh。我看过这些脚本的源码,比如vmstat.sh,基本上就是调用vmstat的命令,然后将在客户端查询到的内容,格式化推送到服务器端。
在客户端安装在/opt/splunkforwarder/etc/apps/Splunk_TA_nix
客户端在/opt/splunkforwarder/bin下运行命令
./splunk set deploy-poll 192.168.75.128:8089 添加服务端,ip,端口
./splunk list forward-server查看服务端
./splunk enable deploy-client使能客户端
./splunk restart 重启客户端
服务端在这里安装NIX
服务端进行搜索,搜索命令是index=os sourcetype=vmstat host=PC2
使用timechart生成折线图。需要注意的是原生的loadAvg1mi是一个string的字段,这是不能使用avg()来统计的,这个坑害了我很久。。。于是自己做了一个loadAvg1mi_test的字段,类型是number
后续保存成为仪表板dashboard就可以了。
需要实现的功能是点击折现图的某一个点,然后将host和_time作为参数传递到后一个页面,后一个页面根据这两个参数,调用NIX的top.sh,查出在_time以及host的占用资源最高的前5个进程信息。后面的步骤可以参考,未完全验证。
使用到的关键字是drilldown。圈起来的地方是我改的,意思是打开一个新页面,叫做top,传递的参数是form.source_host,它的值是click.name2(其实就是PC2);form.souce_time,它的值是row._time(其实就是你点击的那个点对应的时间,传过去的值是linux时间戳)
下图是要跳转的页面
网页源码
- 使用Splunk监控远端
- Jmeter使用插件监控远端服务器性能数据
- Splunk使用心得
- JavaVisualVM监控远端JAVA程序
- Splunk
- Splunk
- splunk
- Splunk的安装与使用
- splunk java SDK使用注意事项
- Splunk的基本使用心得
- Splunk实现与Hadoop的集成与监控
- Nagios/Ganglia与Splunk成就云计算监控体系
- 使用php获取远端数据~
- V4 vlan 远端无法监控问题 解决全过程
- 利用nagios监控本地服务器和远端服务器
- 远端调试方法(一):使用LocalConnection
- 使用WMI来连接远端计算机
- 使用expdp导出远端的数据库
- winform主线程外面的子线程中实现控制界面
- Html5 input[type='file'] 把图片转换成base64
- 网络编程(55)—— Windows下使用WSASocket基于Completion Routine进行IO重叠
- Python练手项目0008
- sqlserver 的几种分页
- 使用Splunk监控远端
- virtual box 主机linux目标机win7,扩大win7的空间方法
- code_seg("INIT")
- Android基础之Intent Flag案例分析
- struts.xml的笔记
- 总结String,StringBuilder,StringBuffer的区别以及注意事项
- Nginx+Tomcat基于Docker的搭建
- Tensorflow的Bazel编程(一)
- 程序员面试金典第二章:链表(6) 链表环路