ES集群健康检测:curl -sXGET http://localhost:9200/_cluster/health?pretty=true | grep "status" | awk -F '[ "]+' '{print $4}' | grep -c "green"
ES节点健康检测:curl -sXGET localhost:9200/_cat/health |awk -F ' ' '{print $4}'
-s --silent 静默模式,就是不显示错误和进度
--------------------------------------------------------------------------------------
https://github.com/mobz/elasticsearch-head
https://github.com/lmenezes/elasticsearch-kopf
--------------------------------------------------------------------------------------
注:新版graylog需要 jdk 1.8以上版本支持
ES集群索引数据重置方法:
--------------------------------------------------------------------------------------------
ELASTICSEARCH 服务监控
Elasticsearch 服务本身通过 API 提供了丰富的监控信息,您可以直接调用接口获取监控数据:
- 集群健康状态: http://<任意节点私网IP>:9200/_cluster/health?pretty=true
- 各节点统计信息: http://<任意节点私网IP>:9200/_nodes/stats?pretty=true
- 索引统计信息: http://<任意节点私网IP>:9200/_stats?pretty=true
此外,Elasticsearch 服务内置了 kopf 插件(一个 Elasticsearch 的 web 管理界面),可以通过 http://<任意节点私网IP>:9200/_plugin/kopf 在浏览器上查看更详细的统计信息。
--------------------------------------------------------------------------
graylog以及es内存大小调整:
graylog: vim /etc/sysconfig/graylog-server GRAYLOG_SERVER_JAVA_OPTS=""
es: vim /etc/sysconfig/elasticsearch ES_HEAP_SIZE=3g
---------------------------------------------------------------------------
shards 代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上。构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。
replicas 代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。
当配置ES集群时,只需要更改graylog配置文件的:
elasticsearch_discovery_zen_ping_unicast_hosts = 192.168.0.200:9300, 192.168.0.201:9300
-----------------------------------------------------------------------------------------------------
Elasticsearch存储的索引数据比较多占用空间比较大,清理方法: (默认存放在/var/lib/elasticsearch/graylog2/nodes/0/indices)
# curl -XDELETE 'http://localhost:9200/index_name/'
例如:# curl -XDELETE 'http://192.168.0.200:9200/graylog_0/'
新版的graylog已经将graylog-server与graylog-web二部分合二为一了,统称graylog-server
# Email transport
transport_email_enabled = true
transport_email_hostname = smtp.tech.com
transport_email_port = 465
transport_email_use_auth = true
transport_email_use_tls = true
transport_email_use_ssl = true
transport_email_auth_username = wjoyxt@tech.com 也可能是 wjoyxt
transport_email_auth_password = wjoyxt666
transport_email_subject_prefix = [graylog2]
transport_email_from_email = wjoyxt@tech.com 注意与alert中的sender邮箱保持一致
transport_email_web_interface_url = http://外网IP或域名:9000
改成外网IP或域名的目的是为了在收到的报警邮件中可以不通过VPN的情况下直接访问相应的只包含警报关键字的日志信息的汇总链接,当然了也可以连接VPN使用内网IP地址访问
-------------------------------------------------------------------------------------------
当使用HTTP Alarm Callback时,可以直接调用短信接口进行告警处理
--------------------------------------------------------------------------------------------
Graylog是一个开源的 log 收容器,主要有两个部分集合而成 server 与 web interface,两个都是由 Java 写的,Server 的部份可以收容 syslog over TCP/UDP, 同时他也有自己的格式 GELF (Graylog Extended Log Format),背后的储存是搭配 mongodb,而搜寻引擎则由 elasticsearch 提供。另外的 web interface 也是 Java 写成的(早期好像是 Ruby on Rails),主要的功能就是提供一个漂亮的搜寻与分析的界面
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便
具体安装文档可查看官网手册: http://docs.graylog.org 可使用有道网页翻译书签: http://fanyi.youdao.com/web2/
端口说明:
Elasticsearch默认tcp通信端口是9300,HTTP API接口是9200
Graylog-server:9000/api Graylog-web:9000
一、graylog体系结构
测试环境最小化单一安装结构图示:
生产环境集群扩展模式结构如下:
最前端要加一层负载均衡系统,graylog-server的主从角色是在配置文件里面进行设置,然后mongodb数据库集群里面进行指定区分的
二、首先安装配置 (Mongodb安装部分此处略,需要注意的是mongodb的bind_ip处的设置,而且graylog会自动创建相应的数据库和用户)
1、前往官网进行下载安装elasticsearch
# wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.0.0/elasticsearch-2.0.0.rpm
# yum install elasticsearch-2.0.0.rpm -y
2、或者使用官方yum源进行安装
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
Add the following in your /etc/yum.repos.d/ directory in a file with a .repo suffix, for exampleelasticsearch.repo,(注意2.x或者1.x 只有两位)
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
yum install elasticsearch
2、vim /etc/elasticsearch/elasticsearch.yml
network.bind_host: 10.1.1.33 #绑定实际的服务器IP地址
cluster.name: graylog2 #与/etc/graylog/server/server.conf 中的elasticsearch_cluster_name 集群名称相同
node.name: "node-xx"
discovery.zen.ping.multicast.enabled: false discovery.zen.ping.unicast.hosts: ["es-node-1.example.org:9300" , "es-node-2.example.org:9300"]
script.disable_dynamic: true #出于安全考虑,禁用动态脚本功能防止可能的远程代码执行
3、使用curl命令操作elasticsearch
curl -i -XGET 'localhost:9200/' #安装完成后的验证
curl -XGET localhost:9200/_cat/nodes #查看当前存活的各elasticsearch节点
curl -XGET localhost:9200/_cat/master
curl -XGET localhost:9200/_cat/health
健康度检查分为绿色、黄色或红色。绿色代表一切正常,集群功能齐全,黄色意味着所有的数据都是可用的,但是某些复制没有被分配,红色则代表因为某些原因,某些数据不可用
需要注意的是如果单机上安装多个elasticsearch实例的话,elasticsearch的服务端口号会依次自动累加,例如第二套elasticsearch的为9201和9301。
curl更多操作方法参考资料 http://blog.csdn.net/iloveyin/article/details/48312767
三、安装graylog-server和graylog-web (jdk rpm包安装时注意采用默认的安装方式,/usr/bin/java)
$ sudo rpm -Uvh https://packages.graylog2.org/repo/packages/graylog-1.2-repository-el6_latest.rpm
$ sudo yum install graylog-server graylog-web
$vim /etc/graylog/server/server.conf
[root@syslog ~]# cat /etc/graylog/server/server.conf |grep -v grep|grep -v ^#|grep -v ^$ is_master = true node_id_file = /etc/graylog/server/node-id password_secret = qdp0CjlUtrQUlqtgvjSiG0tI3aA4jX7wYGlR10FD8mmkm8WLQ1j0UnaTL3nCocYu7lFB7zRa6GdEe8x5ZVHBemzwXLJufOMO root_password_sha2 = 4bbdd5a829dba09d7a7ff4c1367be7d36a017b4267d728d31bd264f63debeaa6 root_email = "wjoyxt@126.com" root_timezone = +08:00 plugin_dir = /usr/share/graylog-server/plugin rest_listen_uri = http://10.1.1.43:12900/ rotation_strategy = count elasticsearch_max_docs_per_index = 20000000 elasticsearch_max_number_of_indices = 20 retention_strategy = delete elasticsearch_shards = 2 elasticsearch_replicas = 1 elasticsearch_index_prefix = graylog2 allow_leading_wildcard_searches = false allow_highlighting = false elasticsearch_discovery_zen_ping_multicast_enabled = false elasticsearch_discovery_zen_ping_unicast_hosts = 10.1.1.43:9300,10.1.1.33:9300 elasticsearch_analyzer = standard output_batch_size = 500 output_flush_interval = 1 output_fault_count_threshold = 5 output_fault_penalty_seconds = 30 processbuffer_processors = 5 outputbuffer_processors = 3 processor_wait_strategy = blocking ring_size = 65536 inputbuffer_ring_size = 65536 inputbuffer_processors = 2 inputbuffer_wait_strategy = blocking message_journal_enabled = true message_journal_dir = /var/lib/graylog-server/journal dead_letters_enabled = false lb_recognition_period_seconds = 3 mongodb_useauth = false mongodb_uri = mongodb://localhost/graylog2 mongodb_max_connections = 100 mongodb_threads_allowed_to_block_multiplier = 5 transport_email_enabled = true transport_email_hostname = 127.0.0.1 transport_email_port = 25 transport_email_use_auth = false transport_email_use_tls = false transport_email_use_ssl = false transport_email_auth_username = transport_email_auth_password = transport_email_subject_prefix = transport_email_from_email = transport_email_web_interface_url = http://10.1.1.43:9000